/** * The ask path's Watchtower rows (DES-ASK-TEAM-CHAT-001 §4.1, §4.5, §4.6; slice ASK-C3): three * deterministic checks, each a projection of ONE `wicked.team.*` fact the engine already owns — the * registry PULLS the rows off the bus (the `teamEvent` relay's rows; `scope-drift` was the first * bus entry). Advisory by construction (TR §4.5): a row is a flag on the feed, never a gate input. * * - `deterministic:path_repicked` (entry `path-repicked`, `problem`): a PA step's attempt ended * for a seat cause and the engine re-pinned the PA — `path.repicked{from, to, reason, pick_seq}`. * One row per `pick_seq` (the engine's per-run re-pick counter). * - `deterministic:reviewer_absent` (entry `reviewer-absent`, `quiet`): the supervisor could not * seat a member — `member.joined{status:"failed"}`, `seat:null` when no distinct signed-in seat * exists (§4.6 "absent, and said so"). The engine publishes that row once per attempt; the * Watchtower keeps ONE open row per member slot (`member_id`), keyed by the first failure's * producer identity (`ord:attempt:member_id:open_seq`), so a one-seat machine does not grow a * row per answer step. It clears when that slot attaches (`member.joined{status:"attached"}`). * - `deterministic:help_unanswered` (entry `help-unanswered`, `quiet`): a help request's terminal * outcome was not `answered` — `help.answered{outcome: timed_out | failed | no_member}` (§4.5: * the outcome is a fact on S's row, never inferred from a missing one). One row per * `help_id:answer_id`; the question comes from the joined `help.requested`. It clears when a * later help on the run is `answered` (the helpers are answering again). * * Every row of the three clears when the path ends (`path.ended`). Nothing here tests for "is this * an ask": any team path that re-picks, cannot seat its reviewer, or loses a help turn is shown the * same way. A path that ended while the daemon was down is not a live run at boot, so its replay * does not run and its open rows clear only by dismissal (the same rule as `scope-drift`). */ import type { WatchCheck } from '../types.js'; export declare const PATH_REPICKED_TYPE = "wicked.team.path.repicked"; export declare const PATH_ENDED_TYPE = "wicked.team.path.ended"; export declare const MEMBER_JOINED_TYPE = "wicked.team.member.joined"; export declare const HELP_REQUESTED_TYPE = "wicked.team.help.requested"; export declare const HELP_ANSWERED_TYPE = "wicked.team.help.answered"; type Empty = Record; export declare const pathRepickedCheck: WatchCheck; export declare const reviewerAbsentCheck: WatchCheck; export declare const helpUnansweredCheck: WatchCheck; export {}; //# sourceMappingURL=team-path.d.ts.map