import type { ServiceConfig } from "../config.js"; import type { Logger } from "../observability/logger.js"; import type { Metrics } from "../observability/metrics.js"; import type { WorkflowCompletionInbox } from "../orchestration/workflow-completion-inbox.js"; import { PlanCacheProbe } from "../plan-cache-probe.js"; import type { CheckpointStoreFull, StoreBackend, ToolResultStoreFull } from "../plugins/store-backend.js"; import type { TaskAttachmentStore } from "../plugins/task-attachment-store.js"; import type { OwnerAwareSessionStore } from "../security.js"; import type { DeviceStore } from "../device-store.js"; import { SessionWatchRegistry } from "../session-watch.js"; import type { TaskListLane } from "./task-list-lane.js"; import { type RunnerDeps } from "@sema-agent/core"; import type { MailboxRecipientLifecycle } from "../plugins/mailbox-recipient-lifecycle.js"; export interface SessionFacesCtx { config: ServiceConfig; logger: Logger; metrics: Metrics; localRoot: string; backend: StoreBackend | undefined; sessionStore: ReturnType; runStore: ReturnType | undefined; checkpointStore: CheckpointStoreFull | undefined; toolResultStore: ToolResultStoreFull | undefined; resumeAnchorStore: ReturnType | undefined; approvalExemptionStore: ReturnType | undefined; sessionPolicyStore: ReturnType | undefined; taskAttachmentStore: TaskAttachmentStore | undefined; fileHistoryStore: ReturnType | undefined; workflowCompletionInbox: WorkflowCompletionInbox | undefined; /** [ref]:会话级任务清单车道(E21 级联的一条腿)。缺席 = 装配未接本车道 ⇒ 无清单可删。 */ taskListLane: TaskListLane | undefined; /** device lane 的四表店(E21 级联的一条腿:`device_session` 绑定行随会话删)。缺席 = 非 SQL 后端。 */ deviceStore: DeviceStore | undefined; /** per-session cwd/shellEnv 登记簿的清除口(E21 级联的一条腿,codex R1-F1)。缺席 = 装配未接。 */ dropSessionScoped: ((sid: string) => void) | undefined; /** [ref]:会话盒(`session.`)的信箱 + 它的收件人生命周期面(E21 级联的一条腿)。**成对**在场 * (`boot/stores.ts` 同段铸);缺席 = 本部署无耐久 mailbox ⇒ 无箱可退役。 */ mailboxStore: RunnerDeps["mailboxStore"]; mailboxRecipientLifecycle: MailboxRecipientLifecycle | undefined; } export declare function createSessionFaces(ctx: SessionFacesCtx): { ownerAware: OwnerAwareSessionStore; sessionAudit: ((sessionId: string) => Promise<{ owner: string | null; sessionId: string; createdAt: string; floorEntryId: string | null; thinkingLevel: string; model: { provider: string; modelId: string; } | null; messages: unknown[]; promptEpoch?: { epoch: number; artifactDigest: string; packId: string; assemblyApi: number; activatedBy: "session_start" | "compaction" | "legacy_migration"; }; } | undefined>) | undefined; sessionWatchRegistry: SessionWatchRegistry | undefined; purgeSession: ((sessionId: string, owner: string | null) => Promise<{ deleted: boolean; } | { active: string; }>) | undefined; instrumentDegenerate: ((result: import("@sema-agent/core").TaskResult) => void) | undefined; planCacheProbe: PlanCacheProbe; }; //# sourceMappingURL=session-faces.d.ts.map