@phren/cli
Version:
Knowledge layer for AI agents - CLI, MCP server, and data layer
35 lines (34 loc) • 2.05 kB
TypeScript
import { type Json } from "./protocol.js";
import type { PendingServerRequest } from "./codex-app-server.js";
/** Pure translations between the harnesses' permission asks and the Hook's
* approval cards (agent-hooks.ts holds and answers them). */
/** A conductor `dispatch` or `hand_off` ask, with the fields a standing grant matches on. */
export type ConductorCall = {
action: "dispatch" | "hand_off";
project?: string;
computer?: string;
};
/** The approval card's tool and input for an app-server request, in the
* shapes `approvalSummary` and the phone already read for Codex's hook.
* Undefined for questions (`item/tool/requestUserInput`) and MCP
* elicitations, which stay in the pane. */
export declare function appServerApproval(request: PendingServerRequest): {
tool: string;
input: Json;
} | undefined;
/** The app-server's answer for the phone's allow or deny (T3's
* CodexSessionRuntime shapes: accept / decline, a permission grant or none). */
export declare function appServerDecision(request: PendingServerRequest, allow: boolean): Json;
/** A conductor `dispatch` or `hand_off` permission ask the Hook can answer
* itself under a standing grant, or offer the phone two grant-writing answers. */
export declare function conductorCall(tool: string, input: unknown): ConductorCall | undefined;
/** The decisions an OpenCode permission ask offers the phone. OpenCode's
* `always` covers the current session, so both grant answers reply `always`;
* `allow-everywhere` additionally writes an allow rule into the user's
* OpenCode config. Advertised as the approval card's `options`, the same
* shape the phone already renders for a provider-supplied option list. */
export declare const OPENCODE_APPROVAL_OPTIONS: Json[];
/** The OpenCode permission reply a card decision maps to: both grant scopes
* are `always`, a plain approve is `once`, a deny is `reject`. Undefined for
* anything else. */
export declare function opencodePermissionReply(decision: unknown): "once" | "always" | "reject" | undefined;