File tree Expand file tree Collapse file tree 2 files changed +23
-5
lines changed
Expand file tree Collapse file tree 2 files changed +23
-5
lines changed Original file line number Diff line number Diff line change @@ -50,7 +50,7 @@ const AgentPartyGenerator = {
5050 <role>${ this . escapeXml ( agent . role || '' ) } </role>
5151 <identity>${ this . escapeXml ( agent . identity || '' ) } </identity>
5252 <communication_style>${ this . escapeXml ( agent . communicationStyle || '' ) } </communication_style>
53- <principles>${ agent . principles || '' } </principles>
53+ <principles>${ this . escapeXml ( agent . principles || '' ) } </principles>
5454 </persona>
5555 </agent>\n` ;
5656 }
Original file line number Diff line number Diff line change @@ -234,13 +234,31 @@ class YamlXmlBuilder {
234234 }
235235
236236 if ( persona . principles ) {
237- // Principles can be array or string
238- let principlesText ;
237+ // Principles can be array, object, or string
238+ let principlesText = '' ;
239+
240+ const stringifyEntry = ( entry ) => {
241+ if ( entry == null ) return '' ;
242+ if ( typeof entry === 'string' ) return entry ;
243+ if ( Array . isArray ( entry ) ) return entry . map ( stringifyEntry ) . filter ( Boolean ) . join ( ' ' ) ;
244+ if ( typeof entry === 'object' ) {
245+ const pairs = Object . entries ( entry ) . map ( ( [ k , v ] ) => {
246+ const vStr = Array . isArray ( v ) ? v . map ( String ) . join ( ' ' ) : String ( v ?? '' ) ;
247+ return `${ k } : ${ vStr } ` ;
248+ } ) ;
249+ return pairs . join ( ' ' ) ;
250+ }
251+ return String ( entry ) ;
252+ } ;
253+
239254 if ( Array . isArray ( persona . principles ) ) {
240- principlesText = persona . principles . join ( ' ' ) ;
255+ principlesText = persona . principles . map ( stringifyEntry ) . filter ( Boolean ) . join ( ' ' ) ;
256+ } else if ( typeof persona . principles === 'object' ) {
257+ principlesText = stringifyEntry ( persona . principles ) ;
241258 } else {
242- principlesText = persona . principles ;
259+ principlesText = String ( persona . principles ) ;
243260 }
261+
244262 xml += ` <principles>${ this . escapeXml ( principlesText ) } </principles>\n` ;
245263 }
246264
You can’t perform that action at this time.
0 commit comments