streamChatGptCodex function

AssistantMessageEventStream streamChatGptCodex(
  1. Model model,
  2. Context context, {
  3. required String credentials,
  4. ChatGptCredentialsPersist? onCredentialsRefreshed,
  5. CancelToken? cancelToken,
  6. Client? client,
})

Implementation

AssistantMessageEventStream streamChatGptCodex(
  Model model,
  Context context, {
  required String credentials,
  ChatGptCredentialsPersist? onCredentialsRefreshed,
  CancelToken? cancelToken,
  http.Client? client,
}) {
  final events = AssistantMessageEventStream();
  // No injected client: the shared keep-alive client (never closed per call).
  final httpClient = client ?? sharedProviderHttpClient();
  final state = ProviderStreamState(model);
  final session = _ChatGptCodexSession(
    model,
    context,
    credentials,
    onCredentialsRefreshed,
    events,
    state,
    cancelToken,
    httpClient,
  );
  unawaited(
    runProviderStream(
      events,
      state,
      cancelToken,
      httpClient,
      ownsClient: false, // shared or injected — never closed per call
      body: session.run,
    ),
  );
  return events;
}