feat(persona): add Persona identity verification integration (#4967)

* feat(persona): add Persona identity verification integration

* feat(persona): complete API coverage — inquiry lifecycle, account update/redact, report listing, template discovery

* improvement(persona): explicit HTTP error handling in all transforms, fix tags wand generation type

* chore(persona): align docs path and docsLink with staging structure

* improvement(persona): fail-closed file access gate on import route, explicit error when one-time link missing

* improvement(persona): validate report template ID before request

* improvement(persona): reject unexpected import response bodies instead of returning an empty importer

* improvement(persona): require session token on resume per API contract
This commit is contained in:
Waleed
2026-06-11 11:43:31 -07:00
committed by GitHub
parent da8e6eefc9
commit e5d655b1be
42 changed files with 4704 additions and 0 deletions
+18
View File
@@ -961,6 +961,24 @@ export function PeopleDataLabsIcon(props: SVGProps<SVGSVGElement>) {
)
}
export function PersonaIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg
width='1em'
height='1em'
viewBox='0 0 17.02 23.3'
fill='none'
xmlns='http://www.w3.org/2000/svg'
{...props}
>
<path
d='M17.0185 20.6995V21.9299C17.0185 22.5269 16.686 22.8618 16.086 22.8618H0.932486C0.335072 22.8618 0 22.5295 0 21.9299V20.6995C0 20.1025 0.332474 19.7676 0.932486 19.7676H16.0886C16.686 19.7676 17.0211 20.0999 17.0211 20.6995H17.0185ZM15.9847 11.391L12.034 9.11194C11.9041 9.03666 11.9041 8.85236 12.034 8.77709L15.9847 6.498C16.4315 6.24101 16.5821 5.66994 16.325 5.22607L15.7094 4.1618C15.4523 3.71532 14.8834 3.56477 14.4367 3.82175L10.4859 6.10084C10.3561 6.17612 10.195 6.08267 10.195 5.93471V1.37134C10.195 0.857373 9.77682 0.439453 9.26252 0.439453H8.03133C7.51703 0.439453 7.09884 0.857373 7.09884 1.37134V5.93212C7.09884 6.08008 6.9378 6.17352 6.80793 6.09825L2.8572 3.81915C2.41044 3.56217 1.8416 3.71532 1.58445 4.1592L0.968851 5.22347C0.711703 5.66994 0.864952 6.23842 1.30912 6.4954L5.25985 8.77449C5.38972 8.84977 5.38972 9.03407 5.25985 9.10935L1.30912 11.3884C0.862355 11.6454 0.711703 12.2139 0.968851 12.6604L1.58445 13.7246C1.8416 14.1711 2.41044 14.3217 2.8572 14.0647L6.80793 11.7856C6.9378 11.7103 7.09884 11.8038 7.09884 11.9517V16.5125C7.09884 17.0265 7.51703 17.4444 8.03133 17.4444H9.26252C9.77682 17.4444 10.195 17.0265 10.195 16.5125V11.9517C10.195 11.8038 10.3561 11.7103 10.4859 11.7856L14.4367 14.0647C14.8834 14.3217 15.4523 14.1685 15.7094 13.7246L16.325 12.6604C16.5821 12.2139 16.4289 11.6454 15.9847 11.3884V11.391Z'
fill='#7379FD'
/>
</svg>
)
}
export function PerplexityIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg width='1em' height='1em' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' {...props}>
+2
View File
@@ -145,6 +145,7 @@ import {
ParallelIcon,
PeopleDataLabsIcon,
PerplexityIcon,
PersonaIcon,
PineconeIcon,
PipedriveIcon,
PolymarketIcon,
@@ -379,6 +380,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
parallel_ai: ParallelIcon,
peopledatalabs: PeopleDataLabsIcon,
perplexity: PerplexityIcon,
persona: PersonaIcon,
pinecone: PineconeIcon,
pipedrive: PipedriveIcon,
polymarket: PolymarketIcon,