MCPcopy Create free account
hub / github.com/WJX20/claude-code / getTaskReminderTurnCounts

Function getTaskReminderTurnCounts

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

Source from the content-addressed store, hash-verified

3318}
3319
3320function getTaskReminderTurnCounts(messages: Message[]): {
3321 turnsSinceLastTaskManagement: number
3322 turnsSinceLastReminder: number
3323} {
3324 let lastTaskManagementIndex = -1
3325 let lastReminderIndex = -1
3326 let assistantTurnsSinceTaskManagement = 0
3327 let assistantTurnsSinceReminder = 0
3328
3329 // Iterate backwards to find most recent events
3330 for (let i = messages.length - 1; i >= 0; i--) {
3331 const message = messages[i]
3332
3333 if (message?.type === 'assistant') {
3334 if (isThinkingMessage(message)) {
3335 // Skip thinking messages
3336 continue
3337 }
3338
3339 // Check for TaskCreate or TaskUpdate usage BEFORE incrementing counter
3340 if (
3341 lastTaskManagementIndex === -1 &&
3342 'message' in message &&
3343 Array.isArray(message.message?.content) &&
3344 message.message.content.some(
3345 block =>
3346 block.type === 'tool_use' &&
3347 (block.name === TASK_CREATE_TOOL_NAME ||
3348 block.name === TASK_UPDATE_TOOL_NAME),
3349 )
3350 ) {
3351 lastTaskManagementIndex = i
3352 }
3353
3354 // Count assistant turns before finding events
3355 if (lastTaskManagementIndex === -1) assistantTurnsSinceTaskManagement++
3356 if (lastReminderIndex === -1) assistantTurnsSinceReminder++
3357 } else if (
3358 lastReminderIndex === -1 &&
3359 message?.type === 'attachment' &&
3360 message.attachment.type === 'task_reminder'
3361 ) {
3362 lastReminderIndex = i
3363 }
3364
3365 if (lastTaskManagementIndex !== -1 && lastReminderIndex !== -1) {
3366 break
3367 }
3368 }
3369
3370 return {
3371 turnsSinceLastTaskManagement: assistantTurnsSinceTaskManagement,
3372 turnsSinceLastReminder: assistantTurnsSinceReminder,
3373 }
3374}
3375
3376async function getTaskReminderAttachments(
3377 messages: Message[] | undefined,

Callers 1

Calls 1

isThinkingMessageFunction · 0.85

Tested by

no test coverage detected