@essentialai/cogent-bridge
Version:
Cogent Bridge — cross-agent comms for Claude Code, OpenAI Codex and Slack. Codex users: install with `curl -fsSL https://cogent.tools/install.sh | sh`, then start with `cogent-codex` for real-time peer wake.
26 lines • 1.62 kB
TypeScript
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { BridgeError } from "../errors.js";
/**
* Why this resolution cannot produce a wakeable session id, or null when it can.
*
* 🔴 ASK THE CONDITION, NOT A PROXY. The old guard tested `candidateCount === 0`. An AMBIGUOUS
* resolution has candidates but no chosen id (`decideResolution` returns `sessionId: null` when
* two transcripts are within the margin), so it slipped straight through the zero-check and the
* caller's value was pinned unchecked — during the 2026-09-02 ring exercise that value was a
* CHANNEL UUID, which `--resume` can never open, and every subsequent wake failed in ~2s with no
* warning ever emitted. The question that decides correctness is "did we end up with an id
* `--resume` can open?", not "were there zero candidates?".
*/
export declare function unresolvedSessionReason(r: {
sessionId: string | null;
candidateCount: number;
}): "no-candidates" | "ambiguous" | null;
/**
* Retry a PEER_NOT_YOURS registration with the SAME peerId, waiting for the relay's
* `retryAfterMs` with capped backoff, bounded by {@link peerReclaimWaitMs}. A hold that outlasts
* the budget (or an old relay that sends no hint) surfaces the original refusal immediately.
* Any other error ends the wait and is thrown as-is.
*/
export declare function retrySamePeerId<T>(first: BridgeError, attempt: () => Promise<T>, budgetMs?: number, sleep?: (ms: number) => Promise<void>): Promise<T>;
export declare function registerRegisterPeerTool(server: McpServer): void;
//# sourceMappingURL=register-peer.d.ts.map