MCPcopy Index your code
hub / github.com/claude-code-best/claude-code / getTaskReminderTurnCounts

Function getTaskReminderTurnCounts

src/utils/attachments.ts:3401–3455  ·  view source on GitHub ↗
(messages: Message[])

Source from the content-addressed store, hash-verified

3399}
3400
3401function getTaskReminderTurnCounts(messages: Message[]): {
3402 turnsSinceLastTaskManagement: number
3403 turnsSinceLastReminder: number
3404} {
3405 let lastTaskManagementIndex = -1
3406 let lastReminderIndex = -1
3407 let assistantTurnsSinceTaskManagement = 0
3408 let assistantTurnsSinceReminder = 0
3409
3410 // Iterate backwards to find most recent events
3411 for (let i = messages.length - 1; i >= 0; i--) {
3412 const message = messages[i]
3413
3414 if (message?.type === 'assistant') {
3415 if (isThinkingMessage(message)) {
3416 // Skip thinking messages
3417 continue
3418 }
3419
3420 // Check for TaskCreate or TaskUpdate usage BEFORE incrementing counter
3421 if (
3422 lastTaskManagementIndex === -1 &&
3423 'message' in message &&
3424 Array.isArray(message.message?.content) &&
3425 message.message.content.some(
3426 block =>
3427 block.type === 'tool_use' &&
3428 (block.name === TASK_CREATE_TOOL_NAME ||
3429 block.name === TASK_UPDATE_TOOL_NAME),
3430 )
3431 ) {
3432 lastTaskManagementIndex = i
3433 }
3434
3435 // Count assistant turns before finding events
3436 if (lastTaskManagementIndex === -1) assistantTurnsSinceTaskManagement++
3437 if (lastReminderIndex === -1) assistantTurnsSinceReminder++
3438 } else if (
3439 lastReminderIndex === -1 &&
3440 message?.type === 'attachment' &&
3441 message.attachment!.type === 'task_reminder'
3442 ) {
3443 lastReminderIndex = i
3444 }
3445
3446 if (lastTaskManagementIndex !== -1 && lastReminderIndex !== -1) {
3447 break
3448 }
3449 }
3450
3451 return {
3452 turnsSinceLastTaskManagement: assistantTurnsSinceTaskManagement,
3453 turnsSinceLastReminder: assistantTurnsSinceReminder,
3454 }
3455}
3456
3457async function getTaskReminderAttachments(
3458 messages: Message[] | undefined,

Callers 1

Calls 1

isThinkingMessageFunction · 0.85

Tested by

no test coverage detected