connect static method

Future<AcpAgent> connect(
  1. AcpTransport transport, {
  2. AgentClientServices client = const AgentClientServices(),
  3. AgentInfo clientInfo = const semantic.AgentInfo(name: 'agent_harness', version: agentHarnessVersion),
})

Initializes an already-created transport, primarily for custom transports and deterministic integration tests.

Implementation

static Future<AcpAgent> connect(
  AcpTransport transport, {
  AgentClientServices client = const AgentClientServices(),
  semantic.AgentInfo clientInfo = const semantic.AgentInfo(
    name: 'agent_harness',
    version: agentHarnessVersion,
  ),
}) async {
  final connection = AcpV1Connection(transport, services: client);
  try {
    final initialized = await connection.initialize(
      wire.InitializeRequest(
        protocolVersion: const wire.ProtocolVersion(1),
        clientCapabilities: client.v1Capabilities,
        clientInfo: wire.Implementation(
          name: clientInfo.name,
          title: clientInfo.title,
          version: clientInfo.version,
        ),
      ),
    );
    return AcpAgent._(
      transport: transport,
      connection: connection,
      initialized: initialized,
      adapter: AcpV1SemanticAdapter(),
    );
  } catch (error, stackTrace) {
    await connection.close();
    throwWrappedAcpConnection(error, stackTrace);
  }
}