UNPKG

@deep-assistant/agent

Version:

A minimal, public domain AI CLI agent compatible with OpenCode's JSON interface. Bun-only runtime.

20 lines (16 loc) 502 B
export class AsyncQueue<T> implements AsyncIterable<T> { private queue: T[] = [] private resolvers: ((value: T) => void)[] = [] push(item: T) { const resolve = this.resolvers.shift() if (resolve) resolve(item) else this.queue.push(item) } async next(): Promise<T> { if (this.queue.length > 0) return this.queue.shift()! return new Promise((resolve) => this.resolvers.push(resolve)) } async *[Symbol.asyncIterator]() { while (true) yield await this.next() } }