File size: 950 Bytes
fdc8b59
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import React from 'react'
import { MessageResponse } from '../../components/MessageResponse.js'
import { Text } from '../../ink.js'
import type { Output } from './GoalUpdateTool.js'

export function renderToolUseMessage(input: {
  status?: 'complete' | 'blocked'
}): React.ReactNode {
  const verb = input.status === 'blocked' ? 'blocked' : 'complete'
  return <Text dimColor>marking goal {verb}...</Text>
}

export function renderToolResultMessage(output: Output): React.ReactNode {
  const color =
    output.status === 'complete'
      ? 'green'
      : output.status === 'blocked'
        ? 'yellow'
        : 'gray'
  const label =
    output.status === 'no-active-goal' || output.status === 'stale-goal'
      ? output.message
      : `Goal ${output.status}`
  return (
    <MessageResponse>
      <Text>
        <Text color={color}>{label}</Text>
        {output.reason ? ` · ${output.reason}` : ''}
      </Text>
    </MessageResponse>
  )
}