import Emittery from 'emittery';

type MessageItem = {
  role: 'system' | 'user' | 'assistant';
  content: string;
};

export class Session {
  private _messageHistroyItems: MessageItem[] = [];
  private emittery = new Emittery();
  public emit: Emittery['emit'];
  public on: Emittery['on'];
  public off: Emittery['off'];
  constructor() {
    this.emit = this.emittery.emit.bind(this.emittery);
    this.on = this.emittery.on.bind(this.emittery);
    this.off = this.emittery.off.bind(this.emittery);
  }

  add(messages: MessageItem[] | MessageItem) {
    Array.isArray(messages) || (messages = [messages]); // 确保是数组
    this._messageHistroyItems.push(...messages);
  }
  reset() {
    this._messageHistroyItems = [];
  }

  list() {
    return this._messageHistroyItems;
  }
}
