import React from 'react'; import { Box, Text } from '@anthropic/ink'; import type { Theme } from '@anthropic/ink'; export type LocalVaultViewProps = | { mode: 'list'; keys: string[] } | { mode: 'set-ok'; key: string } | { mode: 'get-masked'; key: string; masked: string } | { mode: 'get-revealed'; key: string; value: string } | { mode: 'not-found'; key: string } | { mode: 'deleted'; key: string } | { mode: 'error'; message: string }; export function LocalVaultView(props: LocalVaultViewProps): React.ReactNode { if (props.mode === 'list') { if (props.keys.length === 0) { return ( No secrets stored. Use /local-vault set <key> <value> to add one. ); } return ( Local Vault Keys ({props.keys.length}) {props.keys.map(k => ( {k} ))} ); } if (props.mode === 'set-ok') { return ( Secret stored: {props.key} = [REDACTED] ); } if (props.mode === 'get-masked') { return ( {props.key} : {props.masked} Use /local-vault get {props.key} --reveal to see the full value. ); } if (props.mode === 'get-revealed') { return ( {props.key} : {props.value} ⚠ Secret revealed in terminal — clear scrollback if this session is shared. ); } if (props.mode === 'not-found') { return ( Key not found: {props.key} ); } if (props.mode === 'deleted') { return ( Deleted: {props.key} ); } // mode === 'error' return ( Error: {props.message} ); }