UNPKG

@phren/cli

Version:

Knowledge layer for AI agents - CLI, MCP server, and data layer

40 lines (39 loc) • 1.64 kB
import { type AccountRef, type AuthRunner } from "./claude-accounts.js"; import { type ToolVersion } from "./health.js"; export type HarnessSource = "claude" | "codex" | "opencode" | "copilot" | "phren"; export interface HarnessAccount extends AccountRef { signedIn: boolean; usable: boolean; plan?: string; reason?: string; } export interface HarnessEntry { source: HarnessSource; installed: boolean; version?: string; usable: boolean; reason?: string; accounts?: HarnessAccount[]; } export interface HarnessInventory { harnesses: HarnessEntry[]; } export interface HarnessDeps { toolVersion?: (tool: string) => Promise<ToolVersion>; authRunner?: AuthRunner; env?: NodeJS.ProcessEnv; } export declare function harnessInventory(deps?: HarnessDeps): Promise<HarnessInventory>; /** The inventory, or undefined when it is not ready within `ms` (a cold `claude auth status` can take seconds). */ export declare function harnessInventoryWithin(ms: number, deps?: HarnessDeps): Promise<HarnessInventory | undefined>; /** `PHREN_LAUNCH_CHECK=off`: no early launch refusal and no `harnesses` advertised to dispatch (tests, or a misreporting computer). */ export declare function launchCheckOff(env?: NodeJS.ProcessEnv): boolean; export type Availability = { ok: true; } | { ok: false; code: "harness_unavailable" | "account_unavailable"; reason: string; }; /** Whether a launch of `source` (and `accountId`) should work on a computer with this inventory. */ export declare function hasUsable(inventory: HarnessInventory, source: string, accountId?: string): Availability;