protected override _emitFinal()

in lib/AbstractChatCompletionRunner.ts [233:257]


  protected override _emitFinal(
    this: AbstractChatCompletionRunner<
      AbstractChatCompletionRunnerEvents,
      ParsedT
    >,
  ) {
    const completion = this._chatCompletions[this._chatCompletions.length - 1];
    if (completion) this._emit("finalChatCompletion", completion);
    const finalMessage = this.#getFinalMessage();
    if (finalMessage) this._emit("finalMessage", finalMessage);
    const finalContent = this.#getFinalContent();
    if (finalContent) this._emit("finalContent", finalContent);

    const finalFunctionCall = this.#getFinalFunctionCall();
    if (finalFunctionCall) this._emit("finalFunctionCall", finalFunctionCall);

    const finalFunctionCallResult = this.#getFinalFunctionCallResult();
    if (finalFunctionCallResult != null) {
      this._emit("finalFunctionCallResult", finalFunctionCallResult);
    }

    if (this._chatCompletions.some((c) => c.usage)) {
      this._emit("totalUsage", this.#calculateTotalUsage());
    }
  }