@@ -221,6 +221,8 @@ func NewToolMessageItem(
221 item = NewJobKillToolMessageItem(sty, toolCall, result, canceled)
221 item = NewJobKillToolMessageItem(sty, toolCall, result, canceled)
222 case tools.ViewToolName:
222 case tools.ViewToolName:
223 item = NewViewToolMessageItem(sty, toolCall, result, canceled)
223 item = NewViewToolMessageItem(sty, toolCall, result, canceled)
224+ case tools.TouchToolName:
225+ item = NewTouchToolMessageItem(sty, toolCall, result, canceled)
224 case tools.WriteToolName:
226 case tools.WriteToolName:
225 item = NewWriteToolMessageItem(sty, toolCall, result, canceled)
227 item = NewWriteToolMessageItem(sty, toolCall, result, canceled)
226 case tools.EditToolName:
228 case tools.EditToolName:
@@ -1076,6 +1078,11 @@ func (t *baseToolMessageItem) formatParametersForCopy() string {
1076 parts = append(parts, fmt.Sprintf("**Edits:** %d", len(params.Edits)))
1078 parts = append(parts, fmt.Sprintf("**Edits:** %d", len(params.Edits)))
1077 return strings.Join(parts, "\n")
1079 return strings.Join(parts, "\n")
1081+ case tools.TouchToolName:
1082+ var params tools.TouchParams
1083+ if json.Unmarshal([]byte(t.toolCall.Input), ¶ms) == nil {
1084+ return fmt.Sprintf("**File:** %s", fsext.PrettyPath(params.FilePath))
1079 case tools.WriteToolName:
1086 case tools.WriteToolName:
1080 var params tools.WriteParams
1087 var params tools.WriteParams
1081 if json.Unmarshal([]byte(t.toolCall.Input), ¶ms) == nil {
1088 if json.Unmarshal([]byte(t.toolCall.Input), ¶ms) == nil {
@@ -1217,6 +1224,8 @@ func (t *baseToolMessageItem) formatResultForCopy() string {
1217 return t.formatEditResultForCopy()
1224 return t.formatEditResultForCopy()
1218 case tools.MultiEditToolName:
1225 case tools.MultiEditToolName:
1219 return t.formatMultiEditResultForCopy()
1226 return t.formatMultiEditResultForCopy()
1227+ case tools.TouchToolName:
1228+ return t.formatTouchResultForCopy()
1220 case tools.WriteToolName:
1229 case tools.WriteToolName:
1221 return t.formatWriteResultForCopy()
1230 return t.formatWriteResultForCopy()
1222 case tools.FetchToolName:
1231 case tools.FetchToolName:
@@ -1390,6 +1399,20 @@ func (t *baseToolMessageItem) formatMultiEditResultForCopy() string {
1390 return result.String()
1399 return result.String()
1402+// formatTouchResultForCopy formats touch tool results for clipboard.
1403+func (t *baseToolMessageItem) formatTouchResultForCopy() string {
1404+ if t.result == nil {
1408+ var params tools.TouchParams
1409+ if json.Unmarshal([]byte(t.toolCall.Input), ¶ms) != nil {
1410+ return t.result.Content
1413+ return fmt.Sprintf("File: %s\n```\n```", fsext.PrettyPath(params.FilePath))
1393// formatWriteResultForCopy formats write tool results for clipboard.
1416// formatWriteResultForCopy formats write tool results for clipboard.
1394func (t *baseToolMessageItem) formatWriteResultForCopy() string {
1417func (t *baseToolMessageItem) formatWriteResultForCopy() string {
1395 if t.result == nil {
1418 if t.result == nil {
@@ -1575,6 +1598,8 @@ func prettifyToolName(name string) string {
1575 return "Sourcegraph"
1598 return "Sourcegraph"
1576 case tools.TodosToolName:
1599 case tools.TodosToolName:
1577 return "To-Do"
1600 return "To-Do"
1601+ case tools.TouchToolName:
1578 case tools.ViewToolName:
1603 case tools.ViewToolName:
1579 return "View"
1604 return "View"
1580 case tools.WriteToolName:
1605 case tools.WriteToolName: