/** * WHY an install has produced no session — the closed vocabulary, on its own. * * `telemetry.ts` is the wire contract; this is the taxonomy the no-session DIAGNOSIS owns, read by * `explainNoSession`, the session manager and the refusal reporter alike. * * `no_session` is the largest refusal cohort, and on its own it is a set difference: the daemon * started, no app connected, and nothing says which of several opposite situations that was. * "Restarted the dev server and it still did not connect" and "never started the app" need * opposite fixes and arrived as the same silence (#615). * * Derived from `explainNoSession`'s branches rather than classified beside them, so the code and * the sentence the user is shown cannot drift apart. A reason describing a diagnosis nobody * received would be worse than none. */ export declare const NoSessionReason: { /** * A page dialled and was REFUSED on its pairing token. The only positive evidence in the set: * only an SDK dials the bridge, so the app is running and instrumented and this daemon said no. */ readonly AUTH_REFUSED: "auth_refused"; /** Connected before; the session that went was a pooled lease that aged out. */ readonly LEASE_EXPIRED: "lease_expired"; /** Connected before; the tab was closed, navigated away, or hard-reloaded. */ readonly TAB_GONE: "tab_gone"; /** * Connected before, and the SDK reported the page navigating away just before the socket * closed (#1256). A load-time `location.assign` to an uninstrumented page used to read as * TAB_GONE — the daemon only saw the socket close. This is the departure note outranking the * hedge: the tab was not closed, it left for somewhere named. */ readonly NAVIGATED_AWAY: "navigated_away"; /** * Connected before, and the route the tab was on answers 5xx right now. A server error tears the * page down and the SDK never reconnects, so it used to read as TAB_GONE — the URL was known, and * nothing asked it what it answers. This is the answer, and it outranks TAB_GONE because it is not * an absence. Present tense only: a 5xx now is what was observed, not a claim about then. */ readonly ROUTE_SERVER_ERROR: "route_server_error"; /** This project has connected before, but not to this daemon run. Usually a restart with no reopen. */ readonly APP_NOT_REOPENED: "app_not_reopened"; /** A `.reticle.json` exists OUTSIDE this daemon's directory: a scope problem, not an install one. */ readonly CONFIG_ELSEWHERE: "config_elsewhere"; /** Nothing listening on the scanned ports AND no config here. The weakest position, and common. */ readonly NO_LISTENER_NO_CONFIG: "no_listener_no_config"; /** Nothing listening, but the project is wired. The dev server is the missing half. */ readonly NO_LISTENER: "no_listener"; /** Something is listening, but there is no config in this directory. */ readonly NO_CONFIG: "no_config"; /** Wired, listening, and still nothing arrived: the SDK is not reaching this daemon. */ readonly SDK_NOT_REACHING_DAEMON: "sdk_not_reaching_daemon"; }; export type NoSessionReason = (typeof NoSessionReason)[keyof typeof NoSessionReason];