diff --git a/extension/src/shared/types.ts b/extension/src/shared/types.ts index e2b7340..7893e38 100644 --- a/extension/src/shared/types.ts +++ b/extension/src/shared/types.ts @@ -183,15 +183,24 @@ export interface ManifestEntry { attachment_summaries: AttachmentSummary[]; } -// --- Vault settings (only the fields α touches) --- +// --- Vault settings --- // Full shape lives on the Rust side and in docs/superpowers/specs/2026-04-18-relicario-typed-items-design.md -// We leave retention/generator/caps opaque to α so we don't accidentally mutate them. +// β₂ tightens retention + generator_defaults; γ owns attachment_caps. + +export type TrashRetention = + | { kind: 'forever' } + | { kind: 'days'; value: number }; + +export type HistoryRetention = + | { kind: 'forever' } + | { kind: 'last_n'; value: number } + | { kind: 'days'; value: number }; export interface VaultSettings { - trash_retention: unknown; - field_history_retention: unknown; - generator_defaults: unknown; - attachment_caps: unknown; + trash_retention: TrashRetention; + field_history_retention: HistoryRetention; + generator_defaults: GeneratorRequest; + attachment_caps: unknown; // opaque — γ tightens autofill_origin_acks: Record; }