Class BowireRecordingSessionEndpoints

Namespace
Kuestenlogik.Bowire.Recordings
Assembly
Kuestenlogik.Bowire.Recordings.dll

REST + SSE surface for the server-side BowireRecordingSession (#285). The workbench's recorder UI observes session-state transitions via the SSE channel and drives lifecycle changes through the REST endpoints; the MCP bowire.record.start / stop / replay tools drive the same session directly (no HTTP hop — they take a DI dependency on the singleton).

Routes:

  • POST {basePath}/api/recording/session/start — body: { workspaceId, mode, name?, recordingId? }
  • POST {basePath}/api/recording/session/stop — flushes the buffer into the recording store, returns the persisted recordingId + step count.
  • POST {basePath}/api/recording/session/replay — switches the active session into replay mode.
  • GET {basePath}/api/recording/session/status — returns the current session snapshot (or null).
  • GET {basePath}/api/recording/session/events — SSE stream of BowireRecordingSessionEvent transitions for the workbench's badge updates.
public sealed class BowireRecordingSessionEndpoints : IBowireEndpointContribution
Inheritance
BowireRecordingSessionEndpoints
Implements
Inherited Members

Remarks

#311 - moved out of core beside the rail's JS. The session object and RecordingStore stay in core: the CLI and the replay pipeline reach them directly and must keep working without this package. What moves is the HTTP surface, which only recording.js calls.

Constructors

BowireRecordingSessionEndpoints()

public BowireRecordingSessionEndpoints()

Methods

MapEndpoints(IEndpointRouteBuilder, string)

Map this contribution's endpoints. Called once per host startup from BowireApiEndpoints.MapBowire.

public void MapEndpoints(IEndpointRouteBuilder endpoints, string basePath)

Parameters

endpoints IEndpointRouteBuilder

The auth-gated IEndpointRouteBuilder group every workbench feature endpoint lives under.

basePath string

The URL fragment every route is anchored under (e.g. /bowire for embedded hosts, empty for the standalone CLI).