/** * Non-coordination side effects fired from the normalized `agent-hook` handlers. * * These are DELIBERATELY outside the agent-coord path: sounds, journal * lifecycle, session telemetry, presence detection. They used to live in * per-adapter bash adapters. Per the directive ("use the normalized hooks; if * they aren't coordination, implement them outside of coordination") they move * here so the adapter configs reference only `agent-hook`, while staying a * distinct concern from the coordination logic in cli.ts / agent-coord. * * Everything here is best-effort: it never throws and never blocks the hook on a * slow dependency (telemetry runs detached). */ export { captureImages, imageJanitor, recordImageArtifactsV3 } from "./image-capture.js"; /** * Play a notification sound via the cross-platform utility * (afplay on macOS, powershell.exe on WSL). The * utility backgrounds the actual player, so this returns fast. Rate-limiting * lives in the utility, keyed on CLAUDE_SOUND_SESSION_ID + the per-event count. * Claude-Code-only today (Cursor has no sounds; Codex's never worked). */ export declare function playSound(repoRoot: string, soundEvent: string, sessionId: string, maxPlays?: number): void; /** Map an agent-hook CLI event name → sound, or null if the event has no sound. */ export declare function soundForEvent(eventName: string): { sound: string; maxPlays: number; } | null; /** Prune stale journal archives + sweep orphans (global, fast). Fire-and-forget. */ export declare function journalJanitor(repoRoot: string): void; /** * Return the one-line journal recovery cue for SessionStart, or "" if none. * The caller merges it into the session-start additionalContext (it used to be * a standalone additionalContext emission from the previous journal-on-start adapter). */ export declare function journalRecoveryCue(repoRoot: string): string; /** Archive the ending agent's journal. Fire-and-forget. */ export declare function journalArchive(repoRoot: string, owner: string): void; /** * Fire the optional host session-sync extension on turn stop / session end. * harnery core has no session-telemetry sink of its own; a host that wants one * drops an executable at * `scripts/hooks/harness/claude-code/extensions/session-sync.sh` under the coord * root, and core runs it detached + unref'd so a slow sink never blocks the * hook. `force` arrives as argv $1 ("1" on session end, "0" on turn stop) so the * host can rate-limit the stop path and force-flush on end. No-op when the * script is absent, so a plain public install spawns nothing. Mirrors * `runTurnSummary`'s extension-script pattern. Caller gates to the claude-code * adapter. */ export declare function runSessionSyncExtension(repoRoot: string, force: boolean): void; /** Reset per-turn sound rate-limit counters at the start of a new turn. */ export declare function resetSoundCounters(sessionId: string): void; /** * Update the mobile-vs-office presence file from the user's prompt shape, using * harnery's own presence library in-process: no external script, no host-path * dependency. Claude-Code-only (the heuristic is tuned to CC's user-prompt * payload; Cursor/Codex don't surface comparable prompt text). Fire-and-forget. */ export declare function detectPresence(prompt: string): void; //# sourceMappingURL=index.d.ts.map