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}
);
}