listSessions method

  1. @override
Future<AgentSessionPage> listSessions([
  1. AgentSessionListOptions options = const semantic.AgentSessionListOptions()
])
override

Implementation

@override
Future<semantic.AgentSessionPage> listSessions([
  semantic.AgentSessionListOptions options =
      const semantic.AgentSessionListOptions(),
]) async {
  _requireOpen();
  if (!capabilities.listSessions) {
    throw const AgentCapabilityException(
      'The Agent did not advertise session listing.',
    );
  }
  final wire.ListSessionsResponse response;
  try {
    response = await _connection.listSessions(
      wire.ListSessionsRequest(cwd: options.cwd, cursor: options.cursor),
    );
  } catch (error, stackTrace) {
    throwWrappedAcpConnection(error, stackTrace);
  }
  return semantic.AgentSessionPage(
    sessions: [
      for (final session in response.sessions)
        semantic.AgentSessionInfo(
          id: semantic.AgentSessionId(session.sessionId.value),
          cwd: session.cwd,
          additionalDirectories:
              session.additionalDirectories ?? const <String>[],
          title: session.title,
          updatedAt: session.updatedAt,
        ),
    ],
    nextCursor: response.nextCursor,
  );
}