eve
Version:
Filesystem-first framework for durable backend AI agents that run anywhere.
35 lines (34 loc) • 1.28 kB
TypeScript
import { type ChatGptCredentialStore } from "./credential-store.js";
import { type CodexAppServer, type CodexAppServerOptions } from "./codex-app-server.js";
import { type ChatGptToken } from "./token.js";
export type ChatGptAuthState = {
readonly kind: "checking";
} | {
readonly accountLabel?: string;
readonly kind: "ready";
} | {
readonly kind: "signed-out";
} | {
readonly kind: "reauth-required";
} | {
readonly kind: "unavailable";
readonly reason: string;
};
export type { ChatGptToken } from "./token.js";
export interface CodexTokenBroker {
credentialOwner(): ChatGptCredentialOwner | undefined;
getToken(input: {
readonly reason: "rejected" | "request";
}): Promise<ChatGptToken>;
refreshState(): Promise<ChatGptAuthState>;
state(): ChatGptAuthState;
}
export type ChatGptCredentialOwner = "codex" | "eve";
export interface CodexTokenBrokerOptions extends CodexAppServerOptions {
readonly appServer?: CodexAppServer;
readonly store?: ChatGptCredentialStore;
readonly fetch?: typeof fetch;
readonly now?: () => number;
}
export declare function createCodexTokenBroker(options?: CodexTokenBrokerOptions): CodexTokenBroker;
export declare function getDefaultCodexTokenBroker(): CodexTokenBroker;