import type { ExperienceAssistiveInference, ExperienceAssistiveInferenceCautionCode, ExperienceAssistiveInferenceCode, ExperienceAssistiveInferenceConfidence, ExperienceChecklistContribution, ExperienceChecklistItem, ExperienceChecklistItemStatus, ExperienceEpisode, ExperienceEpisodeArtifact, ExperienceEpisodeArtifactKind, ExperienceEpisodeBoundaryReason, ExperienceEpisodeOutcome, ExperienceEpisodeRole, ExperienceEvidenceChain, ExperienceEvidenceKind, ExperienceEvidenceRef, ExperienceFeedbackAttribution, ExperienceFeedbackAttributionReason, ExperienceFeedbackAttributionRole, ExperienceFeedbackSignal, ExperienceFeedbackSignalType, ExperienceGoalEvidenceRef, ExperienceGoalSlice, ExperienceGoalSliceReasonCode, ExperienceInvocation, ExperienceMessageRange, ExperienceOrchestrationEdge, ExperienceOrchestrationEdgeKind, ExperienceOrchestrationEdgeStatus, ExperienceOutcomeClosure, ExperienceParentReason, ExperienceReviewBasisCode, ExperienceReviewIndicators, ExperienceReviewPriority, ExperienceReviewerReport, ExperienceReviewerReportFinding, ExperienceReviewerReportFindingLevel, ExperienceReviewerReportFindingSource, ExperienceReviewerReportScope, ExperienceReviewerReportStep, ExperienceReviewerReportStepStatus, ExperienceRuleFinding, ExperienceRuleFindingCode, ExperienceRuleFindingLevel, ExperienceRuntimeSkillType, ExperienceRuntimeSkillTypeSource, ExperienceSessionStory, ExperienceSessionStoryAnswer, ExperienceSessionStoryAnswerKey, ExperienceSessionStoryGoalSlice, ExperienceSessionStoryGraphEdge, ExperienceSessionStoryGraphNode, ExperienceSessionStoryNode, ExperienceSessionStoryNodeKind, ExperienceSessionStorySkillLink, ExperienceSessionStorySkillRole, ExperienceSessionStorySubagentDispatch, ExperienceSessionSummary, ExperienceSkillSegment, ExperienceSkillSummary, ExperienceStoryContext, ExperienceTimelineBranch, ExperienceTimelineEvent, ExperienceTraceTimeline, ExperienceTimelineTree, ObservationExperienceReport, ObservationInboxItem, ObservationReviewState } from '../types/index.js'; import { type TraceSession } from './trace-ir.js'; import { type SkillSegment } from './trace-segmenter.js'; export { findNegativeFeedbackMatches, findPositiveFeedbackMatches, findUserCorrectionMatches, findUserGoalShiftMatches, hasNegativeFeedbackSignal, hasPositiveFeedbackSignal, hasUserCorrectionSignal, hasUserGoalShiftSignal, } from './feedback-matchers.js'; export type { TextMatchRange } from './feedback-matchers.js'; export type { ExperienceAssistiveInference, ExperienceAssistiveInferenceCautionCode, ExperienceAssistiveInferenceCode, ExperienceAssistiveInferenceConfidence, ExperienceChecklistContribution, ExperienceChecklistItem, ExperienceChecklistItemStatus, ExperienceEpisode, ExperienceEpisodeArtifact, ExperienceEpisodeArtifactKind, ExperienceEpisodeBoundaryReason, ExperienceEpisodeOutcome, ExperienceEpisodeRole, ExperienceEvidenceChain, ExperienceEvidenceKind, ExperienceEvidenceRef, ExperienceFeedbackAttribution, ExperienceFeedbackAttributionReason, ExperienceFeedbackAttributionRole, ExperienceFeedbackSignal, ExperienceFeedbackSignalType, ExperienceGoalEvidenceRef, ExperienceGoalSlice, ExperienceGoalSliceReasonCode, ExperienceInvocation, ExperienceMessageRange, ExperienceOrchestrationEdge, ExperienceOrchestrationEdgeKind, ExperienceOrchestrationEdgeStatus, ExperienceOutcomeClosure, ExperienceParentReason, ExperienceReviewBasisCode, ExperienceReviewIndicators, ExperienceReviewPriority, ExperienceReviewerReport, ExperienceReviewerReportFinding, ExperienceReviewerReportFindingLevel, ExperienceReviewerReportFindingSource, ExperienceReviewerReportScope, ExperienceReviewerReportStep, ExperienceReviewerReportStepStatus, ExperienceRuleFinding, ExperienceRuleFindingCode, ExperienceRuleFindingLevel, ExperienceRuntimeSkillType, ExperienceRuntimeSkillTypeSource, ExperienceSessionStory, ExperienceSessionStoryAnswer, ExperienceSessionStoryAnswerKey, ExperienceSessionStoryGoalSlice, ExperienceSessionStoryGraphEdge, ExperienceSessionStoryGraphNode, ExperienceSessionStoryNode, ExperienceSessionStoryNodeKind, ExperienceSessionStorySkillLink, ExperienceSessionStorySkillRole, ExperienceSessionStorySubagentDispatch, ExperienceSessionSummary, ExperienceSkillSegment, ExperienceSkillSummary, ExperienceStoryContext, ExperienceTimelineBranch, ExperienceTimelineEvent, ExperienceTraceTimeline, ExperienceTimelineTree, ObservationExperienceReport, ObservationReviewState, }; export declare const OBSERVATION_EXPERIENCE_SCHEMA_VERSION = 3; export type PersistedExperienceInvocation = Omit & { timelineRef: string; timelineEventIds: string[]; }; export type PersistedExperienceSessionStory = Omit & { contextRef: string; }; export type PersistedExperienceReviewerReport = Omit & { sessionStoryRef: 'session'; }; export type PersistedExperienceSession = Omit & { timelineRef: string; timelinePreviewEventIds: string[]; sessionStory?: PersistedExperienceSessionStory; reviewerReport?: PersistedExperienceReviewerReport; }; export type PersistedObservationExperienceReport = Omit & { invocations: PersistedExperienceInvocation[]; sessions: PersistedExperienceSession[]; }; export declare function aggregateExperienceChecklistItemStatus(statuses: ExperienceChecklistItemStatus[]): ExperienceChecklistItemStatus; interface BuildExperienceInput { sessions: TraceSession[]; segments: SkillSegment[]; items: ObservationInboxItem[]; generatedAt: string; reviewState?: ObservationReviewState; } export declare function buildObservationExperienceReport(input: BuildExperienceInput): ObservationExperienceReport; export declare function normalizeObservationExperienceReport(value: unknown): ObservationExperienceReport | null; /** * Converts a hydrated report into the wire format used by inbox JSON. * Timeline evidence is stored once per logical trace; consumers hydrate the * invocation/session views through normalizeObservationExperienceReport(). */ export declare function compactObservationExperienceReport(report: ObservationExperienceReport): PersistedObservationExperienceReport; export declare function isExperienceTraceInProgress(session: ExperienceSessionSummary): boolean; export declare function hasRecognizableUserGoalText(value: string | undefined): boolean; export declare function foldExperienceChecklistItems(items: ExperienceChecklistItem[]): { status: ExperienceReviewerReportStepStatus; reason: ExperienceParentReason; sourceItemKeys: string[]; };