Adding migrations and lot of work. Starting work on the demo scope

This commit is contained in:
2026-08-22 14:53:23 +02:00
parent 1893bf23af
commit 94ccbfd1b9
29 changed files with 1280 additions and 122 deletions
+38
View File
@@ -34,6 +34,8 @@ export interface FolderExhibit extends ExhibitBase {
export interface DocumentExhibit extends ExhibitBase {
type: 'document'
/** Author-mode reveal requirements. Omitted from play-mode payloads. */
requiredFlags?: string[]
publishedAt?: string
capturedAt?: string
sourceUri?: string
@@ -47,6 +49,17 @@ export interface DocumentExhibit extends ExhibitBase {
metadata: Record<string, string>
}
export interface DocumentUploadAnalysis {
extractionStatus: 'succeeded' | 'unsupported' | 'failed'
matchedFlags: string[]
awardedFlags: string[]
}
export interface UploadedCaseDocument extends DocumentExhibit {
/** Transient upload response data; it is not part of persisted exhibit state. */
analysis: DocumentUploadAnalysis
}
export interface NoteExhibit extends ExhibitBase {
type: 'note'
content: string
@@ -152,6 +165,31 @@ export interface CaseState {
levelStatus?: string
sourceTemplateVersionId?: string
editingAllowed?: boolean
/** Visible documents that have not previously played their arrival flourish. */
newlyVisibleDocumentIds?: string[]
}
export interface LevelFlag {
key: string
earnedAt?: string
gatedDocumentCount: number
}
export interface EvidenceMatchAnchorDefinition {
id: string
phrase: string
minimumSimilarity: number
sortOrder: number
}
export interface EvidenceMatchRuleDefinition {
id: string
name: string
flagKey: string
matcherVersion: 'char_trigram_v1'
minimumAnchorMatches: number
enabled: boolean
anchors: EvidenceMatchAnchorDefinition[]
}
export function isDocumentExhibit(exhibit: Exhibit): exhibit is DocumentExhibit { return exhibit.type === 'document' }