codetether_agent/session/helper/
loop_constants.rs1pub(crate) const BUILD_MODE_TOOL_FIRST_NUDGE: &str = "Build mode policy reminder: execute directly. \
12Start by calling at least one appropriate tool now (or emit <tool_call> markup for non-native \
13tool providers). Do not ask for permission and do not provide a plan-only response.";
14
15pub(crate) const BUILD_MODE_TOOL_FIRST_MAX_RETRIES: u8 = 2;
18
19pub(crate) const NATIVE_TOOL_PROMISE_RETRY_MAX_RETRIES: u8 = 1;
22
23pub(crate) const MAX_CONSECUTIVE_CODESEARCH_NO_MATCHES: u32 = 5;
26
27pub(crate) const POST_EDIT_VALIDATION_MAX_RETRIES: u8 = 3;
30
31pub(crate) const MAX_CONSECUTIVE_SAME_TOOL: u32 = 3;
34
35pub(crate) const CODESEARCH_THRASH_NUDGE: &str = "Stop brute-force codesearch variant retries. \
38You already got repeated \"No matches found\" results. Do not try punctuation/casing/underscore \
39variants of the same token again. Either switch to a broader strategy (e.g., inspect likely files \
40directly) or conclude the identifier is absent and continue with the best available evidence.";
41
42pub(crate) const NATIVE_TOOL_PROMISE_NUDGE: &str = "You said you would use tools. Do not describe the tool \
45call or promise a next step. Emit the actual tool call now. If native tool calling fails, emit a \
46<tool_call> JSON block immediately instead of prose.";
47
48pub(crate) const FORCE_FINAL_ANSWER_NUDGE: &str = "STOP using tools. Provide your final answer NOW \
50in plain text based on the tool results you already received. Do NOT output any <tool_call> blocks.";