@openai/agents-core
Version:
The OpenAI Agents SDK is a lightweight yet powerful framework for building multi-agent workflows.
84 lines • 2.48 kB
JavaScript
export { isBrowserEnvironment, loadEnv } from "./config-browser.mjs";
export { AsyncLocalStorage, MCPServerSSE, MCPServerStdio, MCPServerStreamableHttp, Readable, ReadableStream, ReadableStreamController, TransformStream, isTracingLoopRunningByDefault, randomUUID, supportsProcessLifecycleEvents, } from "./shims-browser.mjs";
/**
* An event emitter that does not depend on DOM EventTarget or CustomEvent globals.
*/
export class ReactNativeEventEmitter {
#listeners = new Map();
on(type, listener) {
const listeners = this.#listeners.get(type) ?? [];
listeners.push(listener);
this.#listeners.set(type, listeners);
return this;
}
off(type, listener) {
const listeners = this.#listeners.get(type);
if (!listeners) {
return this;
}
const remaining = listeners.filter((candidate) => candidate !== listener);
if (remaining.length > 0) {
this.#listeners.set(type, remaining);
}
else {
this.#listeners.delete(type);
}
return this;
}
emit(type, ...args) {
const listeners = [...(this.#listeners.get(type) ?? [])];
for (const listener of listeners) {
listener(...args);
}
return true;
}
once(type, listener) {
const handler = (...args) => {
this.off(type, handler);
listener(...args);
};
return this.on(type, handler);
}
}
export { ReactNativeEventEmitter as RuntimeEventEmitter };
class ReactNativeTimer {
setTimeout(callback, ms) {
return new ReactNativeTimeout(callback, ms);
}
clearTimeout(timeoutId) {
if (timeoutId instanceof ReactNativeTimeout) {
timeoutId.clear();
return;
}
globalThis.clearTimeout(timeoutId);
}
}
class ReactNativeTimeout {
callback;
ms;
#id;
constructor(callback, ms) {
this.callback = callback;
this.ms = ms;
this.#id = setTimeout(callback, ms);
}
ref() {
return this;
}
unref() {
return this;
}
hasRef() {
return true;
}
refresh() {
globalThis.clearTimeout(this.#id);
this.#id = setTimeout(this.callback, this.ms);
return this;
}
clear() {
globalThis.clearTimeout(this.#id);
}
}
export const timer = new ReactNativeTimer();
//# sourceMappingURL=shims-react-native.mjs.map