File tree 5 files changed +27
-0
lines changed
5 files changed +27
-0
lines changed Original file line number Diff line number Diff line change @@ -131,6 +131,9 @@ export class Responder {
131
131
if ( contentSnapshot ?. length ) {
132
132
contentSnapshot = cleanContent ( contentSnapshot ) ;
133
133
if ( this . latestContent !== contentSnapshot ) {
134
+ if ( this . latestReasoning === thinkingMessage ) {
135
+ this . latestReasoning = '' ;
136
+ }
134
137
this . latestContent = contentSnapshot ;
135
138
await this . sendMessageEventWithThrottling ( ) ;
136
139
}
Original file line number Diff line number Diff line change @@ -60,6 +60,7 @@ interface Signature {
60
60
Element: HTMLDivElement ;
61
61
Args: {
62
62
formattedMessage: SafeString ;
63
+ formattedReasoningContent? : SafeString | null ;
63
64
datetime: Date ;
64
65
isFromAssistant: boolean ;
65
66
isStreaming: boolean ;
@@ -229,6 +230,12 @@ export default class AiAssistantMessage extends Component<Signature> {
229
230
</div >
230
231
{{/if }}
231
232
233
+ {{#if @ formattedReasoningContent }}
234
+ <div class =' reasoning-content' >
235
+ {{@ formattedReasoningContent }}
236
+ </div >
237
+ {{/if }}
238
+
232
239
<div class =' content' data-test-ai-message-content >
233
240
{{#if ( and @ isFromAssistant @ isStreaming) }}
234
241
<FormattedMessage
@@ -407,6 +414,12 @@ export default class AiAssistantMessage extends Component<Signature> {
407
414
margin-top : var (--boxel-sp );
408
415
}
409
416
417
+ .reasoning-content {
418
+ font-size : var (--boxel-font-xs );
419
+ letter-spacing : var (--boxel-lsp-xs );
420
+ color : var (--boxel-450 );
421
+ }
422
+
410
423
.error-container {
411
424
display : grid ;
412
425
grid-template-columns : auto 1fr auto ;
Original file line number Diff line number Diff line change @@ -105,6 +105,9 @@ export default class RoomMessage extends Component<Signature> {
105
105
@ formattedMessage ={{htmlSafe
106
106
( markdownToHtml this . message.formattedMessage)
107
107
}}
108
+ @ formattedReasoningContent ={{htmlSafe
109
+ ( markdownToHtml this . message.reasoningContent)
110
+ }}
108
111
@ monacoSDK ={{@ monacoSDK }}
109
112
@ datetime ={{this .message.created }}
110
113
@ index ={{@ index }}
Original file line number Diff line number Diff line change @@ -79,6 +79,9 @@ export default class MessageBuilder {
79
79
eventId : this . builderContext . effectiveEventId ,
80
80
index : this . builderContext . index ,
81
81
attachedFiles : this . attachedFiles ,
82
+ reasoningContent :
83
+ ( this . event . content as CardMessageContent ) [ 'app.boxel.reasoning' ] ||
84
+ null ,
82
85
} ) ;
83
86
}
84
87
@@ -156,6 +159,8 @@ export default class MessageBuilder {
156
159
157
160
message . message = this . event . content . body ;
158
161
message . formattedMessage = this . event . content . formatted_body ;
162
+ message . reasoningContent =
163
+ ( this . event . content as CardMessageContent ) [ 'app.boxel.reasoning' ] || null ;
159
164
message . isStreamingFinished =
160
165
'isStreamingFinished' in this . event . content
161
166
? this . event . content . isStreamingFinished
Original file line number Diff line number Diff line change @@ -46,13 +46,15 @@ interface RoomMessageOptional {
46
46
index ?: number ;
47
47
errorMessage ?: string ;
48
48
clientGeneratedId ?: string | null ;
49
+ reasoningContent ?: string | null ;
49
50
}
50
51
51
52
export class Message implements RoomMessageInterface {
52
53
@tracked formattedMessage : string ;
53
54
@tracked message : string ;
54
55
@tracked commands : TrackedArray < MessageCommand > ;
55
56
@tracked isStreamingFinished ?: boolean ;
57
+ @tracked reasoningContent ?: string | null ;
56
58
57
59
attachedCardIds ?: string [ ] | null ;
58
60
attachedFiles ?: FileDef [ ] ;
@@ -83,6 +85,7 @@ export class Message implements RoomMessageInterface {
83
85
this . status = init . status ;
84
86
this . roomId = init . roomId ;
85
87
this . attachedFiles = init . attachedFiles ;
88
+ this . reasoningContent = init . reasoningContent ;
86
89
this . commands = new TrackedArray < MessageCommand > ( ) ;
87
90
this . instanceId = guidFor ( this ) ;
88
91
}
You can’t perform that action at this time.
0 commit comments