Files
kjh2064 c41e5063b7 chore: remove kbx-foundation-v36 reference (superseded by v4 implementation)
Removed entire kbx-foundation-v36 directory as it's been replaced by
the new KBX Foundation v4 patterns implemented in this session:
- Registry-driven screen definitions
- Density-aware UI adapter components
- Feature module templates (ShadowRun, Models)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-08-12 01:39:58 +09:00

68 lines
1.8 KiB
TypeScript

export type KbxExternalDataFreshnessMode = 'strict' | 'stale-while-revalidate' | 'provider-defined'
export type KbxExternalDataState = 'fresh' | 'stale' | 'expired' | 'unavailable'
export type KbxRawSnapshotRetention = 'none' | 'hash-only' | 'encrypted-raw'
export interface KbxExternalDataDatasetDefinition {
id: string
providerId: string
providerOperationId: string
canonicalType: string
normalizer: string
normalizerVersion: string
cacheKeyFields: readonly string[]
freshness: {
mode: KbxExternalDataFreshnessMode
freshForSeconds: number | null
maxStaleSeconds: number | null
backgroundRefresh: boolean
requireExplicitServicePolicy?: boolean
}
snapshot: {
rawRetention: KbxRawSnapshotRetention
normalizedRetentionDays: number
}
ui: {
sourceLabel: string
showProviderObservedAt: boolean
showReceivedAt: boolean
}
}
export interface KbxExternalDataProvenance {
datasetId: string
providerId: string
providerOperationId: string
sourceLabel: string
state: KbxExternalDataState
providerObservedAt?: string | null
requestedAt: string
receivedAt: string
ingestedAt: string
freshUntil?: string | null
usableUntil?: string | null
payloadSha256: string
normalizerVersion: string
cacheHit: boolean
refreshInProgress?: boolean
warning?: string
}
export interface KbxExternalDataEnvelope<T> {
data: T | null
provenance: KbxExternalDataProvenance
}
export interface KbxExternalDataStatusRow {
datasetId: string
providerId: string
sourceLabel: string
state: KbxExternalDataState
cacheEntries: number
lastReceivedAt?: string | null
oldestFreshUntil?: string | null
staleEntries: number
unavailableEntries: number
}
export interface KbxExternalDataStatusResponse { items: KbxExternalDataStatusRow[] }