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