import React from 'react' import { MessageResponse } from '../../components/MessageResponse.js' import { Text } from '../../ink.js' import { truncate } from '../../utils/format.js' import type { CreateOutput } from './CronCreateTool.js' import type { DeleteOutput } from './CronDeleteTool.js' import type { ListOutput } from './CronListTool.js' // --- CronCreate ------------------------------------------------------------- export function renderCreateToolUseMessage( input: Partial<{ cron: string; prompt: string }>, ): React.ReactNode { return `${input.cron ?? ''}${input.prompt ? `: ${truncate(input.prompt, 60, true)}` : ''}` } export function renderCreateResultMessage( output: CreateOutput, ): React.ReactNode { return ( Scheduled {output.id}{' '} ({output.humanSchedule}) ) } // --- CronDelete ------------------------------------------------------------- export function renderDeleteToolUseMessage( input: Partial<{ id: string }>, ): React.ReactNode { return input.id ?? '' } export function renderDeleteResultMessage( output: DeleteOutput, ): React.ReactNode { return ( Cancelled {output.id} ) } // --- CronList --------------------------------------------------------------- export function renderListToolUseMessage(): React.ReactNode { return '' } export function renderListResultMessage(output: ListOutput): React.ReactNode { if (output.jobs.length === 0) { return ( No scheduled jobs ) } return ( {output.jobs.map(j => ( {j.id} {j.humanSchedule} ))} ) } // --- Shared -----------------------------------------------------------------