Skip to content

Commit c6e26af

Browse files
committed
Add safe string handling for activity data properties
Use typeof check and trim to avoid displaying 'undefined' for missing properties in THOUGHT_CHUNK, TOOL_CALL_START, TOOL_CALL_END, and ERROR events. TAG=agy CONV=d4b1d79a-226d-4301-8d60-bdb5d4701569
1 parent c90431c commit c6e26af

1 file changed

Lines changed: 9 additions & 5 deletions

File tree

packages/core/src/agents/local-session-invocation.ts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,8 @@ export class LocalSessionInvocation extends BaseToolInvocation<
126126

127127
switch (activity.type) {
128128
case 'THOUGHT_CHUNK': {
129-
const text = String(activity.data['text']);
129+
const rawText = activity.data['text'];
130+
const text = typeof rawText === 'string' ? rawText.trim() : '';
130131
const lastItem = recentActivity[recentActivity.length - 1];
131132

132133
if (
@@ -152,9 +153,10 @@ export class LocalSessionInvocation extends BaseToolInvocation<
152153
break;
153154
}
154155
case 'TOOL_CALL_START': {
155-
const name = String(activity.data['name']);
156+
const rawName = activity.data['name'];
157+
const name = typeof rawName === 'string' ? rawName.trim() : '';
156158
const displayName = activity.data['displayName']
157-
? sanitizeErrorMessage(String(activity.data['displayName']))
159+
? sanitizeErrorMessage(String(activity.data['displayName']).trim())
158160
: undefined;
159161
const description = activity.data['description']
160162
? sanitizeErrorMessage(String(activity.data['description']))
@@ -178,7 +180,8 @@ export class LocalSessionInvocation extends BaseToolInvocation<
178180
break;
179181
}
180182
case 'TOOL_CALL_END': {
181-
const name = String(activity.data['name']);
183+
const rawName = activity.data['name'];
184+
const name = typeof rawName === 'string' ? rawName.trim() : '';
182185
const data = activity.data['data'];
183186
const isError = isToolActivityError(data);
184187

@@ -198,7 +201,8 @@ export class LocalSessionInvocation extends BaseToolInvocation<
198201
break;
199202
}
200203
case 'ERROR': {
201-
const error = String(activity.data['error']);
204+
const rawError = activity.data['error'];
205+
const error = typeof rawError === 'string' ? rawError.trim() : '';
202206
const errorType = activity.data['errorType'];
203207
const sanitizedError = sanitizeErrorMessage(error);
204208
const isCancellation =

0 commit comments

Comments
 (0)