package sessionbroker import ( "context" workercontracts "github.com/example/remote-access-platform/backend/pkg/contracts/worker" ) type WorkerOrchestrator interface { Reserve(ctx context.Context, request workercontracts.AttachRequest) (*workercontracts.WorkerLease, error) GetSessionLease(ctx context.Context, sessionID string) (*workercontracts.WorkerLease, error) ReleaseSessionLease(ctx context.Context, sessionID string) error PrepareAttachment(ctx context.Context, session RemoteSession, attachment SessionAttachment, runtimeMetadata map[string]any) error NotifyDetachment(ctx context.Context, session RemoteSession, attachment SessionAttachment) error TerminateRemoteSession(ctx context.Context, sessionID, attachmentID string) error ValidateSessionRuntime(ctx context.Context, sessionID, workerID string) (bool, string, error) }