43 lines · 1.7 KB · TypeScript
RawDownload
// ---------------------------------------------------------------------------// When the Codex plugin card may hand over its Add button.//// The probe behind this is the only way to know whether macOS will let the// plugin run: privacy decisions are not readable, so the card tries the real// path and reads the answer. Adding before that answer arrives produces an// integration that looks connected and fails on its first call, at a point// where the explanation — and the switch that fixes it — are no longer on// screen.// --------------------------------------------------------------------------- /** The `checkCodexPluginAccess` result, as the card holds it. */export interface CodexAccessState {  readonly status: string;  readonly message?: string;} /** * The plugin was reached and refused. * * Only `blocked` counts. `unsupported` (a host that cannot spawn stdio at all) * and `nothing-to-check` (a plugin with no probe) are answers, not blocks, and * holding the button on either would strand plugins that need no permission. */export const accessBlocked = (access: CodexAccessState | null): boolean =>  access !== null && access.status === "blocked"; /** * The answer is still coming. * * A card that declares permissions runs the probe on open, so `null` there * means the check has not reported yet rather than that nothing will check. * Without permissions there is nothing to wait for, and the button stays live. */export const accessPending = ({  checking,  declaresPermissions,  access,}: {  readonly checking: boolean;  readonly declaresPermissions: boolean;  readonly access: CodexAccessState | null;}): boolean => checking || (declaresPermissions && access === null);

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t