/** * Stable session identity for concurrency detection (design F2). * * `resolveSession` in commands/claim.ts used to mint a fresh agent UUID * per invocation, so a solo agent session could never recognize its own * claim and would block itself. Resolution order here: * * 1. AIDLC_SESSION_ID env var — set once by the agent/skill at session * start, reused by every CLI invocation in that session. * 2. Platform session from the active-session stash (strict * single-candidate rule, unchanged). * 3. Process-lifetime cached agent UUID — stable within one process, * still fresh across processes (documented limitation for agents that * neither stash nor set the env var). */ import { type AgentMissReason } from '../cost/agent.js'; export interface SessionIdentity { id: string; source: 'platform' | 'agent'; agent: string; /** Set when `agent` could not be determined — the caller warns (AC-5). */ agentMiss: AgentMissReason | null; } /** * Session identity and platform are resolved independently. * * The id falls back to a synthetic `agent-` whenever the stash cannot * name a single session, but the *platform* is often still determinable — from * stash agreement or provider detection. Deriving both from the same * single-candidate rule is what made every claim record `agent: "unknown"` * (cost-claim-attribution/AC-1, AC-4). */ export declare function resolveSessionIdentity(projectRoot: string): SessionIdentity; //# sourceMappingURL=session-id.d.ts.map