@@ -18,6 +18,7 @@ import {
1818} from '../tools/prompts'
1919import { parseUserMessage } from '../util/messages'
2020
21+ import type { Logger } from '@codebuff/types/logger'
2122import type { AgentTemplate , PlaceholderValue } from './types'
2223import type {
2324 AgentState ,
@@ -34,6 +35,7 @@ export async function formatPrompt({
3435 agentTemplates,
3536 intitialAgentPrompt,
3637 additionalToolDefinitions,
38+ logger,
3739} : {
3840 prompt : string
3941 fileContext : ProjectFileContext
@@ -45,6 +47,7 @@ export async function formatPrompt({
4547 additionalToolDefinitions : ( ) => Promise <
4648 ProjectFileContext [ 'customToolDefinitions' ]
4749 >
50+ logger : Logger
4851} ) : Promise < string > {
4952 const { messageHistory } = agentState
5053 const lastUserMessage = messageHistory . findLast (
@@ -66,9 +69,19 @@ export async function formatPrompt({
6669 agentTemplate ? agentTemplate . displayName || 'Unknown Agent' : 'Buffy' ,
6770 [ PLACEHOLDER . CONFIG_SCHEMA ] : ( ) => schemaToJsonStr ( CodebuffConfigSchema ) ,
6871 [ PLACEHOLDER . FILE_TREE_PROMPT_SMALL ] : ( ) =>
69- getProjectFileTreePrompt ( fileContext , 2_500 , 'agent' ) ,
72+ getProjectFileTreePrompt ( {
73+ fileContext,
74+ fileTreeTokenBudget : 2_500 ,
75+ mode : 'agent' ,
76+ logger,
77+ } ) ,
7078 [ PLACEHOLDER . FILE_TREE_PROMPT ] : ( ) =>
71- getProjectFileTreePrompt ( fileContext , 10_000 , 'agent' ) ,
79+ getProjectFileTreePrompt ( {
80+ fileContext,
81+ fileTreeTokenBudget : 10_000 ,
82+ mode : 'agent' ,
83+ logger,
84+ } ) ,
7285 [ PLACEHOLDER . GIT_CHANGES_PROMPT ] : ( ) => getGitChangesPrompt ( fileContext ) ,
7386 [ PLACEHOLDER . REMAINING_STEPS ] : ( ) => `${ agentState . stepsRemaining ! } ` ,
7487 [ PLACEHOLDER . PROJECT_ROOT ] : ( ) => fileContext . projectRoot ,
@@ -142,6 +155,7 @@ export async function getAgentPrompt<T extends StringField>({
142155 agentState,
143156 agentTemplates,
144157 additionalToolDefinitions,
158+ logger,
145159} : {
146160 agentTemplate : AgentTemplate
147161 promptType : { type : T }
@@ -151,6 +165,7 @@ export async function getAgentPrompt<T extends StringField>({
151165 additionalToolDefinitions : ( ) => Promise <
152166 ProjectFileContext [ 'customToolDefinitions' ]
153167 >
168+ logger : Logger
154169} ) : Promise < string | undefined > {
155170 let promptValue = agentTemplate [ promptType . type ]
156171 for ( const placeholder of additionalPlaceholders [ promptType . type ] ) {
@@ -171,6 +186,7 @@ export async function getAgentPrompt<T extends StringField>({
171186 spawnableAgents : agentTemplate . spawnableAgents ,
172187 agentTemplates,
173188 additionalToolDefinitions,
189+ logger,
174190 } )
175191
176192 let addendum = ''
0 commit comments