// @opengeni/react/session — session state and pure timeline projection. // // This entry deliberately excludes styled components, workbench surfaces, CSS, // and their optional peers. Hosts keep Opengeni's session semantics while // rendering their own product UI. export type { EmbeddedFileAttachmentClientLike as FileAttachmentClientLike, EmbeddedGoalClientLike as GoalClientLike, EmbeddedHumanInputSessionClientLike as HumanInputSessionClientLike, EmbeddedSessionLineageClientLike as SessionLineageClientLike, EmbeddedSessionMcpApprovalPolicyClientLike as SessionMcpApprovalPolicyClientLike, EmbeddedSessionReadClientLike as SessionReadClientLike, EmbeddedSessionClientLike as SessionClientLike, } from "./client"; export type { EmbeddedFileAttachmentClientOverride as FileAttachmentClientOverride, EmbeddedGoalClientOverride as GoalClientOverride, EmbeddedHumanInputClientOverride as HumanInputClientOverride, EmbeddedSessionLineageClientOverride as SessionLineageClientOverride, EmbeddedSessionMcpApprovalPolicyClientOverride as SessionMcpApprovalPolicyClientOverride, EmbeddedSessionReadClientOverride as SessionReadClientOverride, EmbeddedSessionClientOverride as ClientOverride, } from "./session-context"; export { createEmbeddedSessionClient } from "./embedded-session-client"; export { conversationTimeline } from "./conversation-timeline"; export type { ComposerDraftMapContext, CreateEmbeddedSessionClientOptions, } from "./embedded-session-client"; export { useSession, isTitleEvent } from "./hooks/use-session"; export { useRetainedReads } from "./hooks/shared-query"; export { readClientConfig } from "./lib/client-config-read"; export { useSessionConversation } from "./hooks/use-session-conversation"; export { useSessionReadAcknowledgement, type SessionAttentionClientLike, type UseSessionReadAcknowledgementInput, } from "./hooks/use-session-read-acknowledgement"; export { useNewConversation } from "./hooks/use-new-conversation"; export type { NewConversationController, UseNewConversationOptions, NewConversationCreateOptions, CreatedConversation, } from "./hooks/use-new-conversation"; export type { PendingPrompt, SessionConversationController, UseSessionConversationOptions, } from "./hooks/use-session-conversation"; export type { UseSessionOptions, UseSessionResult } from "./hooks/use-session"; export { useSessionEvents } from "./hooks/use-session-events"; export type { SessionEventsConnectionState, UseSessionEventsOptions, UseSessionEventsResult, } from "./hooks/use-session-events"; export { createOlderHistoryLoadReceipt } from "./older-history"; export type { OlderHistoryLoader, OlderHistoryLoadReceipt } from "./older-history"; export { useComposer, composeSendInput, shouldSteerOnKey, shouldSubmitOnKey, FILE_ONLY_MESSAGE_TEXT, } from "./hooks/use-composer"; export type { ComposerBusySend, ComposerControllerState, ComposerPolicy, InitialComposerDraft, ComposerSendExtras, ComposerState, UseComposerOptions, } from "./hooks/use-composer"; export { useFileAttachments } from "./hooks/use-file-attachments"; export type { FileAttachment, UseFileAttachmentsOptions, UseFileAttachmentsResult, } from "./hooks/use-file-attachments"; export { useTurnQueue, isTurnQueueEvent } from "./hooks/use-turn-queue"; export type { QueueMutationKind, UseTurnQueueOptions, UseTurnQueueResult, } from "./hooks/use-turn-queue"; export { useGoal, isGoalEvent } from "./hooks/use-goal"; export type { UseGoalOptions, UseGoalResult } from "./hooks/use-goal"; export { useSessionLineage, isLineageRefreshEvent } from "./hooks/use-session-lineage"; export type { UseSessionLineageOptions, UseSessionLineageResult, } from "./hooks/use-session-lineage"; export { useSessionControl } from "./hooks/use-session-control"; export type { UseSessionControlOptions, UseSessionControlResult, } from "./hooks/use-session-control"; export { isSessionMcpApprovalPolicyEvent, useSessionMcpApprovalPolicy, } from "./hooks/use-session-mcp-approval-policy"; export type { UseSessionMcpApprovalPolicyOptions, UseSessionMcpApprovalPolicyResult, } from "./hooks/use-session-mcp-approval-policy"; export { approvalsFromRequiresAction, projectPendingApprovals } from "./approvals"; export type { PendingApproval } from "./approvals"; export { humanInputRequestFromEvent, projectPendingHumanInputRequests } from "./human-input"; export type { PendingHumanInputRequest } from "./human-input"; export { isHumanInputEvent, useHumanInputRequests } from "./hooks/use-human-input"; export type { UseHumanInputRequestsOptions, UseHumanInputRequestsResult, } from "./hooks/use-human-input"; export { buildTimeline, creditExhaustedFromEvents, extractSessionRef, groupTimeline, sessionStatusFromEvents, toolDisplayName, } from "./timeline/projection"; export type { GroupTimelineOptions } from "./timeline/projection"; export type { ActivityItem, AgentMessageItem, AuthNeededItem, GoalItem, HumanInputAnswerSummary, HumanInputItem, MachineInputBatchItem, MachineInputMember, MemoryItem, NoticeItem, ReasoningItem, SandboxItem, SessionStatusItem, SessionUsageLimitStop, TimelineGroup, TimelineItem, TurnOutcome, ToolCallItem, ToolOutputPreview, TurnEndItem, TurnStepsItem, TurnStepsState, TimelineAnnotationSourceDescriptor, UserMessageItem, WorkerCompletionItem, WorkerItem, } from "./timeline/types"; // Why a message can't start (an admission block, or a chat on somebody else's // personal machine) and the allowed ways forward, for any renderer. Styled web // surfaces live in `@opengeni/react/session-ui` (`SessionStartNotice`). export { useSessionStart } from "./hooks/use-session-start"; export type { UseSessionStartOptions, UseSessionStartResult } from "./hooks/use-session-start"; export { admissionControlNeedsRefresh, admissionRecheckControl, currentSessionMachineAccess, isMachineComputeSelectable, personalMachineCopy, recheckSessionAdmission, savedMessageMachineChoices, sessionAdmissionCopy, sessionAdmissionMachineChangedCopy, sessionAdmissionNeedsDifferentMachine, sessionAdmissionReason, } from "./session-admission-model"; export type { PersonalMachineCopy, SessionAdmissionCopy, SessionAdmissionReason, } from "./session-admission-model";