Table of Contents

Namespace Cress.Studio.Services

Classes

EditableExecutable
EditableFixture
FlowDocumentService
FlowEditorAnalysis
FlowEditorDiagnostic
FlowEditorDocument
FlowGherkinPreviewBuilder
FlowGraphBuilder
FlowGraphEdge
FlowGraphModel
FlowGraphNode
FlowMetrics
FlowQuickAction
MetricsOptions
RecordingReplayResult

The outcome of replaying a previously recorded flow file in-process.

RecordingResult

The output of a completed recording session.

RecordingTargetInfo

Information about a process that can be recorded.

RunMetrics
RunMetricsService

Aggregates run history into structured metrics: suite pass rates, per-flow percentiles, per-step timing, MTTR, and time-bucketed trend points.

StepInstability
StepMetrics
StudioAuthoringService
StudioCapabilityCoverage
StudioCompanionClient
StudioEmbeddedRunnerNode
StudioFlowHealthItem
StudioProjectService
StudioProjectSnapshot
StudioRecentActivityItem
StudioRecorderService

Wraps RecordingSession (desktop) and WebRecorderClient (web) and exposes recording state for the Blazor Studio. Registered as Scoped — one instance per Blazor circuit (one per browser tab). Thread-safe: UIA events fire on COM background threads; all state writes are guarded by Interlocked / volatile / Lock.

StudioRunComparison
StudioRunComparisonItem
StudioRunInsights
StudioRunInsightsService
StudioRunnerDispatchRequest
StudioRunnerDispatchResult
StudioRunnerNodeSnapshot
StudioRunnerService
StudioRuntimeRunnerExecutor
StudioSuiteDocument
StudioSuiteService
SuiteMetrics
TrendPoint
WebRecorderClient

Spawns the Node.js web recorder (node bin/record.mjs --stream) as a child process and translates its JSON stdout stream into RecordedEvent objects.

Approach: direct child process (option a) — Studio spawns Node and reads JSONL from stdout. One JSON line is emitted per event. The C# side parses each line and raises EventCaptured. StopAsync() sends SIGINT (Process.Kill on Windows) and waits for the process to exit.

Interfaces

IStudioCompanionClient
IStudioRecorderService

Testability seam for the studio-side recording service. The real implementation wraps RecordingSession; tests substitute a mock.

IStudioRunnerExecutor
IStudioRunnerNode
IStudioRunnerService

Enums

FlowGraphNodeKind
StudioRunnerNodeStatus
StudioRunnerTransportKind