/** * SessionStart UX renderer: combines the peer table, the wiring check, and * the pending-council formatter so agent-hook session.started can emit the * combined `systemMessage` JSON directly. * * Outputs a Claude Code SessionStart hookSpecificOutput.additionalContext * string. */ import { statSync } from "node:fs"; import { type MailboxMessageV1 } from "../mailbox.js"; export interface RenderOpts { coordRoot: string; instanceId: string; sessionId: string; agentName?: string; /** Adapter label rendered in parens after the self-name (e.g. "Cursor", "Codex"). * Claude Code omits it. */ platformLabel?: string; } /** * Build the combined SessionStart systemMessage. Returns the additionalContext * string (or "" if there's nothing to say). */ export declare function renderSessionContext(opts: RenderOpts): string; /** * Write delivered peer messages into the recipient's own journal, so they * survive context compaction the way any other coordination breadcrumb does. * A message the sender already journaled (the recipient was live when it was * sent) is skipped to avoid a duplicate entry. */ export declare function recordDeliveredMessages(instanceId: string, messages: readonly MailboxMessageV1[]): void; /** * Returns a list of commit-guard wiring issues (empty when wired). Portable * across host projects: it asserts the FUNCTIONAL property ("does this repo's * pre-commit invoke harnery's guard?") rather than any path convention. For * each repo it resolves the EFFECTIVE git-hooks dir via * `git rev-parse --git-path hooks` (which already honors `core.hooksPath`, * linked worktrees, and submodule gitdirs) and checks whether the `pre-commit` * there calls `agent-coord` / `agent-hook`. Checks the parent repo + one * representative submodule (others almost always share the same setup). * * harnery does not install git hooks itself — each host wires its own * pre-commit to invoke the guard — so the remediation command is host-specific * and supplied via `hooksSetupHint` in `.harnery/config.jsonc` (see the caller). */ export declare function checkWiring(coordRoot: string): string[]; /** * Returns the formatted council invite reminder * (or "" when no councils await input). */ export declare function formatPendingCouncils(coordRoot: string, agentName: string): string; /** * Suppress unused import warning when statSync isn't used in this file * (kept exported for future renderers, e.g. heartbeat-freshness coloring). */ export declare const _ensureStatSyncImported: typeof statSync; //# sourceMappingURL=session-context.d.ts.map