export { sessionAuthRecommendation } from "./session-auth-recommendation"; export { SessionConnectionRequest, type SessionConnectionRequestProps, } from "./components/session-connection-request"; export { SessionMcpCapabilityCard, McpConnectionCard, type McpConnectionCardProps, type SessionMcpCapabilityCardProps, } from "./components/session-mcp-capability-card"; export { SessionCapabilityFrame, type SessionCapabilityFrameProps, } from "./components/session-capability-frame"; export { attachSessionCapability, completeSessionCapabilityOAuth, prepareSessionCapabilityAccess, applySessionCapabilityAccess, type SessionCapabilityAccessPlan, } from "./session-capability-policy"; export { retainedImageId } from "./components/markdown"; // oxlint-disable-next-line typescript/triple-slash-reference -- package consumers must load the ambient type for this optional untyped peer without emitting a runtime import. /// // @opengeni/react — hooks + styled components on @opengeni/sdk. // // Import the ready-to-use styles once: // import "@opengeni/react/compiled.css"; // Tailwind v4 hosts may instead use the additive styles.css + @source bridge; // container-responsive composers additionally import responsive.css. export type { EmbeddedBrowserInteractionClientLike, EmbeddedComputerInteractionClientLike, EmbeddedFileAttachmentClientLike, EmbeddedGoalClientLike, EmbeddedHumanInputSessionClientLike, EmbeddedInteractionClientLike, EmbeddedSessionEventClientLike, EmbeddedSessionLineageClientLike, EmbeddedSessionMcpApprovalPolicyClientLike, EmbeddedSessionReadClientLike, EmbeddedSessionClientLike, SessionClientLike, } from "./client"; export { OpenGeniProvider } from "./provider"; export type { OpenGeniProviderProps, ErrorMessageFormatter } from "./provider"; export { createOpenGeniText, OpenGeniMessagesProvider, useOpenGeniLocale, useOpenGeniText, } from "./messages/runtime"; export type { MessageParamValue, OpenGeniMessageCatalog, OpenGeniMessageKey, OpenGeniMessageParams, OpenGeniMessages, OpenGeniMessagesProviderProps, OpenGeniText, PluralCategory, } from "./messages/runtime"; export { englishMessages } from "./messages/en"; export { SINGLE_SEND_WORDING, singleSendText } from "./messages/single-send"; export { SingleSendWording } from "./messages/runtime"; export { useOpenGeni, useOpenGeniClient } from "./session-context"; export { useVideoArtifactPlaybackLoader } from "./hooks/use-video-artifact-playback"; export type { ClientOverride, OpenGeniContextValue } from "./session-context"; export { createEmbeddedSessionClient } from "./embedded-session-client"; export type { ComposerDraftMapContext, CreateEmbeddedSessionClientOptions, } from "./embedded-session-client"; export { usePageLiveActivity } from "./hooks/internal"; export { filePathVisibility, visibleFileTree } from "./file-node-visibility"; export type { FileNodeVisibilityContext, FileNodeVisibilityPredicate, FilePathVisibility, } from "./file-node-visibility"; // Hooks export { useSession, isTitleEvent } from "./hooks/use-session"; export { useRetainedReads } from "./hooks/shared-query"; export { readClientConfig } from "./lib/client-config-read"; export type { UseSessionOptions, UseSessionResult } from "./hooks/use-session"; export { SESSION_EVENT_BROWSER_MAX_BYTES, SESSION_EVENT_BROWSER_MAX_COUNT, SESSION_EVENT_BROWSER_PENDING_MAX_BYTES, SESSION_EVENT_BROWSER_PENDING_MAX_COUNT, boundBrowserSessionEventWindow, useSessionEvents, } from "./hooks/use-session-events"; export { createOlderHistoryLoadReceipt } from "./older-history"; export type { BrowserSessionEventWindow, SessionEventsConnectionState, UseSessionEventsOptions, UseSessionEventsResult, } from "./hooks/use-session-events"; 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 { VOICE_RECORDING_CLIENT_MAX_DURATION_SECONDS, VOICE_RECORDING_OWNER_HEARTBEAT_MILLISECONDS, VOICE_RECORDING_OWNER_STALE_MILLISECONDS, VOICE_RECORDING_TIMESLICE_MILLISECONDS, useVoiceInput, } from "./hooks/use-voice-input"; export type { UseVoiceInputOptions, UseVoiceInputResult, VoiceInputStatus, } from "./hooks/use-voice-input"; export { IndexedDbVoiceRecordingStore, VoiceRecordingChunkConflictError, VoiceRecordingChunkSequenceError, VoiceRecordingNotFoundError, VoiceRecordingOwnedError, VoiceRecordingStorageUnavailableError, createVoiceRecordingManifest, planVoiceRecordingChunkCommit, prepareVoiceRecordingChunk, } from "./voice-recording-store"; export type { PersistVoiceRecordingChunkInput, PersistVoiceRecordingChunkResult, VoiceRecordingCaptureState, VoiceRecordingChunk, VoiceRecordingChunkUploadState, VoiceRecordingFinalizationState, VoiceRecordingHandoffMode, VoiceRecordingManifest, VoiceRecordingRecoveryMode, VoiceRecordingStore, VoiceRecordingTranscriptionState, VoiceRecordingUploadState, } from "./voice-recording-store"; export { COMPOSER_MODEL_UNAVAILABLE_MESSAGE, COMPOSER_PAYMENT_REQUIRED_MESSAGE, COMPOSER_SESSION_USAGE_LIMIT_MESSAGE, composerSubmissionErrorMessage, isModelUnavailableSubmissionError, isSessionUsageLimitSubmissionError, } from "./lib/format"; export { INITIAL_TRANSCRIPTION_CONTROL_STATE, appendFinalTranscript, transitionTranscriptionControl, useTranscription, } from "./hooks/use-transcription"; export type { TranscriptionControlAction, TranscriptionControlState, TranscriptionControlTransition, UseTranscriptionOptions, UseTranscriptionResult, } from "./hooks/use-transcription"; 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 { useLastStartedTurnPolicy, isLastStartedTurnPolicyEvent, } from "./hooks/use-last-started-turn-policy"; export type { LastStartedTurnPolicy, UseLastStartedTurnPolicyOptions, UseLastStartedTurnPolicyResult, } from "./hooks/use-last-started-turn-policy"; export { QueueSurface } from "./components/queue-surface"; export type { QueueSurfaceProps } from "./components/queue-surface"; export { SessionChrome, sessionChromeGoalPillExplanation, sessionChromeGoalPillLabel, sessionChromeGoalPillState, } from "./components/session-chrome"; export type { SessionChromeAgentsSignal, SessionChromeProps, SessionChromeSignalId, SessionChromeSignalTone, } from "./components/session-chrome"; export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "./components/tooltip"; export { OPEN_WORKSTREAM_CONTROL_EVENT } from "./workstream-control-event"; export { useGoal, isGoalEvent } from "./hooks/use-goal"; export type { UseGoalOptions, UseGoalResult } from "./hooks/use-goal"; 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 { useScheduledTasks } from "./hooks/use-scheduled-tasks"; export type { UseScheduledTasksOptions, UseScheduledTasksResult, } from "./hooks/use-scheduled-tasks"; export { useWorkspaceSessions } from "./hooks/use-workspace-sessions"; export type { UseWorkspaceSessionsOptions, UseWorkspaceSessionsResult, } from "./hooks/use-workspace-sessions"; export { useSessionBackgroundCommands } from "./hooks/use-session-background-commands"; export { useWorkspaceBackgroundCommands } from "./hooks/use-workspace-background-commands"; export type { UseSessionBackgroundCommandsOptions, UseSessionBackgroundCommandsResult, } from "./hooks/use-session-background-commands"; export { useSessionLineage, isLineageRefreshEvent } from "./hooks/use-session-lineage"; export type { UseSessionLineageOptions, UseSessionLineageResult, } from "./hooks/use-session-lineage"; export { useVaultsApi, useVaults, useVault, useVaultItems, useVaultItem, useVaultFieldVersions, useSessionSecrets, VAULT_ITEM_PAGE_LIMIT, } from "./hooks/use-vaults"; export type { UseVaultQueryOptions } from "./hooks/use-vaults"; export { asVaultClient, vaultsApi, vaultErrorCode, vaultErrorDetail } from "@opengeni/sdk"; export type { VaultClientLike, VaultsApi } from "@opengeni/sdk"; export type { VaultPolicy, VaultOwnerKind, VaultSource, VaultMode, VaultSyncStatus, VaultItemType, VaultFieldKind, VaultAvailability, VaultSummary, VaultItemReferences, VaultItemSummary, VaultItemField, PasskeySummary, VaultItem, VaultVersionCreatedByKind, VaultFieldVersionMeta, GeneratePasswordOptions, CreateVaultRequest, UpdateVaultRequest, VaultFieldInput, CreateVaultItemRequest, UpdateVaultItemRequest, MoveVaultItemRequest, RevealVaultFieldResponse, ListVaultItemsQuery, SessionSecretsVault, SessionSecretsView, OnePasswordPlanTier, InstallOnePasswordRequest, ProviderVaultMeta, InstallOnePasswordResponse, OnePasswordConnectionSummary, ReplaceOnePasswordTokenRequest, DisconnectOnePasswordResponse, LinkProviderVaultRequest, CreateManagedProviderVaultRequest, VaultErrorCode, } from "@opengeni/sdk"; export { SecretsUiProvider, useSecretsUi } from "./secrets-ui"; export { SecretAnswerChip, SecretRefChip, SecretRefText, secretReferenceLabel, } from "./components/secret-ref-chip"; export type { SecretAnswerChipProps, SecretRefChipProps, SecretRefTextProps, SecretReferenceLabel, } from "./components/secret-ref-chip"; export type { SecretsUi, SecretReferenceLike, SecretReferenceTargetLike, SecretTextTokenLike, PasswordStrengthLike, } from "./secrets-ui"; export { useChannels } from "./hooks/use-channels"; export type { UseChannelsOptions, UseChannelsResult } from "./hooks/use-channels"; export { useRigs, useRig, useRigVersions, useRigChanges } from "./hooks/use-rigs"; export type { UseRigsOptions, UseRigsResult, UseRigOptions, UseRigResult, UseRigVersionsOptions, UseRigVersionsResult, UseRigChangesOptions, UseRigChangesResult, } from "./hooks/use-rigs"; export { useWorkspaces } from "./hooks/use-workspaces"; export type { UseWorkspacesOptions, UseWorkspacesResult } from "./hooks/use-workspaces"; export { useBillingUsage } from "./hooks/use-billing-usage"; export type { UseBillingUsageOptions, UseBillingUsageResult } from "./hooks/use-billing-usage"; export { useAvailableModels, useWorkspaceModelCatalog } from "./hooks/use-available-models"; export type { UseAvailableModelsOptions, UseAvailableModelsResult, UseWorkspaceModelCatalogOptions, UseWorkspaceModelCatalogResult, } from "./hooks/use-available-models"; // Sandbox surfacing (Phase 5): capability negotiation + terminal/files/diff/desktop export { useSessionCapabilities } from "./hooks/use-session-capabilities"; export type { SessionCapabilitiesState, UseSessionCapabilitiesOptions, UseSessionCapabilitiesResult, } from "./hooks/use-session-capabilities"; export { useDesktopStream } from "./hooks/use-desktop-stream"; export type { UseDesktopStreamOptions, UseDesktopStreamResult } from "./hooks/use-desktop-stream"; export { useRelayFrameStream } from "./hooks/use-relay-frame-stream"; export type { DesktopWebSocketFactory, DesktopWebSocketLike, UseRelayFrameStreamOptions, UseRelayFrameStreamResult, } from "./hooks/use-relay-frame-stream"; export { useTerminalStream } from "./hooks/use-terminal-stream"; export type { TerminalStreamStatus, UseTerminalStreamOptions, UseTerminalStreamResult, } from "./hooks/use-terminal-stream"; export { useSandboxTerminal } from "./hooks/use-sandbox-terminal"; export type { TerminalChunk, UseSandboxTerminalOptions, UseSandboxTerminalResult, } from "./hooks/use-sandbox-terminal"; export { CapturedFileUnavailableError, FileWriteConflictError, useSandboxFiles, } from "./hooks/use-sandbox-files"; export type { CapturedFileUnavailableReason, FileTreeNode, FileTreeStatus, SandboxFilesGitSummary, SandboxWriteFileOptions, UseSandboxFilesOptions, UseSandboxFilesResult, } from "./hooks/use-sandbox-files"; export { useSandboxGit } from "./hooks/use-sandbox-git"; export type { SandboxGitComparison, SandboxGitFileDiff, UseSandboxGitOptions, UseSandboxGitResult, } from "./hooks/use-sandbox-git"; // Workbench v2 turn-end capture (the cold-paint data layer) export { useWorkspaceCapture } from "./hooks/use-workspace-capture"; export type { UseWorkspaceCaptureOptions, UseWorkspaceCaptureResult, } from "./hooks/use-workspace-capture"; export { useWorkspaceEdit } from "./hooks/use-workspace-edit"; export type { UseWorkspaceEditOptions, UseWorkspaceEditResult, WorkspaceEditConflict, WorkspaceEditState, } from "./hooks/use-workspace-edit"; export { deriveMachineChip, formatAsOf, useMachineChip } from "./hooks/use-machine-chip"; export type { DeriveMachineChipInput, MachineChip, MachineChipState, UseMachineChipOptions, } from "./hooks/use-machine-chip"; // Pending-approvals projection export { approvalsFromRequiresAction, projectPendingApprovals } from "./approvals"; export type { PendingApproval } from "./approvals"; export { ApprovalSurface, defaultApprovalSurfaceMessages } from "./components/approval-surface"; export { ToolActionReviewCard, ToolActionReviewDetails } from "./components/tool-action-review"; export type { ToolReviewDetailsLoader } from "./components/tool-action-review"; export type { ApprovalSurfaceMessages, ApprovalSurfaceProps } from "./components/approval-surface"; // Structured human input: event projection, authoritative hook, and styled form. 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 { HumanInputForm, answersFromDrafts, defaultHumanInputFormMessages, } from "./components/human-input-form"; export type { HumanInputAnswerDraft, HumanInputFormMessages, HumanInputFormProps, } from "./components/human-input-form"; export { HumanInputSurface } from "./components/human-input-surface"; export type { HumanInputSurfaceProps } from "./components/human-input-surface"; export { claimHumanInputDraftOwner, forgetAllHumanInputDrafts } from "./human-input-draft-store"; // Timeline projection export { buildTimeline, creditExhaustedFromEvents, extractSessionRef, groupTimeline, sessionStatusFromEvents, toolDisplayName, } from "./timeline"; export type { GroupTimelineOptions, ActivityItem, AgentMessageItem, AuthNeededItem, ContextCompactionItem, GoalItem, HumanInputAnswerSummary, HumanInputItem, MachineInputBatchItem, MachineInputMember, NoticeItem, ReasoningItem, SandboxItem, SessionStatusItem, SessionUsageLimitStop, TimelineGroup, TimelineItem, TurnEndItem, TurnStepsItem, TurnStepsState, ToolCallItem, ToolOutputPreview, UserMessageItem, WorkerItem, } from "./timeline"; // Tool-renderer registry + the per-tool renderers (the timeline's extension API) export { createDefaultToolRegistry, createSessionRetainedScreenshotLoader, createToolRegistry, createWorkspaceRetainedArtifactLoader, createWorkspaceRetainedVideoLoader, defaultToolRegistry, rawTypeOf, } from "./timeline"; export type { CreateToolRegistryOptions, RetainedArtifactLoader, RetainedArtifactLoadOptions, RetainedArtifactLoaderClient, RetainedScreenshotLoader, RetainedScreenshotLoaderClient, RetainedVideoLoaderClient, VideoArtifactPlaybackLoader, ToolRegistry, ToolRegistryEntry, ToolRenderer, ToolRendererProps, } from "./timeline"; // Timeline rendering primitives + the screenshot lightbox (compose custom renderers) export { ActivityDisclosure, ActivityRail, BodyNote, DisclosureDefaultsProvider, LightboxProvider, MediaEmpty, MediaSkeleton, PayloadBlock, ScreenshotFigure, TermBlock, Thumbnail, TurnSummary, BUILT_IN_TURN_SUMMARY_FACET_IDS, useLightbox, useLightboxGalleryItem, useLightboxOptional, } from "./timeline"; export type { ActivityDisclosureProps, ActivityRailProps, DisclosureChip, BuiltInTurnSummaryFacetId, TurnOutcome, TurnSummaryContext, TurnSummaryFacet, TurnSummaryFacetConfiguration, TurnSummaryFacetResult, TurnSummaryOptions, TurnSummaryProps, TurnSummaryStatus, LightboxControlLabels, LightboxGalleryEntry, LightboxGalleryImage, } from "./timeline"; // Pure provider-shape parsers (exec banner, V4A diff, tool arguments, …) export { applyPatchOps, applyPatchOpsFromToolItem, controlCaret, execTruncated, isApplyPatch, isExecSessionLostBanner, looksBinary, parseExecBannerSessionId, parseFreeformApplyPatch, parseToolArgs, sandboxCommandExitCode, stripExecBanner, tailPeek, unwrapMcpOutput, v4aToGitFileDiff, } from "./timeline"; export type { ApplyPatchOperation } from "./timeline"; // Slash-command palette (registry + UI + hook) export { argHint, defaultCommands, filterCommands, firstMissingRequiredArg, hasPermission, matchCommand, parseCommandLine, } from "./commands/registry"; export type { ParsedCommandLine } from "./commands/registry"; export type { CommandContext, CommandResult, Notice, SlashArg, SlashCommand, } from "./commands/types"; export { useSlashCommands } from "./hooks/use-slash-commands"; export type { ConfirmState, SlashCommandContext, SlashCommandHandlers, UseSlashCommandsOptions, UseSlashCommandsResult, } from "./hooks/use-slash-commands"; export { CommandPalette } from "./components/command-palette"; export type { CommandPaletteProps } from "./components/command-palette"; // Components export { ChatComposer } from "./components/chat-composer"; export { conversationTimeline } from "./conversation-timeline"; export { SessionConversation, SessionConversationView } from "./components/session-conversation"; 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 { NewConversation, NewConversationView } from "./components/new-conversation"; export type { NewConversationProps, NewConversationViewProps, NewConversationLabels, } from "./components/new-conversation"; export type { PendingPrompt, SessionConversationController, UseSessionConversationOptions, } from "./hooks/use-session-conversation"; export { SessionList } from "./components/session-list"; export type { SessionListLabels, SessionListProps } from "./components/session-list"; export { OpenGeniChat } from "./components/open-geni-chat"; export type { OpenGeniChatCreateOptions, OpenGeniChatLabels, OpenGeniChatProps, } from "./components/open-geni-chat"; export type { SessionConversationLabels, SessionConversationProps, SessionConversationViewProps, } from "./components/session-conversation"; export type { ChatComposerProps } from "./components/chat-composer"; export { ComposerTranscriptionControl } from "./components/composer-transcription-control"; export type { ComposerTranscriptionControlProps, ComposerTranscriptionMessages, } from "./components/composer-transcription-control"; export { defaultChatComposerMessages } from "./components/composer"; export type { ChatComposerMessages, ResponsiveBasis } from "./components/composer"; export { ModelPicker } from "./components/model-picker"; export type { ModelPickerProps } from "./components/model-picker"; export { BillingClassMark, ModelPolicyPicker, PickerAnimatedPage, PickerBackHeader, PickerNavRow, defaultModelPolicyPickerMessages, } from "./components/model-policy-picker"; export { ModelPolicyPickerMenu } from "./components/model-policy-picker-menu"; export type { ModelPolicyPickerMessages, ModelPolicyPickerProps, ModelPolicyPickerGroupPresentation, } from "./components/model-policy-picker"; export { advancedSourceSummary, availabilityReasonLabel, billingClassForModel, billingClassLabel, coerceReasoningEffortForModel, defaultEffortForModel, effortOptionsForModel, findPickerRow, groupPickerRowsByBillingClass, labelLatencyMode, labelReasoningEffort, payerSummaryForModel, modelUsesCredits, projectClientModelRows, projectPickerRows, runnableLatencyModesForModel, sortPickerRows, } from "./model-policy"; export type { GroupPickerRowsOptions, LatencyModeId, PickerBillingClass, PickerModelRow, } from "./model-policy"; export { ChatGptMark, ModelMark, ModelName, modelHasMark } from "./components/model-mark"; export { humanizeModelSlug, isRawModelLabel, modelDisplayName, modelSlug, modelVendor, } from "@opengeni/sdk/model-display"; export type { ModelDisplayInput, ModelVendor } from "@opengeni/sdk/model-display"; export { MessageTimeline, TimelineRow } from "./components/message-timeline"; export { GeneratedVideoPlayer } from "./components/generated-video-player"; export type { GeneratedVideoPlayerProps } from "./components/generated-video-player"; export type { MessageTimelineProps } from "./components/message-timeline"; export { MessageSenderLabel } from "./timeline/message-sender"; export type { RenderMessageSender } from "./timeline/message-sender"; export type { MessageSender } from "./timeline"; export type { RenderAllowanceExhausted } from "./timeline/allowance-exhausted-row"; export type { AllowanceLabels, AllowanceScope } from "./usage/allowance-copy"; export type { TimelineSearchTarget } from "./components/timeline-search"; export { UserMessageBody, userMessageLikelyNeedsDisclosure } from "./components/user-message-body"; export type { UserMessageBodyProps, UserMessageDisclosureLabels, } from "./components/user-message-body"; export { Markdown, sandboxFileLocationFromHref, sandboxFilePathFromHref, } from "./components/markdown"; export type { MarkdownProps, MarkdownInteractiveBlock, SandboxFileLocation, } from "./components/markdown"; export { OpenGeniLinkProvider, chainLinkRenderers, chainLinkResolvers, sessionLinkResolver, useOpenGeniLinkRenderer, useOpenGeniLinkResolver, viewerLinkResolver, } from "./components/open-geni-links"; export type { OpenGeniHostLink, OpenGeniLinkRenderer, OpenGeniLinkResolution, OpenGeniLinkResolver, OpenGeniLinkTarget, OpenGeniViewerTarget, } from "./components/open-geni-links"; export { parseOpenGeniLink } from "@opengeni/sdk"; export { ArtifactLabelsProvider, DEFAULT_ARTIFACT_LABELS, type ArtifactLabels, } from "./components/artifacts/artifact-chrome"; export { CopyButton, CopyHoverFrame } from "./components/copy-button"; export { copyTextToClipboard, tableElementToTsv } from "./lib/clipboard"; export { SessionStatus, StatusDot, SESSION_STATUS_META } from "./components/session-status"; export { sessionAdmissionBlocked, sessionDisplayStatus } from "./session-status-model"; export type { SessionDisplayStatus } from "./session-status-model"; export type { SessionStatusProps, StatusDotProps, SessionStatusMeta, } from "./components/session-status"; export { FleetTile, sessionDisplayTitle } from "./components/fleet-tile"; export type { FleetTileProps } from "./components/fleet-tile"; // Sandbox surfacing components (Phase 5) export { SandboxTerminal } from "./components/sandbox-terminal"; export type { SandboxTerminalProps, XtermTheme } from "./components/sandbox-terminal"; export { FileBrowser } from "./components/file-browser"; export type { FileBrowserProps } from "./components/file-browser"; export { WorkbenchChanges } from "./components/workbench-changes"; export type { WorkbenchChangesProps } from "./components/workbench-changes"; export { DiffView } from "./components/diff-view"; export type { DiffViewProps, DiffTheme } from "./components/diff-view"; export { PierreDiff } from "./components/pierre-diff"; // Opt in to the optional `@pierre/diffs` peer with `enablePierreDiffs()` from // `@opengeni/react/diffs`; the root entry never names the peer. export { registerPierreDiffs, type PierreDiffsLoader } from "./lib/pierre-diffs-loader"; // Bundler-visible optional workbench imports live only on opt-in subpaths. export { registerSandboxTerminal, registerCodeEditor, registerDesktopViewer, } from "./lib/workbench-peers"; export type { WorkbenchPeerLoader, SandboxTerminalPeers, CodeEditorPeers, CodeEditorLanguage, CodeEditorLanguages, } from "./lib/workbench-peers"; export type { PierreDiffProps } from "./components/pierre-diff"; export { PierreFile } from "./components/pierre-file"; export type { PierreFileProps } from "./components/pierre-file"; export { CodeEditor, languageForPath } from "./components/code-editor"; export type { CodeEditorProps } from "./components/code-editor"; export { SandboxFiles } from "./components/sandbox-files"; export type { SandboxFilesProps } from "./components/sandbox-files"; export { DesktopViewer } from "./components/desktop-viewer"; export type { DesktopViewerProps } from "./components/desktop-viewer"; export { WorkspaceDock } from "./components/workspace-dock"; export type { WorkspaceDockProps, WorkspaceTab } from "./components/workspace-dock"; // The embeddable dock "brain" (Workbench v2, M4): the whole session workspace as // one component + the tab-building hook + the pre-paint default-tab helper. export { SandboxWorkspace, useSandboxWorkspaceTabs, initialWorkspaceTab, WORKBENCH_TAB_CHANGES, WORKBENCH_TAB_FILES, WORKBENCH_TAB_TERMINAL, WORKBENCH_TAB_BROWSER, WORKBENCH_TAB_DESKTOP, WORKBENCH_SURFACES, } from "./components/sandbox-workspace"; export type { SandboxWorkspaceSurface, SandboxWorkspaceProps, UseSandboxWorkspaceTabsOptions, UseSandboxWorkspaceTabsResult, WorkspaceMachine, WorkspaceNotification, } from "./components/sandbox-workspace"; // Connected-machine UI moved to the "@opengeni/react/machines" subpath; re-exported // here for back-compat (#144). export * from "./machines"; // Multi-account Codex (P1): accounts list + active-switch hook. export { useCodexAccounts, isCodexAccountEvent } from "./hooks/use-codex-accounts"; export type { CodexAccountsClientLike, UseCodexAccountsOptions, UseCodexAccountsResult, } from "./hooks/use-codex-accounts"; // Model-account choice for every provider on the shared subscription core. export { useSessionModelAccount, isModelAccountEvent } from "./hooks/use-session-model-account"; export type { ModelAccountClientLike, UseSessionModelAccountOptions, UseSessionModelAccountResult, } from "./hooks/use-session-model-account"; export { useSuperGrokAccounts } from "./hooks/use-supergrok-accounts"; export type { SuperGrokAccountsClientLike, UseSuperGrokAccountsOptions, UseSuperGrokAccountsResult, } from "./hooks/use-supergrok-accounts"; // Sandbox helpers export { gitFileDiffToPatch } from "./lib/git-patch"; export { xtermThemeFromTokens } from "./lib/xterm-theme"; // Utilities export { cn } from "./lib/cn"; export { markClassicScrollbars } from "./lib/scrollbars"; export { CREDIT_EXHAUSTION_MESSAGE, formatBytes, formatClockTime, formatRelativeTime, humanizeFailureReason, presentFailure, isCreditExhaustion, stringifyPayload, truncate, tryParseJson, } from "./lib/format"; export { currentProviderRecovery, parseProviderRecovery, providerRecoveryExhaustedText, providerRecoveryRetryingText, providerRecoverySubject, type ProviderRecoveryCondition, type ProviderRecoveryFacts, } from "./lib/provider-recovery"; export { ProviderRecoveryNotice, PROVIDER_RECOVERY_NOTICE_DETAIL, type ProviderRecoveryNoticeProps, } from "./components/provider-recovery-notice"; export { SessionCommandsPanel } from "./components/session-commands-panel"; export { SessionCommands } from "./components/session-commands"; export { KnowledgeActivityProvider } from "./timeline/knowledge-receipt"; export { LearningRefusalActionsProvider, type LearningRefusalActions, } from "./timeline/learning-refusal-row"; export type { LearningRefusalPlace } from "./timeline/learning-refusal-copy"; export type { KnowledgeActivityActions } from "./timeline/knowledge-receipt"; export { StartupTimings } from "./timeline/startup-timings"; export { setStartupDetails, useStartupDetails } from "./timeline/startup-preference"; export { ClaudeMark } from "./components/claude-mark"; export { AnthropicMark } from "./components/anthropic-mark"; export { OpenRouterMark } from "./components/openrouter-mark"; export { OpperMark } from "./components/opper-mark"; export { GrokMark } from "./components/grok-mark"; export { ToolReviewHistoryProvider } from "./components/tool-review-history";