MCPcopy
hub / github.com/CodebuffAI/codebuff / getPreviouslyReadFiles

Function getPreviouslyReadFiles

packages/agent-runtime/src/util/messages.ts:400–456  ·  view source on GitHub ↗
(params: {
  messages: Message[]
  logger: Logger
})

Source from the content-addressed store, hash-verified

398}
399
400export function getPreviouslyReadFiles(params: {
401 messages: Message[]
402 logger: Logger
403}): {
404 path: string
405 content: string
406 referencedBy?: Record<string, string[]>
407}[] {
408 const { messages, logger } = params
409 const files: ReturnType<typeof getPreviouslyReadFiles> = []
410 for (const message of messages) {
411 if (message.role !== 'tool') continue
412 if (message.toolName === 'read_files') {
413 try {
414 files.push(
415 ...(
416 message as CodebuffToolMessage<'read_files'>
417 ).content[0].value.filter(
418 (
419 file,
420 ): file is typeof file & { contentOmittedForLength: undefined } =>
421 !('contentOmittedForLength' in file),
422 ),
423 )
424 } catch (error) {
425 logger.error(
426 { error: getErrorObject(error), message },
427 'Error parsing read_files output from message',
428 )
429 }
430 }
431
432 if (message.toolName === 'find_files') {
433 try {
434 const v = (message as CodebuffToolMessage<'find_files'>).content[0]
435 .value
436 if ('message' in v) {
437 continue
438 }
439 files.push(
440 ...v.filter(
441 (
442 file,
443 ): file is typeof file & { contentOmittedForLength: undefined } =>
444 !('contentOmittedForLength' in file),
445 ),
446 )
447 } catch (error) {
448 logger.error(
449 { error: getErrorObject(error), message },
450 'Error parsing find_files output from message',
451 )
452 }
453 }
454 }
455 return files
456}

Callers 1

messages.test.tsFile · 0.90

Calls 1

getErrorObjectFunction · 0.90

Tested by

no test coverage detected