import React from 'react'; import { MessageResponse } from 'src/components/MessageResponse.js'; import { Text } from '@anthropic/ink'; import { truncate } from 'src/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 -----------------------------------------------------------------