From 83233c891e9383befb5267c5285f86e3e881273c Mon Sep 17 00:00:00 2001 From: Hermes Team Date: Wed, 26 Aug 2026 02:53:14 +0700 Subject: [PATCH] feat(web): add workflow canvas and live agent workspace --- ...2026-08-26-antigravity-release-gate-a30.md | 43 ++ docs/screenshots/a30/agent-file-editor.png | Bin 0 -> 46287 bytes docs/screenshots/a30/edge-editor.png | Bin 0 -> 46134 bytes .../a30/overview-edit-inspector.png | Bin 0 -> 108311 bytes .../a30/overview-live-provider-error.png | Bin 0 -> 107730 bytes docs/screenshots/a30/overview-live.png | Bin 0 -> 98939 bytes docs/web-api/CONTRACT.md | 18 + src/antigravity_provider/paths.py | 17 + .../router/action_handler.py | 17 + .../router/state_store.py | 48 ++ .../router/web/static/app.js | 8 +- .../router/web/static/index.html | 81 +-- .../router/web/static/workflow.css | 89 +++ .../router/web/static/workflow.js | 497 ++++++++++++++ .../router/workflow_service.py | 646 ++++++++++++++++++ tests/test_workflow_service_a30.py | 163 +++++ 16 files changed, 1586 insertions(+), 41 deletions(-) create mode 100644 agents/inbox/2026-08-26-antigravity-release-gate-a30.md create mode 100644 docs/screenshots/a30/agent-file-editor.png create mode 100644 docs/screenshots/a30/edge-editor.png create mode 100644 docs/screenshots/a30/overview-edit-inspector.png create mode 100644 docs/screenshots/a30/overview-live-provider-error.png create mode 100644 docs/screenshots/a30/overview-live.png create mode 100644 src/antigravity_provider/router/web/static/workflow.css create mode 100644 src/antigravity_provider/router/web/static/workflow.js create mode 100644 src/antigravity_provider/router/workflow_service.py create mode 100644 tests/test_workflow_service_a30.py diff --git a/agents/inbox/2026-08-26-antigravity-release-gate-a30.md b/agents/inbox/2026-08-26-antigravity-release-gate-a30.md new file mode 100644 index 0000000..67c836f --- /dev/null +++ b/agents/inbox/2026-08-26-antigravity-release-gate-a30.md @@ -0,0 +1,43 @@ +# Задание Antigravity: полный release gate после A30 + +## Цель + +Провести независимую проверку ветки `codex/workflow-canvas` после реализации A30. Проверять фактическое состояние репозитория и запускаемого приложения, а не описание работы. + +## Обязательный порядок + +1. Получить актуальные `origin/main` и `origin/codex/workflow-canvas`. +2. Проверить `git status`, базовый и финальный SHA ветки. +3. Запустить приложение из чистого checkout ветки A30. +4. Выполнить полный `pytest`/release gate и сохранить полный вывод. +5. Выполнить `ruff check .`. +6. Проверить веб-контракт: `/`, `/api/snapshot`, `/api/events`, `/api/action`. +7. Проверить A30 вручную в браузере: LIVE, EDIT, создание агента, назначение Provider → Account → Model, Agent File, редактор ребра, цикл и предел итераций. +8. Отдельно проверить честность данных: отсутствие mock/demo чисел из макета, `Н/Д` с причиной, loading не смешан с отсутствием данных. +9. Проверить persistence после перезапуска и реальные provider errors. +10. Проверить, что desktop `router/ui/**` не изменён A30. + +## Правила отчёта + +- Не писать `PASS`, если полный release gate не запускался. +- Не считать targeted tests заменой полного regression. +- Для каждого failure привести команду, stdout/stderr, файл и минимальный способ воспроизведения. +- Если блокер связан с окружением, повторить проверку в чистом окружении или явно указать, что именно не проверено. + +## Артефакты + +Передать: + +- `START_HEAD`, `FINAL_HEAD`, `origin/main`; +- чистый `git status` или полный список загрязнений; +- `X passed / Y skipped / Z failed`; +- точный результат `scripts/release_gate.py`; +- список найденных дефектов с приоритетом P0–P3; +- скриншоты LIVE, EDIT, Inspector, Agent File и редактора ребра; +- отдельный список пропущенных проверок. + +## Ограничения + +- Ничего не исправлять молча в чужой ветке: найденные дефекты оформить отдельным патчем/коммитом или вернуть владельцу. +- Не удалять пользовательские изменения в установщике, бинарниках и заданиях inbox. +- Не объявлять release-ready при известных блокерах. diff --git a/docs/screenshots/a30/agent-file-editor.png b/docs/screenshots/a30/agent-file-editor.png new file mode 100644 index 0000000000000000000000000000000000000000..3c6d244de7abe879f4b6edd75fd8b45cf7d6f911 GIT binary patch literal 46287 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 literal 0 HcmV?d00001 diff --git a/docs/screenshots/a30/edge-editor.png b/docs/screenshots/a30/edge-editor.png new file mode 100644 index 0000000000000000000000000000000000000000..ff7a881f2320ff5c2ee7d3e9b6a47bf50956c902 GIT binary patch literal 46134 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 G`~MH6Ao0!s literal 0 HcmV?d00001 diff --git a/docs/screenshots/a30/overview-edit-inspector.png b/docs/screenshots/a30/overview-edit-inspector.png new file mode 100644 index 0000000000000000000000000000000000000000..3b820f144273b6dd3fa8241e3ed3df44547ed837 GIT binary patch literal 108311 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

b~u0lid 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%0A(YB1a7AV?@0xC^$&&d&Hrid(|>c){LkE3X*j~) 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 ZQAu(vG2i1?D(F?Ev#duf}6FjEK1 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 literal 0 HcmV?d00001 diff --git a/docs/screenshots/a30/overview-live.png b/docs/screenshots/a30/overview-live.png new file mode 100644 index 0000000000000000000000000000000000000000..206011fc24be4058160eb6fa04d3106f694fb3c9 GIT binary patch literal 98939 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 z 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 Path: return get_config_dir() / "router_active_profile.json" +def get_workflow_state_path() -> Path: + """Return the persisted agent/workflow state sidecar. + + Logical roles and their execution routes remain canonical in + ``router_profiles.yaml``. This file stores only the extra agent metadata, + graph layout and execution checkpoints which do not belong to routing. + """ + return get_config_dir() / "workflow_state.json" + + +def get_agent_files_dir() -> Path: + """Return the user-editable directory containing real Agent Files.""" + directory = get_hermes_home() / "agents" + directory.mkdir(parents=True, exist_ok=True) + return directory + + def get_compatibility_path() -> Path: return get_config_dir() / "compatibility.json" diff --git a/src/antigravity_provider/router/action_handler.py b/src/antigravity_provider/router/action_handler.py index 1366dc8..d9f2aba 100644 --- a/src/antigravity_provider/router/action_handler.py +++ b/src/antigravity_provider/router/action_handler.py @@ -305,6 +305,23 @@ class ActionExecutor: except Exception: pass + if action in { + 'create_agent', + 'update_agent', + 'delete_agent', + 'read_agent_file', + 'save_agent_file', + 'save_workflow', + 'start_workflow', + 'stop_workflow', + }: + try: + from antigravity_provider.router.workflow_service import execute_workflow_action + + return execute_workflow_action(action, data) + except (ValueError, OSError) as exc: + return {'ok': False, 'message': str(exc)} + # Device-flow для Grok и Codex через веб. Backend был готов давно, но # наружу не выведен: веб-мастер показывал заглушку «не реализовано», и # подключить эти провайдеры можно было только из десктопа. Настоящие diff --git a/src/antigravity_provider/router/state_store.py b/src/antigravity_provider/router/state_store.py index 2c3550f..2cb1ac4 100644 --- a/src/antigravity_provider/router/state_store.py +++ b/src/antigravity_provider/router/state_store.py @@ -55,6 +55,7 @@ class HubSnapshot: quotas: Dict[str, Any] metrics: Dict[str, Any] = field(default_factory=dict) is_stale: bool = False + workflow: Dict[str, Any] = field(default_factory=dict) def get_profile(self, profile_id: str) -> Optional[ProfileViewModel]: return self.all_profiles.get(profile_id) @@ -107,6 +108,24 @@ class HubStateStore: if self._current_snapshot is not None: if (time.time() - self._current_snapshot.timestamp > 300.0) and not self._current_snapshot.is_stale: self._current_snapshot = replace(self._current_snapshot, is_stale=True) + # Provider/account scans are intentionally cached, while LIVE + # workflow checkpoints are small local state and must never lag + # behind an action until the next expensive provider refresh. + try: + from .workflow_service import WorkflowService + + live_workflow = WorkflowService.get().snapshot() + role_views = {agent.role_id: agent for agent in self._current_snapshot.agents} + for workflow_agent in live_workflow.get("agents", []): + role_view = role_views.get(workflow_agent.get("role")) + generic_name = str(workflow_agent.get("role") or "").replace("-", " ").title() + if role_view and workflow_agent.get("name") == generic_name: + workflow_agent["name"] = role_view.role_name_ru + if role_view and not workflow_agent.get("description"): + workflow_agent["description"] = role_view.role_description_ru + self._current_snapshot = replace(self._current_snapshot, workflow=live_workflow) + except Exception: + pass return self._current_snapshot return self.refresh(force_scan=False) @@ -196,6 +215,27 @@ class HubStateStore: "active_calls_total": active_leases_total, "active_calls_by_profile": active_leases_by_profile, } + try: + from .workflow_service import WorkflowService + + workflow_data = WorkflowService.get().snapshot() + role_views = {agent.role_id: agent for agent in agents} + for workflow_agent in workflow_data.get("agents", []): + role_view = role_views.get(workflow_agent.get("role")) + generic_name = str(workflow_agent.get("role") or "").replace("-", " ").title() + if role_view and workflow_agent.get("name") == generic_name: + workflow_agent["name"] = role_view.role_name_ru + if role_view and not workflow_agent.get("description"): + workflow_agent["description"] = role_view.role_description_ru + except Exception as exc: + workflow_data = { + "agents": [], + "definition": {}, + "run": {"status": "unavailable"}, + "events": [], + "is_loading": False, + "unavailable_reason": f"Workflow state unavailable: {exc}", + } snapshot = HubSnapshot( generation=gen, seq=request_seq, @@ -209,6 +249,7 @@ class HubStateStore: quotas=quotas_map, metrics=metrics, is_stale=False, + workflow=workflow_data, ) self._current_snapshot = snapshot @@ -263,6 +304,13 @@ class HubStateStore: "active_calls_by_profile": {}, }, is_stale=True, + workflow={ + "agents": [], + "definition": {}, + "run": {"status": "loading"}, + "events": [], + "is_loading": True, + }, ) def _apply_profile_delta(self, profile: ProfileViewModel) -> HubSnapshot: diff --git a/src/antigravity_provider/router/web/static/app.js b/src/antigravity_provider/router/web/static/app.js index e97bfd8..9b42033 100644 --- a/src/antigravity_provider/router/web/static/app.js +++ b/src/antigravity_provider/router/web/static/app.js @@ -519,7 +519,7 @@ function updateGlobalHeader() { const isHealthy = readiness.state === 'healthy'; const readyRoles = readiness.roles_ready_count || 0; - const totalRoles = readiness.total_roles || 6; + const totalRoles = readiness.total_roles ?? 0; if (elements.headerReadinessBadge) { elements.headerReadinessBadge.className = `header-readiness-badge ${isHealthy ? 'text-healthy' : 'text-warning'}`; @@ -527,7 +527,7 @@ function updateGlobalHeader() { if (elements.headerReadinessText) { elements.headerReadinessText.textContent = readiness.title_ru ? `${readiness.title_ru} (${readyRoles}/${totalRoles} ролей)` - : 'Система готова'; + : 'Н/Д: состояние ещё не измерено'; } const kpiReadiness = document.getElementById('kpi-system-readiness'); @@ -805,6 +805,10 @@ function renderQuotaCell(bucket, unavailableReason) { // 1. OVERVIEW VIEW (P0-3, P0-4 Diagram Model Select & Counters) // ═══════════════════════════════════════════════════════════════ function renderOverviewView() { + if (typeof renderWorkflowOverview === 'function') { + renderWorkflowOverview(currentSnapshot); + return; + } if (!currentSnapshot) return; const providers = currentSnapshot.providers || []; diff --git a/src/antigravity_provider/router/web/static/index.html b/src/antigravity_provider/router/web/static/index.html index d9cf4a5..ec1aa73 100644 --- a/src/antigravity_provider/router/web/static/index.html +++ b/src/antigravity_provider/router/web/static/index.html @@ -5,6 +5,7 @@ Hermes Hub — Панель управления + @@ -92,52 +93,53 @@

-
-
-
Провайдеры и доступность runtime
-
Статус локальных адаптеров и обнаруженные модели
-
-
- -
+
+
Последние события

Загрузка событий…

+
Управление LIVE

@@ -505,5 +507,6 @@ + diff --git a/src/antigravity_provider/router/web/static/workflow.css b/src/antigravity_provider/router/web/static/workflow.css new file mode 100644 index 0000000..7c00f01 --- /dev/null +++ b/src/antigravity_provider/router/web/static/workflow.css @@ -0,0 +1,89 @@ +/* A30 overview/workflow components. Theme colors come from the shared tokens. */ +#view-overview { padding: 0; min-width: 860px; } +.workflow-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:10px; } +.workflow-mode { display:flex; padding:3px; border:1px solid var(--border-subtle); border-radius:var(--radius-md); background:var(--surface-muted); } +.workflow-mode-btn { min-width:78px; border:0; border-radius:var(--radius-sm); padding:7px 16px; color:var(--text-muted); background:transparent; cursor:pointer; font-weight:700; } +.workflow-mode-btn.active { color:var(--text-primary); background:var(--surface-active); box-shadow:inset 0 0 0 1px var(--border-accent); } +.workflow-mode-btn:first-child.active { color:var(--status-healthy); } +.workflow-toolbar-actions { display:flex; gap:8px; align-items:center; } +.workflow-save-state { color:var(--text-muted); font-size:11px; } +.workflow-save-state.dirty { color:var(--status-warning); } +.workflow-kpis { display:grid; grid-template-columns:repeat(5,minmax(130px,1fr)); gap:8px; margin-bottom:10px; } +.workflow-kpi { padding:11px 13px; min-height:78px; border:1px solid var(--border-subtle); border-radius:var(--radius-md); background:linear-gradient(145deg,var(--surface),var(--surface-muted)); } +.workflow-kpi span,.workflow-kpi small { display:block; color:var(--text-muted); } +.workflow-kpi strong { display:block; margin:4px 0 2px; font-size:20px; font-weight:650; color:var(--text-primary); } +.workflow-kpi small { font-size:10px; line-height:1.25; } +.workflow-main-layout { display:grid; grid-template-columns:minmax(580px,1fr) 330px; gap:10px; min-height:520px; } +.workflow-board-card,.workflow-inspector,.workflow-events,.workflow-run-panel { border:1px solid var(--border-subtle); border-radius:var(--radius-md); background:var(--surface); overflow:hidden; } +.workflow-board-header { min-height:45px; padding:8px 12px; display:flex; gap:18px; align-items:center; justify-content:space-between; border-bottom:1px solid var(--border-subtle); color:var(--text-secondary); } +.workflow-board-header strong { color:var(--text-accent); text-transform:uppercase; } +.workflow-board-header label { margin-left:auto; font-size:11px; color:var(--text-muted); } +.workflow-board-header input { width:42px; padding:3px; color:var(--text-primary); background:var(--surface-muted); border:1px solid var(--border); border-radius:3px; } +.workflow-run-state { margin-left:8px; font-size:11px; color:var(--text-muted); } +.workflow-run-state.running { color:var(--status-healthy); } +.workflow-run-state.failed,.workflow-run-state.interrupted { color:var(--status-error); } +.workflow-zoom { display:flex; align-items:center; border:1px solid var(--border-subtle); border-radius:var(--radius-sm); } +.workflow-zoom button { width:28px; height:27px; border:0; border-left:1px solid var(--border-subtle); color:var(--text-accent); background:transparent; cursor:pointer; } +.workflow-zoom span { min-width:44px; text-align:center; font-size:11px; } +.workflow-canvas { position:relative; height:430px; overflow:hidden; background-color:var(--bg-base); background-image:radial-gradient(var(--border-subtle) 1px,transparent 1px); background-size:18px 18px; } +.workflow-edges,.workflow-node-layer { position:absolute; inset:0; width:100%; height:100%; transform-origin:0 0; } +.workflow-edges { overflow:visible; pointer-events:none; } +.workflow-edges path { fill:none; stroke:var(--accent); stroke-width:1.6; marker-end:url(#wf-arrow); } +.workflow-edges path.success,.workflow-edges path.review_passed { stroke:var(--status-healthy); } +.workflow-edges path.review_failed,.workflow-edges path.error { stroke:var(--status-error); stroke-dasharray:7 5; } +.workflow-edge-label { fill:var(--text-muted); font:9px var(--font-ui); text-transform:uppercase; } +.workflow-edge-hit { fill:none; stroke:transparent; stroke-width:14; pointer-events:stroke; cursor:pointer; } +.workflow-node { position:absolute; width:190px; min-height:92px; padding:11px 12px; border:1px solid var(--border-accent); border-radius:9px; background:linear-gradient(145deg,var(--surface),var(--surface-muted)); box-shadow:0 8px 22px rgba(0,0,0,.18); cursor:pointer; user-select:none; } +.workflow-node.selected { outline:2px solid var(--accent); box-shadow:0 0 18px var(--accent-dim); } +.workflow-node.working { border-color:var(--status-healthy); box-shadow:0 0 20px rgba(114,201,67,.24); } +.workflow-node.error { border-color:var(--status-error); } +.workflow-node.completed { border-color:var(--status-disabled); } +.workflow-node h3 { margin:0 0 2px; font-size:13px; font-weight:650; color:var(--text-primary); } +.workflow-node p { overflow:hidden; margin:1px 0; color:var(--text-muted); font-size:10px; white-space:nowrap; text-overflow:ellipsis; } +.workflow-node-status { display:flex; align-items:center; gap:5px; margin-top:6px; font-size:10px; color:var(--text-secondary); } +.workflow-node-status i,.workflow-legend i { width:7px; height:7px; border-radius:50%; background:var(--status-info); } +.workflow-node.working .workflow-node-status i,.state-working { background:var(--status-healthy)!important; } +.workflow-node.reviewing .workflow-node-status i,.state-reviewing { background:var(--status-warning)!important; } +.workflow-node.error .workflow-node-status i,.state-error { background:var(--status-error)!important; } +.workflow-node.completed .workflow-node-status i,.state-completed { background:var(--status-disabled)!important; } +.workflow-port { display:none; position:absolute; top:37px; width:13px; height:22px; border:1px solid var(--accent); border-radius:8px; background:var(--surface-active); } +.workflow-mode-edit .workflow-port { display:block; } +.workflow-port.in { left:-8px; } +.workflow-port.out { right:-8px; cursor:crosshair; } +.workflow-legend { min-height:39px; padding:8px 12px; display:flex; align-items:center; gap:14px; flex-wrap:wrap; border-top:1px solid var(--border-subtle); color:var(--text-muted); font-size:10px; } +.workflow-legend span { display:flex; align-items:center; gap:5px; } +.edge-legend.success { color:var(--status-healthy); }.edge-legend.return { color:var(--status-error); } +.workflow-minimap { position:absolute; left:10px; bottom:10px; width:110px; height:68px; border:1px solid var(--border); background:rgba(6,25,22,.82); pointer-events:none; } +.workflow-minimap i { position:absolute; width:16px; height:9px; border:1px solid var(--accent); background:var(--surface-muted); } +.workflow-empty { position:absolute; inset:0; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:6px; color:var(--text-muted); } +.workflow-inspector { min-width:0; padding:12px; overflow:auto; max-height:520px; } +.workflow-inspector-empty { height:100%; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:8px; color:var(--text-muted); } +.workflow-inspector h2 { margin:0; color:var(--text-accent); font:600 15px var(--font-title); } +.inspector-tabs { display:flex; gap:2px; margin:10px 0; border-bottom:1px solid var(--border-subtle); overflow-x:auto; } +.inspector-tabs button { padding:7px 6px; border:0; border-bottom:2px solid transparent; color:var(--text-muted); background:transparent; font-size:10px; cursor:pointer; } +.inspector-tabs button.active { color:var(--text-accent); border-color:var(--accent); } +.inspector-field { display:block; margin:9px 0; color:var(--text-muted); font-size:10px; } +.inspector-field input,.inspector-field select,.inspector-field textarea,.workflow-run-panel textarea,.workflow-dialog input,.workflow-dialog select,.workflow-dialog textarea { width:100%; margin-top:4px; padding:7px 8px; color:var(--text-primary); border:1px solid var(--border); border-radius:var(--radius-sm); background:var(--surface-muted); font:12px var(--font-ui); } +.inspector-field textarea { min-height:58px; resize:vertical; } +.inspector-value { padding:7px 0; color:var(--text-secondary); font-size:11px; overflow-wrap:anywhere; } +.inspector-actions { display:flex; gap:7px; flex-wrap:wrap; margin-top:12px; } +.agent-file-card { margin-top:12px; padding:10px; border:1px solid var(--border-subtle); border-radius:var(--radius-sm); } +.agent-file-card code { display:block; margin:4px 0 8px; color:var(--text-secondary); overflow-wrap:anywhere; } +.workflow-bottom-grid { display:grid; grid-template-columns:1.4fr 1fr; gap:10px; margin-top:10px; } +.workflow-events,.workflow-run-panel { min-height:145px; padding:11px; } +.workflow-events header,.workflow-run-panel header { display:flex; justify-content:space-between; margin-bottom:8px; color:var(--text-secondary); } +.workflow-events header button { border:0; color:var(--text-accent); background:none; cursor:pointer; } +.workflow-events-list { max-height:110px; overflow:auto; } +.workflow-event { display:grid; grid-template-columns:72px 1fr auto; gap:8px; padding:5px 0; border-bottom:1px solid var(--border-subtle); color:var(--text-secondary); font-size:10px; } +.workflow-event time,.workflow-event em { color:var(--text-muted); font-style:normal; } +.workflow-event.error { color:var(--status-error); } +.workflow-run-panel textarea { min-height:68px; resize:vertical; } +.workflow-run-panel>div { display:flex; gap:8px; margin-top:8px; } +.workflow-run-error { margin-top:6px; color:var(--status-error); font-size:10px; } +.workflow-dialog-backdrop { position:fixed; inset:0; z-index:1200; display:flex; justify-content:center; align-items:center; padding:24px; background:var(--bg-modal-backdrop); } +.workflow-dialog { width:min(580px,100%); max-height:88vh; overflow:auto; padding:18px; border:1px solid var(--border-accent); border-radius:var(--radius-lg); background:var(--surface); box-shadow:0 24px 70px rgba(0,0,0,.45); } +.workflow-dialog h2 { margin-bottom:12px; color:var(--text-accent); } +.workflow-dialog textarea.agent-file-editor { min-height:380px; font-family:var(--font-mono); } +.workflow-dialog-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:14px; } +.hidden { display:none!important; } +@media (max-width:1200px) { .workflow-kpis { grid-template-columns:repeat(3,1fr); }.workflow-main-layout { grid-template-columns:minmax(560px,1fr) 290px; } } diff --git a/src/antigravity_provider/router/web/static/workflow.js b/src/antigravity_provider/router/web/static/workflow.js new file mode 100644 index 0000000..334141a --- /dev/null +++ b/src/antigravity_provider/router/web/static/workflow.js @@ -0,0 +1,497 @@ +/* Hermes Hub A30 workflow canvas — vanilla JS, no build step. */ +'use strict'; + +const workflowUi = { + initialized: false, + mode: 'live', + selectedAgentId: null, + selectedTab: 'main', + scale: 1, + dirty: false, + draftEdges: [], + draftPositions: {}, + connectingFrom: null, + drag: null, +}; + +function wfEscape(value) { + return String(value ?? '').replace(/[&<>'"]/g, (char) => ({ + '&': '&', '<': '<', '>': '>', "'": ''', '"': '"', + })[char]); +} + +function wfValue(value, suffix = '') { + return value === null || value === undefined ? null : `${value}${suffix}`; +} + +function wfUnavailable(elementId, reason) { + const value = document.getElementById(elementId); + const detail = document.getElementById(`${elementId}-reason`); + if (value) value.textContent = 'Н/Д'; + if (detail) detail.textContent = `Н/Д: ${reason}`; +} + +function initWorkflowOverview() { + if (workflowUi.initialized) return; + workflowUi.initialized = true; + document.getElementById('workflow-mode-live')?.addEventListener('click', () => setWorkflowMode('live')); + document.getElementById('workflow-mode-edit')?.addEventListener('click', () => setWorkflowMode('edit')); + document.getElementById('btn-workflow-save')?.addEventListener('click', saveWorkflowDraft); + document.getElementById('btn-agent-add')?.addEventListener('click', openAgentCreateDialog); + document.getElementById('btn-workflow-start')?.addEventListener('click', startWorkflowRun); + document.getElementById('btn-workflow-stop')?.addEventListener('click', () => executeAction('stop_workflow', {})); + document.getElementById('workflow-events-all')?.addEventListener('click', () => switchView('logs')); + document.getElementById('workflow-max-iterations')?.addEventListener('change', markWorkflowDirty); + document.getElementById('workflow-zoom-in')?.addEventListener('click', () => setWorkflowScale(workflowUi.scale + 0.1)); + document.getElementById('workflow-zoom-out')?.addEventListener('click', () => setWorkflowScale(workflowUi.scale - 0.1)); + document.getElementById('workflow-fit')?.addEventListener('click', fitWorkflowGraph); + const canvas = document.getElementById('workflow-canvas'); + canvas?.addEventListener('mousemove', workflowPointerMove); + canvas?.addEventListener('mouseup', workflowPointerUp); + canvas?.addEventListener('mouseleave', workflowPointerCancel); + window.addEventListener('resize', drawWorkflowEdges); +} + +function renderWorkflowOverview(snapshot) { + initWorkflowOverview(); + const workflow = snapshot?.workflow; + if (!workflow) { + renderWorkflowLoading('Backend не вернул поле workflow'); + return; + } + if (workflow.is_loading) { + renderWorkflowLoading('Workflow загружается'); + return; + } + if (workflow.unavailable_reason) { + renderWorkflowLoading(workflow.unavailable_reason); + return; + } + if (!workflowUi.dirty && !workflowUi.drag && !workflowUi.connectingFrom) { + workflowUi.draftEdges = (workflow.definition?.edges || []).map((edge) => ({ ...edge })); + workflowUi.draftPositions = Object.fromEntries((workflow.agents || []).map((agent) => [ + agent.id, { ...(agent.position || { x: 80, y: 80 }) }, + ])); + } + renderWorkflowKpis(snapshot); + renderWorkflowHeader(workflow); + renderWorkflowNodes(workflow); + renderWorkflowInspector(snapshot, workflow); + renderWorkflowEvents(workflow.events || []); + requestAnimationFrame(drawWorkflowEdges); +} + +function renderWorkflowLoading(reason) { + ['workflow-kpi-active', 'workflow-kpi-online', 'workflow-kpi-latency', 'workflow-kpi-tokens', 'workflow-kpi-success'] + .forEach((id) => wfUnavailable(id, reason)); + const empty = document.getElementById('workflow-empty'); + if (empty) { + empty.classList.remove('hidden'); + empty.innerHTML = `Workflow недоступен${wfEscape(reason)}`; + } +} + +function renderWorkflowKpis(snapshot) { + const metrics = snapshot.metrics || {}; + const telemetry = metrics.telemetry || {}; + const global = telemetry.global || {}; + const workflow = snapshot.workflow || {}; + const run = workflow.run || {}; + const active = run.status === 'running' ? 1 : 0; + setWorkflowKpi('workflow-kpi-active', String(active), 'Источник: workflow.run.status'); + + const readiness = snapshot.readiness || {}; + if (readiness.roles_ready_count === null || readiness.roles_ready_count === undefined || readiness.total_roles === undefined) { + wfUnavailable('workflow-kpi-online', 'readiness не содержит число готовых ролей'); + } else { + setWorkflowKpi('workflow-kpi-online', `${readiness.roles_ready_count} / ${readiness.total_roles}`, 'Источник: readiness'); + } + if (!global.total_calls) { + wfUnavailable('workflow-kpi-latency', 'за 24 часа нет измеренных вызовов'); + wfUnavailable('workflow-kpi-success', 'за 24 часа нет завершённых вызовов'); + } else { + const latency = wfValue(global.latency_p50_ms, ' мс'); + latency ? setWorkflowKpi('workflow-kpi-latency', latency, 'Медиана p50, telemetry') : wfUnavailable('workflow-kpi-latency', 'провайдер не вернул задержку'); + const success = global.successful_calls / global.total_calls * 100; + setWorkflowKpi('workflow-kpi-success', `${success.toFixed(1)}%`, `${global.successful_calls} из ${global.total_calls}, telemetry`); + } + if (global.total_tokens === null || global.total_tokens === undefined) { + wfUnavailable('workflow-kpi-tokens', 'провайдеры не вернули usage'); + } else { + setWorkflowKpi('workflow-kpi-tokens', new Intl.NumberFormat('ru-RU').format(global.total_tokens), 'Источник: telemetry usage, 24 ч'); + } +} + +function setWorkflowKpi(id, value, reason) { + const node = document.getElementById(id); + const detail = document.getElementById(`${id}-reason`); + if (node) node.textContent = value; + if (detail) detail.textContent = reason; +} + +function renderWorkflowHeader(workflow) { + const definition = workflow.definition || {}; + const run = workflow.run || {}; + document.getElementById('workflow-title').textContent = definition.name || 'Workflow без названия'; + const state = document.getElementById('workflow-run-state'); + state.textContent = workflowRunLabel(run.status); + state.className = `workflow-run-state ${wfEscape(run.status || 'idle')}`; + document.getElementById('workflow-iteration').textContent = run.iteration || 'Н/Д'; + if (!workflowUi.dirty) document.getElementById('workflow-max-iterations').value = definition.max_iterations || 1; + document.getElementById('workflow-run-error').textContent = run.error || ''; + document.getElementById('btn-workflow-start').disabled = run.status === 'running' || run.status === 'stopping'; + document.getElementById('btn-workflow-stop').disabled = run.status !== 'running'; +} + +function workflowRunLabel(status) { + return ({ idle: 'Нет активного запуска', running: '● Запущен', stopping: 'Останавливается', completed: 'Завершён', failed: 'Ошибка', stopped: 'Остановлен', interrupted: 'Прерван перезапуском' })[status] || `Н/Д: неизвестный статус ${status || 'не указан'}`; +} + +function renderWorkflowNodes(workflow) { + const layer = document.getElementById('workflow-node-layer'); + const canvas = document.getElementById('workflow-canvas'); + const agents = workflow.agents || []; + canvas.classList.toggle('workflow-mode-edit', workflowUi.mode === 'edit'); + document.getElementById('workflow-empty').classList.toggle('hidden', agents.length > 0); + layer.innerHTML = agents.map((agent) => { + const pos = workflowUi.draftPositions[agent.id] || agent.position || { x: 80, y: 80 }; + const cfg = agent.execution_config || {}; + const assignment = cfg.unavailable_reason + ? `Н/Д: ${cfg.unavailable_reason}` + : [cfg.provider, cfg.model, cfg.account].filter(Boolean).join(' · '); + return `
+ +

${wfEscape(agent.name)}

${wfEscape(agent.role)}

${wfEscape(agent.agent_file)}

${wfEscape(assignment)}

+
${wfEscape(runtimeStateLabel(agent.runtime_state))}
+
`; + }).join(''); + layer.style.transform = `scale(${workflowUi.scale})`; + layer.querySelectorAll('.workflow-node').forEach((node) => { + node.addEventListener('click', () => selectWorkflowAgent(node.dataset.agentId)); + node.addEventListener('mousedown', beginNodeDrag); + node.querySelector('.workflow-port.out')?.addEventListener('mousedown', beginConnection); + node.querySelector('.workflow-port.in')?.addEventListener('mouseup', finishConnection); + }); + renderWorkflowMinimap(agents); +} + +function runtimeStateLabel(state) { + return ({ waiting: 'Ожидает', working: 'Работает', reviewing: 'Проверяет', error: 'Ошибка', completed: 'Завершено', not_implemented: 'Исполнение не реализовано' })[state] || `Н/Д: ${state || 'статус не получен'}`; +} + +function setWorkflowMode(mode) { + if (mode === 'edit' && currentSnapshot?.workflow?.run?.status === 'running') { + showToast('EDIT недоступен во время LIVE-выполнения', 'warning'); + return; + } + workflowUi.mode = mode; + document.querySelectorAll('.workflow-mode-btn').forEach((button) => button.classList.toggle('active', button.dataset.mode === mode)); + renderWorkflowOverview(currentSnapshot); +} + +function selectWorkflowAgent(agentId) { + if (workflowUi.drag?.moved) return; + workflowUi.selectedAgentId = agentId; + renderWorkflowOverview(currentSnapshot); +} + +function beginNodeDrag(event) { + if (workflowUi.mode !== 'edit' || event.target.classList.contains('workflow-port')) return; + const node = event.currentTarget; + const position = workflowUi.draftPositions[node.dataset.agentId] || { x: node.offsetLeft, y: node.offsetTop }; + workflowUi.drag = { id: node.dataset.agentId, startX: event.clientX, startY: event.clientY, original: { ...position }, moved: false }; + event.preventDefault(); +} + +function workflowPointerMove(event) { + if (workflowUi.drag) { + const drag = workflowUi.drag; + const dx = (event.clientX - drag.startX) / workflowUi.scale; + const dy = (event.clientY - drag.startY) / workflowUi.scale; + if (Math.abs(dx) + Math.abs(dy) > 3) drag.moved = true; + workflowUi.draftPositions[drag.id] = { x: Math.max(0, drag.original.x + dx), y: Math.max(0, drag.original.y + dy) }; + const node = document.querySelector(`.workflow-node[data-agent-id="${CSS.escape(drag.id)}"]`); + if (node) { + node.style.left = `${workflowUi.draftPositions[drag.id].x}px`; + node.style.top = `${workflowUi.draftPositions[drag.id].y}px`; + } + drawWorkflowEdges(); + } +} + +function workflowPointerUp(event) { + if (workflowUi.drag) { + if (workflowUi.drag.moved) markWorkflowDirty(); + workflowUi.drag = null; + } + if (workflowUi.connectingFrom && event.target === document.getElementById('workflow-canvas')) { + workflowUi.connectingFrom = null; + showToast('Создание связи отменено', 'info'); + } +} + +function workflowPointerCancel() { + if (workflowUi.drag) { + workflowUi.draftPositions[workflowUi.drag.id] = workflowUi.drag.original; + workflowUi.drag = null; + renderWorkflowOverview(currentSnapshot); + } + workflowUi.connectingFrom = null; +} + +function beginConnection(event) { + if (workflowUi.mode !== 'edit') return; + workflowUi.connectingFrom = event.currentTarget.closest('.workflow-node').dataset.agentId; + event.stopPropagation(); + event.preventDefault(); + showToast('Выберите входной порт целевого агента', 'info'); +} + +function finishConnection(event) { + const target = event.currentTarget.closest('.workflow-node').dataset.agentId; + const source = workflowUi.connectingFrom; + workflowUi.connectingFrom = null; + event.stopPropagation(); + if (!source || source === target) return; + openEdgeDialog({ id: `edge-${Date.now()}`, source, target, condition: 'SUCCESS', label: '' }, true); +} + +function drawWorkflowEdges() { + const canvas = document.getElementById('workflow-canvas'); + const svg = document.getElementById('workflow-edges'); + const layer = document.getElementById('workflow-edge-layer'); + if (!canvas || !svg || !layer) return; + svg.setAttribute('viewBox', `0 0 ${canvas.clientWidth} ${canvas.clientHeight}`); + const parts = []; + workflowUi.draftEdges.forEach((edge) => { + const source = document.querySelector(`.workflow-node[data-agent-id="${CSS.escape(edge.source)}"]`); + const target = document.querySelector(`.workflow-node[data-agent-id="${CSS.escape(edge.target)}"]`); + if (!source || !target) return; + const x1 = (source.offsetLeft + source.offsetWidth) * workflowUi.scale; + const y1 = (source.offsetTop + source.offsetHeight / 2) * workflowUi.scale; + const x2 = target.offsetLeft * workflowUi.scale; + const y2 = (target.offsetTop + target.offsetHeight / 2) * workflowUi.scale; + const bend = Math.max(45, Math.abs(x2 - x1) * .42); + const path = `M ${x1} ${y1} C ${x1 + bend} ${y1}, ${x2 - bend} ${y2}, ${x2} ${y2}`; + const klass = String(edge.condition || '').toLowerCase(); + const labelX = (x1 + x2) / 2; + const labelY = (y1 + y2) / 2 - 5; + parts.push(`${wfEscape(edge.label || edge.condition)}`); + }); + layer.innerHTML = parts.join(''); + layer.querySelectorAll('.workflow-edge-hit').forEach((path) => path.addEventListener('click', () => { + const edge = workflowUi.draftEdges.find((item) => item.id === path.dataset.edgeId); + if (workflowUi.mode === 'edit' && edge) openEdgeDialog(edge, false); + })); +} + +function renderWorkflowMinimap(agents) { + const minimap = document.getElementById('workflow-minimap'); + if (!minimap) return; + const maxX = Math.max(900, ...agents.map((agent) => (workflowUi.draftPositions[agent.id]?.x || 0) + 200)); + const maxY = Math.max(500, ...agents.map((agent) => (workflowUi.draftPositions[agent.id]?.y || 0) + 100)); + minimap.innerHTML = agents.map((agent) => { + const pos = workflowUi.draftPositions[agent.id] || { x: 0, y: 0 }; + return ``; + }).join(''); +} + +function setWorkflowScale(value) { + workflowUi.scale = Math.max(.5, Math.min(1.6, Math.round(value * 10) / 10)); + document.getElementById('workflow-zoom-value').textContent = `${Math.round(workflowUi.scale * 100)}%`; + renderWorkflowOverview(currentSnapshot); +} + +function fitWorkflowGraph() { + const agents = currentSnapshot?.workflow?.agents || []; + const maxX = Math.max(...agents.map((agent) => (workflowUi.draftPositions[agent.id]?.x || 0) + 210), 600); + const maxY = Math.max(...agents.map((agent) => (workflowUi.draftPositions[agent.id]?.y || 0) + 110), 400); + const canvas = document.getElementById('workflow-canvas'); + setWorkflowScale(Math.min(canvas.clientWidth / maxX, canvas.clientHeight / maxY, 1)); +} + +function markWorkflowDirty() { + workflowUi.dirty = true; + const state = document.getElementById('workflow-save-state'); + state.textContent = 'Есть несохранённые изменения'; + state.classList.add('dirty'); +} + +async function saveWorkflowDraft() { + const definition = currentSnapshot?.workflow?.definition || {}; + const result = await executeAction('save_workflow', { + id: definition.id, + name: definition.name, + start_agent_id: definition.start_agent_id, + escalation_agent_id: definition.escalation_agent_id, + max_iterations: Number(document.getElementById('workflow-max-iterations').value), + edges: workflowUi.draftEdges, + agents: Object.entries(workflowUi.draftPositions).map(([id, position]) => ({ id, position })), + }); + if (result.ok) { + workflowUi.dirty = false; + const state = document.getElementById('workflow-save-state'); + state.textContent = 'Сохранено'; + state.classList.remove('dirty'); + } +} + +function renderWorkflowInspector(snapshot, workflow) { + const box = document.getElementById('workflow-inspector'); + const agent = (workflow.agents || []).find((item) => item.id === workflowUi.selectedAgentId); + if (!agent) { + box.innerHTML = '
INSPECTORВыберите агента на графе
'; + return; + } + const cfg = agent.execution_config || {}; + const tabs = [['main', 'Основное'], ['model', 'Модель'], ['instructions', 'Инструкции'], ['tools', 'Инструменты'], ['memory', 'Память'], ['history', 'История']]; + box.innerHTML = `

INSPECTOR: ${wfEscape(agent.name)}

${tabs.map(([id, label]) => ``).join('')}
`; + box.querySelectorAll('.inspector-tabs button').forEach((button) => button.addEventListener('click', () => { + workflowUi.selectedTab = button.dataset.tab; + renderWorkflowInspector(snapshot, workflow); + })); + const content = document.getElementById('inspector-tab-content'); + if (workflowUi.selectedTab === 'main') { + content.innerHTML = `
`; + document.getElementById('agent-save-main').onclick = () => executeAction('update_agent', { agent_id: agent.id, name: document.getElementById('agent-edit-name').value, description: document.getElementById('agent-edit-description').value }); + document.getElementById('agent-delete').onclick = () => deleteWorkflowAgent(agent); + } else if (workflowUi.selectedTab === 'model') { + renderAgentModelTab(content, snapshot, agent); + } else if (workflowUi.selectedTab === 'instructions') { + content.innerHTML = `
Agent File${wfEscape(agent.agent_file)}${agent.agent_file_exists ? 'Файл существует' : 'Н/Д: файл отсутствует'}
`; + document.getElementById('agent-file-open').onclick = () => openAgentFileEditor(agent); + } else if (workflowUi.selectedTab === 'tools') { + content.innerHTML = ``; + document.getElementById('agent-tools-save').onclick = () => executeAction('update_agent', { agent_id: agent.id, tools: document.getElementById('agent-tools').value.split(',').map((v) => v.trim()).filter(Boolean) }); + } else if (workflowUi.selectedTab === 'memory') { + content.innerHTML = `
${Object.keys(agent.memory_configuration || {}).length ? `
${wfEscape(JSON.stringify(agent.memory_configuration, null, 2))}
` : 'Н/Д: конфигурация памяти не задана'}
`; + } else { + const history = (workflow.events || []).filter((event) => event.agent_id === agent.id); + content.innerHTML = history.length ? history.slice(-20).reverse().map((event) => `
${wfEscape(event.message)}${event.duration_seconds == null ? '' : `${event.duration_seconds} с`}
`).join('') : '
Н/Д: у агента ещё нет запусков
'; + } +} + +function renderAgentModelTab(content, snapshot, agent) { + const profiles = Object.values(snapshot.all_profiles || {}).filter((profile) => isConnectedProfile(profile)); + const cfg = agent.execution_config || {}; + const providers = [...new Set(profiles.map((profile) => profile.provider))]; + content.innerHTML = ``; + const providerSelect = document.getElementById('agent-provider'); + const accountSelect = document.getElementById('agent-account'); + const modelSelect = document.getElementById('agent-model'); + const refreshAccounts = () => { + const matches = profiles.filter((profile) => profile.provider === providerSelect.value); + accountSelect.innerHTML = matches.length ? matches.map((profile) => ``).join('') : ''; + refreshModels(); + }; + const refreshModels = () => { + const profile = profiles.find((item) => item.profile_id === accountSelect.value); + const models = profile?.preferred_models || Object.values(profile?.model_states || {}).map((state) => state.display_name).filter(Boolean); + modelSelect.innerHTML = models.length ? models.map((model) => ``).join('') : ''; + }; + providerSelect.onchange = refreshAccounts; + accountSelect.onchange = refreshModels; + refreshAccounts(); + document.getElementById('agent-model-save').onclick = () => executeAction('update_agent', { + agent_id: agent.id, provider: providerSelect.value, profile_id: accountSelect.value, model: modelSelect.value, + temperature: nullableNumber('agent-temperature'), max_tokens: nullableNumber('agent-max-tokens'), timeout: nullableNumber('agent-timeout'), + }); +} + +function nullableNumber(id) { + const value = document.getElementById(id).value.trim(); + return value === '' ? null : Number(value); +} + +async function deleteWorkflowAgent(agent) { + let result = await executeAction('delete_agent', { agent_id: agent.id }); + if (result.ok && result.data?.confirmation_required) { + const refs = result.data.consequences?.workflow_edges || []; + if (!confirm(`Агент участвует в маршруте и/или графе. Будут удалены связи: ${refs.length ? refs.join(', ') : 'нет'}. Продолжить?`)) return; + result = await executeAction('delete_agent', { agent_id: agent.id, force: true }); + } + if (result.ok && result.data?.deleted) workflowUi.selectedAgentId = null; +} + +function openAgentCreateDialog() { + const profiles = Object.values(currentSnapshot?.all_profiles || {}).filter((profile) => isConnectedProfile(profile)); + openWorkflowDialog('Добавить агента', ``, async (close) => { + const account = document.getElementById('new-agent-account').value; + const profile = profiles.find((item) => item.profile_id === account); + const result = await executeAction('create_agent', { + name: document.getElementById('new-agent-name').value, + role: document.getElementById('new-agent-role').value, + description: document.getElementById('new-agent-description').value, + account, + model: profile?.preferred_models?.[0] || null, + agent_file: document.getElementById('new-agent-file').value, + }); + if (result.ok) close(); + }); +} + +async function openAgentFileEditor(agent) { + const result = await executeAction('read_agent_file', { agent_id: agent.id }); + if (!result.ok) return; + const data = result.data || {}; + if (!data.exists) { + showToast(`Н/Д: ${data.reason}`, 'warning'); + return; + } + openWorkflowDialog(`Agent File — ${agent.name}`, `

Нет изменений

`, async (close) => { + const saved = await executeAction('save_agent_file', { agent_id: agent.id, content: document.getElementById('agent-file-content').value }); + if (saved.ok) close(); + }, 'Сохранить'); + const editor = document.getElementById('agent-file-content'); + editor.addEventListener('input', () => { document.getElementById('agent-file-unsaved').textContent = 'Есть несохранённые изменения'; }); +} + +function openEdgeDialog(edge, isNew) { + openWorkflowDialog(isNew ? 'Новое ребро' : 'Редактор ребра', `${isNew ? '' : ''}`, (close) => { + const updated = { ...edge, condition: document.getElementById('edge-condition').value, label: document.getElementById('edge-label').value }; + const index = workflowUi.draftEdges.findIndex((item) => item.id === edge.id); + if (index >= 0) workflowUi.draftEdges[index] = updated; else workflowUi.draftEdges.push(updated); + markWorkflowDirty(); close(); drawWorkflowEdges(); + }); + if (!isNew) document.getElementById('edge-delete').onclick = () => { + workflowUi.draftEdges = workflowUi.draftEdges.filter((item) => item.id !== edge.id); + markWorkflowDirty(); document.querySelector('.workflow-dialog-backdrop')?.remove(); drawWorkflowEdges(); + }; +} + +function openWorkflowDialog(title, body, onSave, saveLabel = 'Применить') { + document.querySelector('.workflow-dialog-backdrop')?.remove(); + const backdrop = document.createElement('div'); + backdrop.className = 'workflow-dialog-backdrop'; + backdrop.innerHTML = `

${wfEscape(title)}

${body}
`; + document.body.appendChild(backdrop); + const close = () => backdrop.remove(); + backdrop.querySelector('[data-dialog-cancel]').onclick = close; + backdrop.querySelector('[data-dialog-save]').onclick = () => onSave(close); + backdrop.addEventListener('click', (event) => { if (event.target === backdrop) close(); }); +} + +async function startWorkflowRun() { + if (workflowUi.dirty) { + showToast('Сначала сохраните изменения графа', 'warning'); + return; + } + const task = document.getElementById('workflow-task').value.trim(); + await executeAction('start_workflow', { task }); + setWorkflowMode('live'); +} + +function renderWorkflowEvents(events) { + const box = document.getElementById('workflow-events-list'); + if (!events.length) { + box.innerHTML = '

Н/Д: workflow ещё не создавал событий

'; + return; + } + box.innerHTML = events.slice(-20).reverse().map((event) => `
${wfEscape(event.message)}${event.error ? ` — ${wfEscape(event.error)}` : ''}${wfEscape(event.type)}
`).join(''); +} + +function formatWorkflowTime(value) { + if (!value) return 'Н/Д'; + const parsed = new Date(value); + return Number.isNaN(parsed.getTime()) ? value : parsed.toLocaleTimeString('ru-RU'); +} diff --git a/src/antigravity_provider/router/workflow_service.py b/src/antigravity_provider/router/workflow_service.py new file mode 100644 index 0000000..b0db3b8 --- /dev/null +++ b/src/antigravity_provider/router/workflow_service.py @@ -0,0 +1,646 @@ +"""Persistent agents, workflow graph and live execution for Hermes Hub. + +The router role registry remains the source of truth for logical agents and +Provider -> Account -> Model assignment. This module adds the pieces that do +not fit the routing schema: Agent Files, editor layout, workflow transitions, +execution checkpoints and a bounded event journal. +""" +from __future__ import annotations + +import json +import re +import threading +import time +import uuid +from dataclasses import asdict, dataclass, field +from pathlib import Path +from typing import Any, Optional + +from antigravity_provider import paths +from antigravity_provider.router.router_config import RolePolicy, load_router_config, save_router_config + + +AGENT_STATES = {"waiting", "working", "reviewing", "error", "completed", "not_implemented"} +EDGE_CONDITIONS = {"SUCCESS", "REVIEW_PASSED", "REVIEW_FAILED", "NEXT", "ERROR", "ALWAYS"} + + +def _utc_timestamp() -> str: + import datetime + + return datetime.datetime.now(datetime.timezone.utc).isoformat(timespec="seconds") + + +def _slug(value: str) -> str: + result = re.sub(r"[^a-z0-9]+", "-", value.strip().lower()).strip("-") + return result or f"agent-{uuid.uuid4().hex[:8]}" + + +def _safe_agent_file(value: str, agent_id: str) -> tuple[Path, str]: + """Resolve an Agent File below HERMES_HOME/agents and reject traversal.""" + root = paths.get_agent_files_dir().resolve() + candidate_name = Path(value or f"{agent_id}.md").name + if not candidate_name.lower().endswith(".md"): + candidate_name += ".md" + target = (root / candidate_name).resolve() + if target.parent != root: + raise ValueError("Agent File должен находиться в каталоге agents") + return target, f"agents/{candidate_name}" + + +@dataclass +class AgentDefinition: + id: str + name: str + role: str + description: str = "" + agent_file: str = "" + tools: list[str] = field(default_factory=list) + memory_configuration: dict[str, Any] = field(default_factory=dict) + execution_policy: dict[str, Any] = field(default_factory=dict) + timeout: int = 180 + temperature: Optional[float] = None + max_tokens: Optional[int] = None + position: dict[str, float] = field(default_factory=lambda: {"x": 80.0, "y": 80.0}) + metadata: dict[str, Any] = field(default_factory=dict) + + +@dataclass +class WorkflowEdge: + id: str + source: str + target: str + condition: str = "SUCCESS" + label: str = "" + + +@dataclass +class WorkflowDefinition: + id: str = "main" + name: str = "Основной workflow" + edges: list[WorkflowEdge] = field(default_factory=list) + max_iterations: int = 5 + escalation_agent_id: Optional[str] = None + start_agent_id: Optional[str] = None + + +@dataclass +class WorkflowEvent: + timestamp: str + type: str + message: str + level: str = "info" + run_id: Optional[str] = None + agent_id: Optional[str] = None + iteration: Optional[int] = None + provider: Optional[str] = None + account: Optional[str] = None + model: Optional[str] = None + duration_seconds: Optional[float] = None + error: Optional[str] = None + + +class WorkflowService: + _instance: Optional["WorkflowService"] = None + _instance_lock = threading.Lock() + + def __init__(self, state_path: Optional[Path] = None) -> None: + self.state_path = state_path or paths.get_workflow_state_path() + self._lock = threading.RLock() + self._stop = threading.Event() + self._thread: Optional[threading.Thread] = None + self.agents: dict[str, AgentDefinition] = {} + self.workflow = WorkflowDefinition() + self.events: list[WorkflowEvent] = [] + self.run: dict[str, Any] = self._idle_run() + self._load() + self._migrate_router_roles() + + @classmethod + def get(cls) -> "WorkflowService": + if cls._instance is None: + with cls._instance_lock: + if cls._instance is None: + cls._instance = cls() + return cls._instance + + @staticmethod + def _idle_run() -> dict[str, Any]: + return { + "id": None, + "status": "idle", + "current_agent_id": None, + "current_task": None, + "iteration": 0, + "started_at": None, + "finished_at": None, + "elapsed_seconds": None, + "last_result": None, + "error": None, + "agent_states": {}, + } + + def _load(self) -> None: + if not self.state_path.is_file(): + return + try: + raw = json.loads(self.state_path.read_text(encoding="utf-8")) + self.agents = { + item["id"]: AgentDefinition(**item) + for item in raw.get("agents", []) + if isinstance(item, dict) and item.get("id") + } + wf = raw.get("workflow") or {} + edges = [WorkflowEdge(**edge) for edge in wf.pop("edges", []) if isinstance(edge, dict)] + self.workflow = WorkflowDefinition(edges=edges, **wf) + self.events = [WorkflowEvent(**event) for event in raw.get("events", [])[-200:]] + self.run = raw.get("run") or self._idle_run() + if self.run.get("status") in {"running", "stopping"}: + self.run["status"] = "interrupted" + self.run["error"] = "Выполнение прервано перезапуском Hermes Hub; checkpoint сохранён" + self._event("WORKFLOW_INTERRUPTED", self.run["error"], level="warning") + except (OSError, ValueError, TypeError): + self.agents = {} + self.workflow = WorkflowDefinition() + self.events = [] + self.run = self._idle_run() + + def _save(self) -> None: + self.state_path.parent.mkdir(parents=True, exist_ok=True) + payload = { + "schema_version": 1, + "agents": [asdict(agent) for agent in self.agents.values()], + "workflow": asdict(self.workflow), + "events": [asdict(event) for event in self.events[-200:]], + "run": self.run, + } + temp = self.state_path.with_suffix(".tmp") + temp.write_text(json.dumps(payload, ensure_ascii=False, indent=2), encoding="utf-8") + temp.replace(self.state_path) + + def _migrate_router_roles(self) -> None: + config = load_router_config() + changed = False + for index, (role_id, policy) in enumerate(config.roles.items()): + if role_id in self.agents: + continue + target, relative = _safe_agent_file("", role_id) + name = role_id.replace("-", " ").title() + description = "" + try: + from antigravity_provider.router.role_registry import get_role_definition + + definition = get_role_definition(role_id) + name = getattr(definition, "name", None) or getattr(definition, "display_name", None) or name + description = getattr(definition, "description", "") + except (ImportError, AttributeError, TypeError): + pass + agent = AgentDefinition( + id=role_id, + name=name, + role=role_id, + description=description, + agent_file=relative, + position={"x": 70.0 + (index % 2) * 280.0, "y": 45.0 + (index // 2) * 125.0}, + ) + self.agents[role_id] = agent + self._ensure_file(target, agent) + changed = True + if changed: + self._save() + + @staticmethod + def _ensure_file(target: Path, agent: AgentDefinition) -> None: + if not target.exists(): + body = f"# {agent.name}\n\n## Роль\n\n{agent.role}\n\n## Назначение\n\n{agent.description or 'Инструкции ещё не заполнены.'}\n" + target.write_text(body, encoding="utf-8") + + def _execution_config(self, agent: AgentDefinition) -> dict[str, Any]: + config = load_router_config() + policy = config.roles.get(agent.role) + profile_id = policy.preferred_chain[0] if policy and policy.preferred_chain else None + profile = config.profiles.get(profile_id) if profile_id else None + model = policy.default_model if policy else None + if not model and profile and profile.preferred_models: + model = profile.preferred_models[0] + return { + "provider": profile.provider if profile else None, + "account": profile_id, + "model": model, + "timeout": agent.timeout, + "temperature": agent.temperature, + "max_tokens": agent.max_tokens, + "unavailable_reason": None if profile else "Для роли не назначен доступный аккаунт", + } + + def snapshot(self) -> dict[str, Any]: + with self._lock: + agents = [] + for agent in self.agents.values(): + item = asdict(agent) + target, relative = _safe_agent_file(agent.agent_file, agent.id) + item["agent_file"] = relative + item["agent_file_exists"] = target.is_file() + item["execution_config"] = self._execution_config(agent) + item["runtime_state"] = (self.run.get("agent_states") or {}).get(agent.id, "waiting") + agents.append(item) + return { + "agents": agents, + "definition": asdict(self.workflow), + "run": dict(self.run), + "events": [asdict(event) for event in self.events[-60:]], + "is_loading": False, + } + + def read_agent_file(self, agent_id: str) -> dict[str, Any]: + with self._lock: + agent = self._require_agent(agent_id) + target, relative = _safe_agent_file(agent.agent_file, agent.id) + if not target.is_file(): + return {"path": relative, "exists": False, "content": None, "reason": "Файл не найден на диске"} + return {"path": relative, "exists": True, "content": target.read_text(encoding="utf-8")} + + def save_agent_file(self, agent_id: str, content: str) -> dict[str, Any]: + with self._lock: + agent = self._require_agent(agent_id) + target, relative = _safe_agent_file(agent.agent_file, agent.id) + temporary = target.with_suffix(".md.tmp") + temporary.write_text(str(content), encoding="utf-8") + temporary.replace(target) + self._event("AGENT_FILE_SAVED", f"Сохранён Agent File {relative}", agent_id=agent_id) + self._save() + return {"path": relative, "exists": True} + + def create_agent(self, data: dict[str, Any]) -> AgentDefinition: + name = str(data.get("name") or "").strip() + role = _slug(str(data.get("role") or name)) + agent_id = _slug(str(data.get("id") or role)) + if not name: + raise ValueError("Укажите название агента") + with self._lock: + if agent_id in self.agents: + raise ValueError("Агент с таким идентификатором уже существует") + profile_id = str(data.get("account") or data.get("profile_id") or "").strip() + config = load_router_config() + if profile_id and profile_id not in config.profiles: + raise ValueError("Выбранный аккаунт отсутствует в маршрутизаторе") + config.roles[role] = RolePolicy( + role_name=role, + preferred_chain=[profile_id] if profile_id else [], + fallback_capabilities=list(data.get("fallback_capabilities") or [role]), + default_model=data.get("model") or None, + ) + if not save_router_config(config): + raise OSError("Не удалось сохранить назначение агента") + target, relative = _safe_agent_file(str(data.get("agent_file") or ""), agent_id) + agent = AgentDefinition( + id=agent_id, + name=name, + role=role, + description=str(data.get("description") or ""), + agent_file=relative, + tools=[str(item) for item in data.get("tools", [])], + memory_configuration=dict(data.get("memory_configuration") or {}), + execution_policy=dict(data.get("execution_policy") or {}), + timeout=max(1, int(data.get("timeout") or 180)), + temperature=float(data["temperature"]) if data.get("temperature") is not None else None, + max_tokens=int(data["max_tokens"]) if data.get("max_tokens") is not None else None, + position=dict(data.get("position") or {"x": 80.0, "y": 80.0}), + ) + self.agents[agent_id] = agent + copy_from = data.get("copy_from") + if copy_from: + source = self.read_agent_file(str(copy_from)) + target.write_text(source.get("content") or "", encoding="utf-8") + else: + self._ensure_file(target, agent) + self._event("AGENT_CREATED", f"Создан агент «{name}»", agent_id=agent_id) + self._save() + return agent + + def update_agent(self, agent_id: str, data: dict[str, Any]) -> AgentDefinition: + with self._lock: + agent = self._require_agent(agent_id) + config = load_router_config() + policy = config.roles.get(agent.role) + if not policy: + policy = RolePolicy(role_name=agent.role) + config.roles[agent.role] = policy + profile_id = str(data.get("account") or data.get("profile_id") or "").strip() + if profile_id: + profile = config.profiles.get(profile_id) + if not profile: + raise ValueError("Выбранный аккаунт отсутствует в маршрутизаторе") + requested_provider = str(data.get("provider") or "").strip() + if requested_provider and profile.provider != requested_provider: + raise ValueError("Аккаунт не принадлежит выбранному провайдеру") + policy.preferred_chain = [profile_id] + [item for item in policy.preferred_chain if item != profile_id] + if "model" in data: + model = str(data.get("model") or "").strip() or None + if model and profile_id: + profile = config.profiles[profile_id] + if model not in profile.preferred_models: + raise ValueError("Модель не доступна выбранному аккаунту") + policy.default_model = model + if not save_router_config(config): + raise OSError("Не удалось сохранить назначение агента") + for attr in ("name", "description"): + if attr in data: + setattr(agent, attr, str(data[attr]).strip()) + for attr in ("tools", "memory_configuration", "execution_policy", "position"): + if attr in data: + setattr(agent, attr, type(getattr(agent, attr))(data[attr])) + for attr in ("timeout", "max_tokens"): + if attr in data and data[attr] is not None: + setattr(agent, attr, int(data[attr])) + if "temperature" in data: + agent.temperature = float(data["temperature"]) if data["temperature"] is not None else None + self._event("AGENT_UPDATED", f"Обновлён агент «{agent.name}»", agent_id=agent_id) + self._save() + return agent + + def delete_agent(self, agent_id: str, force: bool = False) -> dict[str, Any]: + with self._lock: + agent = self._require_agent(agent_id) + edge_ids = [edge.id for edge in self.workflow.edges if edge.source == agent_id or edge.target == agent_id] + route_used = bool(load_router_config().roles.get(agent.role)) + consequences = {"workflow_edges": edge_ids, "routing_role": agent.role if route_used else None} + if (edge_ids or route_used) and not force: + return {"deleted": False, "confirmation_required": True, "consequences": consequences} + config = load_router_config() + config.roles.pop(agent.role, None) + if not save_router_config(config): + raise OSError("Не удалось удалить роль из маршрутизатора") + self.workflow.edges = [edge for edge in self.workflow.edges if edge.id not in edge_ids] + self.agents.pop(agent_id) + self._event("AGENT_DELETED", f"Удалён агент «{agent.name}»", agent_id=agent_id, level="warning") + self._save() + return {"deleted": True, "consequences": consequences} + + def save_workflow(self, data: dict[str, Any]) -> WorkflowDefinition: + with self._lock: + if self.run.get("status") in {"running", "stopping"}: + raise ValueError("Нельзя менять граф в режиме LIVE во время выполнения") + edges: list[WorkflowEdge] = [] + seen: set[str] = set() + for raw in data.get("edges", []): + source, target = str(raw.get("source") or ""), str(raw.get("target") or "") + condition = str(raw.get("condition") or "SUCCESS").upper() + if source not in self.agents or target not in self.agents: + raise ValueError("Ребро ссылается на отсутствующего агента") + if condition not in EDGE_CONDITIONS: + raise ValueError(f"Неизвестное условие перехода: {condition}") + edge_id = str(raw.get("id") or f"edge-{uuid.uuid4().hex[:10]}") + if edge_id in seen: + raise ValueError("Идентификаторы рёбер должны быть уникальны") + seen.add(edge_id) + edges.append(WorkflowEdge(edge_id, source, target, condition, str(raw.get("label") or ""))) + max_iterations = int(data.get("max_iterations") or self.workflow.max_iterations) + if not 1 <= max_iterations <= 100: + raise ValueError("Предел итераций должен быть от 1 до 100") + for raw_agent in data.get("agents", []): + agent = self.agents.get(str(raw_agent.get("id") or "")) + pos = raw_agent.get("position") + if agent and isinstance(pos, dict): + agent.position = {"x": float(pos.get("x", 0)), "y": float(pos.get("y", 0))} + self.workflow = WorkflowDefinition( + id=str(data.get("id") or self.workflow.id), + name=str(data.get("name") or self.workflow.name), + edges=edges, + max_iterations=max_iterations, + escalation_agent_id=data.get("escalation_agent_id") or None, + start_agent_id=data.get("start_agent_id") or None, + ) + self._event("WORKFLOW_SAVED", f"Сохранён workflow «{self.workflow.name}»") + self._save() + return self.workflow + + def start(self, task: str) -> dict[str, Any]: + task = str(task or "").strip() + if not task: + raise ValueError("Для запуска укажите реальную задачу") + with self._lock: + if self._thread and self._thread.is_alive(): + raise ValueError("Workflow уже выполняется") + start_id = self.workflow.start_agent_id or (next(iter(self.agents), None)) + if not start_id or start_id not in self.agents: + raise ValueError("В workflow нет стартового агента") + self._stop.clear() + self.run = self._idle_run() + self.run.update({ + "id": uuid.uuid4().hex, + "status": "running", + "current_agent_id": start_id, + "current_task": task, + "iteration": 1, + "started_at": _utc_timestamp(), + }) + self._event("WORKFLOW_STARTED", "Workflow запущен", run_id=self.run["id"], iteration=1) + self._save() + self._thread = threading.Thread(target=self._execute, name="HermesWorkflow", daemon=True) + self._thread.start() + return dict(self.run) + + def stop(self) -> dict[str, Any]: + with self._lock: + if self.run.get("status") != "running": + raise ValueError("Нет выполняющегося workflow") + self.run["status"] = "stopping" + self._stop.set() + self._event("WORKFLOW_STOP_REQUESTED", "Запрошена остановка workflow", level="warning") + self._save() + return dict(self.run) + + def _execute(self) -> None: + from antigravity_provider.router.router_engine import get_router_engine + + started = time.monotonic() + context = str(self.run.get("current_task") or "") + current = str(self.run.get("current_agent_id") or "") + visited: dict[str, int] = {} + try: + engine = get_router_engine() + engine.reload_config() + while current and not self._stop.is_set(): + with self._lock: + agent = self._require_agent(current) + visited[current] = visited.get(current, 0) + 1 + iteration = max(visited.values()) + self.run.update({"current_agent_id": current, "iteration": iteration}) + if iteration > self.workflow.max_iterations: + message = f"Достигнут предел итераций: {self.workflow.max_iterations}" + self.run.update({"status": "failed", "error": message}) + self._event("WORKFLOW_MAX_ITERATIONS", message, level="error", agent_id=current, iteration=iteration) + break + file_data = self.read_agent_file(current) + if not file_data["exists"]: + raise FileNotFoundError(f"{file_data['path']}: {file_data['reason']}") + self.run.setdefault("agent_states", {})[current] = ( + "reviewing" if "review" in agent.role.lower() else "working" + ) + self._event("AGENT_STARTED", f"{agent.name} начал выполнение", agent_id=current, iteration=iteration) + self._save() + request = { + "model": self._execution_config(agent).get("model"), + "messages": [ + {"role": "system", "content": file_data["content"]}, + {"role": "user", "content": context}, + ], + "timeout": agent.timeout, + "metadata": {"role": agent.role, "workflow_run_id": self.run["id"]}, + } + if agent.temperature is not None: + request["temperature"] = agent.temperature + if agent.max_tokens is not None: + request["max_tokens"] = agent.max_tokens + step_started = time.monotonic() + response = engine.route_request(request, role=agent.role, session_id=self.run["id"]) + duration = round(time.monotonic() - step_started, 3) + text = self._response_text(response) + status = self._result_status(response, text) + metadata = response.get("router_metadata", {}) if isinstance(response, dict) else {} + with self._lock: + self.run["last_result"] = {"status": status, "content": text, "router_metadata": metadata} + self.run.setdefault("agent_states", {})[current] = ( + "error" if status in {"ERROR", "REVIEW_FAILED"} else "completed" + ) + self._event( + "AGENT_COMPLETED", + f"{agent.name}: {status}", + level="success" if status not in {"ERROR", "REVIEW_FAILED"} else "warning", + agent_id=current, + iteration=iteration, + provider=metadata.get("provider"), + account=metadata.get("profile_id"), + model=metadata.get("selected_model") or (metadata.get("selection_trace") or {}).get("selected_model"), + duration_seconds=duration, + error=text if status == "ERROR" else None, + ) + edge = next( + (item for item in self.workflow.edges if item.source == current and item.condition in {status, "ALWAYS"}), + None, + ) + if not edge and status not in {"ERROR", "REVIEW_FAILED"}: + edge = next( + (item for item in self.workflow.edges if item.source == current and item.condition in {"SUCCESS", "NEXT"}), + None, + ) + if not edge: + self.run["status"] = "failed" if status in {"ERROR", "REVIEW_FAILED"} else "completed" + if status == "ERROR": + self.run["error"] = text or "Провайдер вернул ERROR без текста" + self._event( + "WORKFLOW_FAILED" if self.run["status"] == "failed" else "WORKFLOW_COMPLETED", + f"Workflow завершён со статусом {status}", + level="error" if self.run["status"] == "failed" else "success", + agent_id=current, + iteration=iteration, + error=self.run.get("error") if self.run["status"] == "failed" else None, + ) + if status == "ERROR": + try: + from antigravity_provider.router.unified_health import EventLogService + + EventLogService.get().log( + "workflow", + f"Ошибка агента «{agent.name}»", + details=self.run["error"], + level="error", + ) + except Exception: + pass + break + self._event( + "WORKFLOW_TRANSITION", + f"Переход {current} → {edge.target}: {edge.condition}", + agent_id=current, + iteration=iteration, + ) + context = json.dumps({ + "original_task": self.run["current_task"], + "previous_agent": current, + "structured_result": {"status": status, "content": text}, + }, ensure_ascii=False) + current = edge.target + self._save() + with self._lock: + if self._stop.is_set(): + self.run.update({"status": "stopped", "error": "Остановлено пользователем"}) + self._event("WORKFLOW_STOPPED", "Workflow остановлен пользователем", level="warning") + except Exception as exc: + with self._lock: + self.run.update({"status": "failed", "error": str(exc)}) + self._event("PROVIDER_ERROR", "Ошибка выполнения workflow", level="error", agent_id=current, error=str(exc)) + try: + from antigravity_provider.router.unified_health import EventLogService + + EventLogService.get().log("workflow", "Ошибка выполнения workflow", details=str(exc), level="error") + except Exception: + pass + finally: + with self._lock: + self.run["finished_at"] = _utc_timestamp() + self.run["elapsed_seconds"] = round(time.monotonic() - started, 3) + self.run["current_agent_id"] = current or self.run.get("current_agent_id") + self._save() + + @staticmethod + def _response_text(response: Any) -> str: + if not isinstance(response, dict): + return str(response) + choices = response.get("choices") + if isinstance(choices, list) and choices: + message = choices[0].get("message", {}) + return str(message.get("content") or choices[0].get("text") or "") + return str(response.get("content") or response.get("text") or response.get("output") or "") + + @staticmethod + def _result_status(response: Any, text: str) -> str: + if isinstance(response, dict): + explicit = response.get("status") or response.get("structured_status") + if explicit and str(explicit).upper() in EDGE_CONDITIONS: + return str(explicit).upper() + for status in ("REVIEW_FAILED", "REVIEW_PASSED", "SUCCESS", "ERROR"): + if re.search(rf"\b{status}\b", text.upper()): + return status + return "SUCCESS" + + def _event(self, event_type: str, message: str, **kwargs: Any) -> None: + self.events.append(WorkflowEvent(_utc_timestamp(), event_type, message, **kwargs)) + self.events = self.events[-200:] + + def _require_agent(self, agent_id: str) -> AgentDefinition: + agent = self.agents.get(agent_id) + if not agent: + raise ValueError("Агент не найден") + return agent + + +def execute_workflow_action(action: str, data: dict[str, Any]) -> dict[str, Any]: + """Execute a workflow action through the shared ActionExecutor layer.""" + service = WorkflowService.get() + if action == "create_agent": + result = asdict(service.create_agent(data)) + elif action == "update_agent": + result = asdict(service.update_agent(str(data.get("agent_id") or ""), data)) + elif action == "delete_agent": + result = service.delete_agent(str(data.get("agent_id") or ""), bool(data.get("force"))) + elif action == "read_agent_file": + result = service.read_agent_file(str(data.get("agent_id") or "")) + elif action == "save_agent_file": + result = service.save_agent_file(str(data.get("agent_id") or ""), str(data.get("content") or "")) + elif action == "save_workflow": + result = asdict(service.save_workflow(data)) + elif action == "start_workflow": + result = service.start(str(data.get("task") or "")) + elif action == "stop_workflow": + result = service.stop() + else: + raise ValueError("Неизвестное действие workflow") + if action in {"create_agent", "update_agent", "delete_agent"}: + try: + from antigravity_provider.router.state_store import HubStateStore + + HubStateStore.get().refresh(force_scan=False) + except Exception: + pass + return {"ok": True, "message": "Выполнено", "data": result} diff --git a/tests/test_workflow_service_a30.py b/tests/test_workflow_service_a30.py new file mode 100644 index 0000000..b1400cf --- /dev/null +++ b/tests/test_workflow_service_a30.py @@ -0,0 +1,163 @@ +from __future__ import annotations + +import json + +import pytest + +from antigravity_provider.router.router_config import ( + RolePolicy, + RouterConfig, + RouterProfileConfig, + save_router_config, +) +from antigravity_provider.router.workflow_service import WorkflowService + + +@pytest.fixture +def workflow_service(tmp_path, monkeypatch): + monkeypatch.setenv("HERMES_HOME", str(tmp_path)) + config = RouterConfig( + profiles={ + "account-a": RouterProfileConfig( + profile_id="account-a", + provider="openai-codex", + preferred_models=["model-real-from-config"], + ) + }, + roles={"developer": RolePolicy(role_name="developer", preferred_chain=["account-a"])}, + ) + save_router_config(config) + return WorkflowService(tmp_path / "workflow_state.json") + + +def test_router_roles_migrate_to_agents_and_create_real_files(workflow_service, tmp_path): + snapshot = workflow_service.snapshot() + assert "developer" in [agent["id"] for agent in snapshot["agents"]] + agent = next(item for item in snapshot["agents"] if item["id"] == "developer") + assert agent["agent_file"] == "agents/developer.md" + assert agent["agent_file_exists"] is True + assert (tmp_path / "agents" / "developer.md").is_file() + assert agent["execution_config"]["account"] == "account-a" + assert agent["execution_config"]["model"] == "model-real-from-config" + + +def test_create_update_file_and_restart_persistence(workflow_service, tmp_path): + created = workflow_service.create_agent({ + "name": "Security Reviewer", + "role": "security-reviewer", + "account": "account-a", + "model": "model-real-from-config", + "description": "Проверяет безопасность", + }) + workflow_service.save_agent_file(created.id, "# Security\n\nOnly measured facts.") + workflow_service.update_agent(created.id, {"timeout": 91, "position": {"x": 33, "y": 44}}) + + restarted = WorkflowService(tmp_path / "workflow_state.json") + item = next(agent for agent in restarted.snapshot()["agents"] if agent["id"] == created.id) + assert item["timeout"] == 91 + assert item["position"] == {"x": 33, "y": 44} + assert restarted.read_agent_file(created.id)["content"].endswith("Only measured facts.") + + +def test_delete_requires_explicit_confirmation_when_referenced(workflow_service): + workflow_service.create_agent({"name": "Test Reviewer", "role": "test-reviewer", "account": "account-a"}) + workflow_service.save_workflow({ + "start_agent_id": "developer", + "max_iterations": 3, + "edges": [{"id": "review", "source": "developer", "target": "test-reviewer", "condition": "SUCCESS"}], + }) + warning = workflow_service.delete_agent("test-reviewer") + assert warning["confirmation_required"] is True + assert warning["consequences"]["workflow_edges"] == ["review"] + result = workflow_service.delete_agent("test-reviewer", force=True) + assert result["deleted"] is True + assert workflow_service.workflow.edges == [] + + +def test_cycles_are_valid_and_iteration_limit_is_persisted(workflow_service): + workflow_service.create_agent({"name": "Test Reviewer", "role": "test-reviewer", "account": "account-a"}) + definition = workflow_service.save_workflow({ + "start_agent_id": "developer", + "max_iterations": 2, + "edges": [ + {"source": "developer", "target": "test-reviewer", "condition": "SUCCESS"}, + {"source": "test-reviewer", "target": "developer", "condition": "REVIEW_FAILED"}, + ], + }) + assert definition.max_iterations == 2 + assert definition.edges[1].condition == "REVIEW_FAILED" + payload = json.loads(workflow_service.state_path.read_text(encoding="utf-8")) + assert payload["workflow"]["max_iterations"] == 2 + + +def test_invalid_edge_and_unknown_model_are_rejected(workflow_service): + with pytest.raises(ValueError, match="отсутствующего агента"): + workflow_service.save_workflow({"edges": [{"source": "developer", "target": "missing"}]}) + with pytest.raises(ValueError, match="не доступна"): + workflow_service.update_agent("developer", {"account": "account-a", "model": "invented-model"}) + + +def test_interrupted_run_is_reported_not_silently_completed(workflow_service, tmp_path): + workflow_service.run.update({"id": "run-1", "status": "running", "current_agent_id": "developer"}) + workflow_service._save() + restarted = WorkflowService(tmp_path / "workflow_state.json") + assert restarted.run["status"] == "interrupted" + assert "перезапуском" in restarted.run["error"] + assert restarted.events[-1].type == "WORKFLOW_INTERRUPTED" + + +def test_live_cycle_stops_with_explicit_iteration_limit_event(workflow_service, monkeypatch): + workflow_service.create_agent({"name": "Loop Reviewer", "role": "loop-reviewer", "account": "account-a"}) + workflow_service.save_workflow({ + "start_agent_id": "developer", + "max_iterations": 2, + "edges": [ + {"source": "developer", "target": "loop-reviewer", "condition": "SUCCESS"}, + {"source": "loop-reviewer", "target": "developer", "condition": "REVIEW_FAILED"}, + ], + }) + + class FakeEngine: + def reload_config(self): + return None + + def route_request(self, request, role=None, session_id=None): + status = "REVIEW_FAILED" if role == "loop-reviewer" else "SUCCESS" + return { + "choices": [{"message": {"content": status}}], + "router_metadata": { + "provider": "measured-provider", + "profile_id": "account-a", + "selection_trace": {"selected_model": "model-real-from-config"}, + }, + } + + monkeypatch.setattr("antigravity_provider.router.router_engine.get_router_engine", lambda: FakeEngine()) + workflow_service.start("Проверить реальный цикл") + workflow_service._thread.join(timeout=3) + + assert workflow_service.run["status"] == "failed" + assert workflow_service.run["error"] == "Достигнут предел итераций: 2" + assert any(event.type == "WORKFLOW_MAX_ITERATIONS" for event in workflow_service.events) + + +def test_provider_error_text_reaches_run_and_events(workflow_service, monkeypatch): + provider_text = "Provider Error: authentication token missing for account-a" + + class ErrorEngine: + def reload_config(self): + return None + + def route_request(self, request, role=None, session_id=None): + return {"choices": [{"message": {"content": f"ERROR\n{provider_text}"}}]} + + monkeypatch.setattr("antigravity_provider.router.router_engine.get_router_engine", lambda: ErrorEngine()) + workflow_service.workflow.start_agent_id = "developer" + workflow_service.workflow.edges = [] + workflow_service.start("Проверить ошибку") + workflow_service._thread.join(timeout=3) + + assert workflow_service.run["status"] == "failed" + assert provider_text in workflow_service.run["error"] + assert any(provider_text in (event.error or "") for event in workflow_service.events) + assert workflow_service.snapshot()["agents"][0]["runtime_state"] == "error"