Namespace Kuestenlogik.Bowire.Recordings

Classes

BowireRecordingEndpoints

Maps the disk-backed recording endpoints. Recordings live at ~/.bowire/recordings.json via Kuestenlogik.Bowire.RecordingStore so a captured "scenario" survives browser changes and CLI usage and can be checked into a repo for sharing. The browser still keeps a localStorage cache for instant updates without server round-trips — these endpoints are the source of truth.

BowireRecordingSessionEndpoints

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.
BowireRecordingsEndpointContribution

Discoverable endpoint-mount entry point for the Recordings rail (#539). Picked up by Core's BowireApiEndpoints scan via the IBowireEndpointContribution seam, so the correlation endpoint inherits the auth-gated route group and the host's base path without core knowing this package exists.

BowireRecordingsRailContribution

Recordings rail contribution (#306 Phase G).