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