This commit is contained in:
jif-oai
2025-10-30 15:48:24 +00:00
parent 0bba25eff3
commit 43f7733ad7
4 changed files with 68 additions and 41 deletions
+19 -17
View File
@@ -941,15 +941,15 @@ impl Session {
let mut previous_response_id = None;
let mut request_items = full_prompt_items.clone();
if let Some(chain) = state.responses_api_chain() {
if let Some(prev_id) = chain.last_response_id {
let prefix = common_prefix_len(&chain.last_prompt_items, &full_prompt_items);
if prefix == 0 && !chain.last_prompt_items.is_empty() {
state.reset_responses_api_chain();
} else {
previous_response_id = Some(prev_id);
request_items = full_prompt_items[prefix..].to_vec();
}
if let Some(chain) = state.responses_api_chain()
&& let Some(prev_id) = chain.last_response_id
{
let prefix = common_prefix_len(&chain.last_prompt_items, &full_prompt_items);
if prefix == 0 && !chain.last_prompt_items.is_empty() {
state.reset_responses_api_chain();
} else {
previous_response_id = Some(prev_id);
request_items = full_prompt_items[prefix..].to_vec();
}
}
@@ -1949,14 +1949,16 @@ async fn run_turn(
.get_model_family()
.supports_parallel_tool_calls;
let parallel_tool_calls = model_supports_parallel;
let mut prompt = Prompt::default();
prompt.instructions = instructions.clone();
prompt.input = request_items;
prompt.tools = tools_json;
prompt.parallel_tool_calls = parallel_tool_calls;
prompt.output_schema = turn_context.final_output_json_schema.clone();
prompt.store_response = store_response;
prompt.previous_response_id = previous_response_id.clone();
let prompt = Prompt {
instructions: instructions.clone(),
input: request_items,
tools: tools_json,
parallel_tool_calls,
output_schema: turn_context.final_output_json_schema.clone(),
store_response,
previous_response_id: previous_response_id.clone(),
..Default::default()
};
let payload = StreamPayload { prompt };
+13 -8
View File
@@ -88,20 +88,25 @@ async fn run_compact_task_inner(
let mut turn_input = history.get_history_for_prompt();
let turn_input_len = turn_input.len();
crate::conversation_history::format_prompt_items(&mut turn_input, false);
let mut prompt = Prompt::default();
prompt.input = turn_input;
prompt.tools = Vec::new();
prompt.parallel_tool_calls = false;
prompt.output_schema = None;
prompt.store_response = false;
let prompt = Prompt {
input: turn_input,
tools: Vec::new(),
parallel_tool_calls: false,
output_schema: None,
store_response: false,
..Default::default()
};
let instructions = crate::client_common::compute_full_instructions(
turn_context.base_instructions.as_deref(),
&turn_context.client.get_model_family(),
false,
)
.into_owned();
prompt.instructions = instructions.clone();
prompt.previous_response_id = None;
let prompt = Prompt {
instructions: instructions.clone(),
previous_response_id: None,
..prompt
};
let payload = StreamPayload { prompt };
let attempt_result = drain_to_completed(&sess, turn_context.as_ref(), payload).await;
+12 -7
View File
@@ -128,12 +128,14 @@ pub(crate) async fn assess_command(
}];
crate::conversation_history::format_prompt_items(&mut prompt_items, false);
let mut prompt = Prompt::default();
prompt.input = prompt_items;
prompt.tools = Vec::new();
prompt.parallel_tool_calls = false;
prompt.output_schema = Some(sandbox_assessment_schema());
prompt.store_response = false;
let prompt = Prompt {
input: prompt_items,
tools: Vec::new(),
parallel_tool_calls: false,
output_schema: Some(sandbox_assessment_schema()),
store_response: false,
..Default::default()
};
let instructions = crate::client_common::compute_full_instructions(
Some(system_prompt.as_str()),
&config.model_family,
@@ -141,7 +143,10 @@ pub(crate) async fn assess_command(
)
.into_owned();
prompt.instructions = instructions.clone();
let prompt = Prompt {
instructions: instructions.clone(),
..prompt
};
let payload = StreamPayload { prompt };
let child_otel =