createSession method

  1. @override
Future<AgentSession> createSession(
  1. AgentSessionOptions options
)
override

Implementation

@override
Future<AgentSession> createSession(
  semantic.AgentSessionOptions options,
) async {
  _requireOpen();
  _adapter.validateSessionOptions(options, capabilities);
  try {
    final response = await _connection.newSession(
      wire.NewSessionRequest(
        cwd: options.cwd,
        additionalDirectories: options.additionalDirectories.isEmpty
            ? null
            : options.additionalDirectories,
        mcpServers: _adapter.mcpServers(options.mcpServers),
        meta: options.metadata.isEmpty ? null : options.metadata,
      ),
    );
    return _registerSession(
      id: response.sessionId.value,
      configOptions: response.configOptions,
    );
  } catch (error, stackTrace) {
    throwWrappedAcpConnection(error, stackTrace);
  }
}