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

Function getTaskReminderTurnCounts

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

Source from the content-addressed store, hash-verified

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

Callers 1

Calls 1

isThinkingMessageFunction · 0.85

Tested by

no test coverage detected