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 -----------------------------------------------------------------