@@ -51,7 +51,7 @@ import {
5151 entityAuthorUri , transitionAgentUri , transitionAtISO ,
5252 shortType , shortPred , entityMeta ,
5353 buildLayerGraphOptions , getDescription , neighborhoodTriples ,
54- matchesSearch , humanizeLabel , useLayerTriples ,
54+ matchesSearch , humanizeLabel , layerNoun , useLayerTriples ,
5555 entityTimestamp , formatRelativeTime , formatTimelineBucket , formatTrailTimestamp ,
5656 type LayerView , type LayerContentTab , type KAPane ,
5757 type SubGraphTab , type SubGraphEntitySort ,
@@ -602,7 +602,7 @@ export function MemoryStrip({
602602 < div className = "v10-layer-items" >
603603 < span className = "v10-layer-chevron" > ▸</ span >
604604 { layer . entities . length === 0 && (
605- < span style = { { fontSize : 11 , color : 'var(--text-tertiary)' , fontStyle : 'italic' } } > No assets yet</ span >
605+ < span style = { { fontSize : 11 , color : 'var(--text-tertiary)' , fontStyle : 'italic' } } > No { layerNoun ( layer . key , 2 ) . toLowerCase ( ) } yet</ span >
606606 ) }
607607 { layer . entities . slice ( 0 , 6 ) . map ( e => {
608608 const { icon } = entityMeta ( e , profile ) ;
@@ -782,7 +782,7 @@ export function LayerStatsWidget({ entities, entityCount, triples, layer }: {
782782 < GenWidget title = "Layer Stats" >
783783 < div className = "v10-layer-summary" >
784784 < div className = "v10-layer-summary-stat" >
785- < span className = "v10-layer-summary-label" > Knowledge Assets </ span >
785+ < span className = "v10-layer-summary-label" > { layerNoun ( layer , entityCount ) } </ span >
786786 < span className = "v10-layer-summary-value" > { entityCount } </ span >
787787 </ div >
788788 < div className = "v10-layer-summary-stat" >
@@ -849,12 +849,13 @@ export function LayerActionsWidget({ layer, count, contextGraphId, onComplete }:
849849
850850 if ( count === 0 ) return null ;
851851 const color = isWm ? '#f59e0b' : '#22c55e' ;
852- const target = isWm ? 'Shared Memory' : 'Verified Memory' ;
852+ const target = isWm ? 'Shared Working Memory' : 'Verified Memory' ;
853+ const noun = layerNoun ( layer , count ) . toLowerCase ( ) ;
853854
854855 return (
855- < GenWidget title = { isWm ? 'Promote' : 'Publish' } footnote = { `Moves assets from this layer to ${ target } .` } >
856+ < GenWidget title = { isWm ? 'Promote' : 'Publish' } footnote = { `Moves ${ noun } from this layer to ${ target } .` } >
856857 < div className = "v10-decision-context" style = { { marginBottom : 10 } } >
857- { count } asset { count !== 1 ? 's' : '' } in this layer can be { isWm ? 'promoted to Shared Memory for collaborative review' : 'published to Verified Memory on-chain' } .
858+ { count } { noun } in this layer can be { isWm ? 'promoted to Shared Working Memory for collaborative review' : 'published to Verified Memory on-chain' } .
858859 </ div >
859860 { result && < div style = { { fontSize : 11 , color : 'var(--text-success)' , marginBottom : 8 } } > ✓ { result } </ div > }
860861 { error && < div style = { { fontSize : 11 , color : 'var(--text-danger)' , marginBottom : 8 } } > ✕ { error } </ div > }
@@ -944,6 +945,7 @@ export function EntityList({
944945} ) {
945946 const profile = useProjectProfileContext ( ) ;
946947 const agents = useAgentsContext ( ) ;
948+ const noun = layerNoun ( layerKey , entities . length ) . toLowerCase ( ) ;
947949 const sorted = useMemo ( ( ) => {
948950 if ( externallySorted ) return entities ;
949951 const copy = [ ...entities ] ;
@@ -960,7 +962,7 @@ export function EntityList({
960962 if ( entities . length === 0 ) {
961963 return (
962964 < div className = "v10-entity-list empty" >
963- < div className = "v10-entity-list-empty" > No entities in this layer yet.</ div >
965+ < div className = "v10-entity-list-empty" > No { layerNoun ( layerKey , 2 ) . toLowerCase ( ) } in this layer yet.</ div >
964966 </ div >
965967 ) ;
966968 }
@@ -970,7 +972,7 @@ export function EntityList({
970972 return (
971973 < div className = "v10-entity-list" >
972974 < div className = "v10-entity-list-header" >
973- < span className = "v10-entity-list-count" > { sorted . length } entit { sorted . length === 1 ? 'y' : 'ies' } </ span >
975+ < span className = "v10-entity-list-count" > { sorted . length } { noun } </ span >
974976 < span className = "v10-entity-list-hint" > { hint } </ span >
975977 { headerExtra && < span className = "v10-entity-list-extra" > { headerExtra } </ span > }
976978 </ div >
@@ -1051,7 +1053,7 @@ export function LayerContent({
10511053 footer ?: React . ReactNode ;
10521054} ) {
10531055 const config = LAYER_CONFIG [ layer ] ;
1054- const itemsLabel = layer === 'vm' ? 'Knowledge Assets' : 'Entities' ;
1056+ const itemsLabel = layerNoun ( layer , 2 ) ;
10551057 const vmLayerStatus = memory . layerStatus ?. vm ?? ( memory . loading ? 'loading' : memory . error ? 'error' : 'ok' ) ;
10561058 const isInitialVerifiedMemoryLoad = layer === 'vm' && vmLayerStatus === 'loading' && entities . length === 0 ;
10571059 const isVerifiedMemoryUnavailable = layer === 'vm' && vmLayerStatus === 'error' && entities . length === 0 ;
@@ -1989,9 +1991,9 @@ export function DocumentsList({
19891991
19901992export function ProvenanceBar ( { memory } : { memory : ReturnType < typeof useMemoryEntities > } ) {
19911993 const latestEvent = useMemo ( ( ) => {
1992- if ( memory . counts . vm > 0 ) return `${ memory . counts . vm } knowledge assets verified on-chain` ;
1993- if ( memory . counts . swm > 0 ) return `${ memory . counts . swm } assets in shared memory` ;
1994- if ( memory . counts . wm > 0 ) return `${ memory . counts . wm } drafts in working memory` ;
1994+ if ( memory . counts . vm > 0 ) return `${ memory . counts . vm } ${ layerNoun ( 'vm' , memory . counts . vm ) . toLowerCase ( ) } verified on-chain` ;
1995+ if ( memory . counts . swm > 0 ) return `${ memory . counts . swm } ${ layerNoun ( 'swm' , memory . counts . swm ) . toLowerCase ( ) } in shared working memory` ;
1996+ if ( memory . counts . wm > 0 ) return `${ memory . counts . wm } ${ layerNoun ( 'wm' , memory . counts . wm ) . toLowerCase ( ) } in working memory` ;
19951997 return 'No activity yet' ;
19961998 } , [ memory . counts ] ) ;
19971999
@@ -2233,6 +2235,7 @@ export function KADetailView({ entity, allEntities, allTriples, onNavigate, onCl
22332235 const author = authorUri ? agents ?. get ( authorUri ) ?? null : null ;
22342236 const layerBadge = entity . trustLevel === 'verified' ? 'vm' : entity . trustLevel === 'shared' ? 'swm' : 'wm' ;
22352237 const layerLabel = entity . trustLevel === 'verified' ? 'Verified Memory' : entity . trustLevel === 'shared' ? 'Shared Working Memory' : 'Working Memory' ;
2238+ const detailNoun = layerNoun ( entity . trustLevel , 1 ) ;
22362239
22372240 const incoming = useMemo ( ( ) => {
22382241 const result : Array < { pred : string ; entity : MemoryEntity } > = [ ] ;
@@ -2294,7 +2297,7 @@ export function KADetailView({ entity, allEntities, allTriples, onNavigate, onCl
22942297 < div className = "v10-ka-header" >
22952298 < button className = "v10-ka-back" onClick = { onClose } > ← Back to Context Graph</ button >
22962299 < div className = "v10-ka-header-left" >
2297- < div className = "v10-ka-label" > Knowledge Asset </ div >
2300+ < div className = "v10-ka-label" > { detailNoun } </ div >
22982301 < div className = "v10-ka-name" >
22992302 { icon } { entity . label }
23002303 < span className = { `v10-trust-badge ${ layerBadge } ` } > { layerLabel } </ span >
0 commit comments