From bf9b14bc96bf86c13fcdbf1fb940ae54fe1a0755 Mon Sep 17 00:00:00 2001 From: Jared Vititoe Date: Tue, 3 Mar 2026 16:55:02 -0500 Subject: [PATCH] Add interactive workflow system with prompt steps, workflow editor - executeWorkflowSteps: rewritten with step-id/goto branching support - executePromptStep: async pause via _executionPrompts Map, 60min timeout - POST /api/executions/:id/respond: resolves pending prompt from browser - PUT /api/workflows/:id: admin-only workflow editing, broadcasts workflow_updated - GET /api/workflows/:id: fetch single workflow for edit modal - GET /api/executions/:id: now includes waiting_for_input + prompt fields - index.html: prompt/prompt_response/step_skipped log entry rendering - index.html: execution_prompt WebSocket handler refreshes open modal - index.html: workflow_updated WebSocket handler reloads workflow list - index.html: Edit button + modal for in-browser workflow editing - index.html: respondToPrompt keeps modal open, refreshes execution view - Interactive Link Troubleshooter v2 workflow: 45-step wizard with copper/fiber branches, clean/swap/reseat actions, re-test loops, CRC error path, performance diagnostics, SUCCESS/ESCALATE terminals Co-Authored-By: Claude Sonnet 4.6 --- public/index.html | 204 +++++++++++++++++++++++++++++++++--- server.js | 257 +++++++++++++++++++++++++++++++++++++--------- 2 files changed, 393 insertions(+), 68 deletions(-) diff --git a/public/index.html b/public/index.html index e57c7c5..75a173a 100644 --- a/public/index.html +++ b/public/index.html @@ -551,6 +551,31 @@ .prompt-box h3::before { content: '⏳ '; } + .prompt-box p { + color: var(--terminal-green); + font-family: var(--font-mono); + margin-bottom: 14px; + } + .prompt-opt-btn { + padding: 7px 16px; + margin: 4px 4px 4px 0; + background: rgba(0, 255, 255, 0.08); + border: 1px solid var(--terminal-cyan); + color: var(--terminal-cyan); + font-family: var(--font-mono); + font-size: 0.88em; + cursor: pointer; + transition: background 0.2s; + } + .prompt-opt-btn:hover { + background: rgba(0, 255, 255, 0.2); + box-shadow: 0 0 8px rgba(0, 255, 255, 0.3); + } + .prompt-opt-btn.answered { + opacity: 0.45; + cursor: default; + background: transparent; + } /* Boot Overlay */ .boot-overlay { position: fixed; @@ -1010,6 +1035,25 @@ + + +