mirror of
https://github.com/block/goose.git
synced 2026-04-28 03:29:36 +00:00
feat(code-mode): use server names for MCP extensions (#6284)
Signed-off-by: Adrian Cole <adrian@tetrate.io>
This commit is contained in:
parent
454e98bb74
commit
d1f95757cf
19 changed files with 2142 additions and 1662 deletions
2936
Cargo.lock
generated
2936
Cargo.lock
generated
File diff suppressed because it is too large
Load diff
|
|
@ -6,36 +6,24 @@ crates/goose-cli/src/commands/configure.rs::configure_tool_permissions_dialog
|
|||
crates/goose-cli/src/commands/configure.rs::handle_configure
|
||||
crates/goose-cli/src/commands/project.rs::handle_project_default
|
||||
crates/goose-cli/src/commands/project.rs::handle_projects_interactive
|
||||
crates/goose-cli/src/commands/web.rs::handle_socket
|
||||
crates/goose-cli/src/commands/web.rs::process_message_streaming
|
||||
crates/goose-cli/src/session/builder.rs::build_session
|
||||
crates/goose-cli/src/session/export.rs::tool_response_to_markdown
|
||||
crates/goose-cli/src/session/mod.rs::handle_interrupted_messages
|
||||
crates/goose-cli/src/session/mod.rs::interactive
|
||||
crates/goose-cli/src/session/mod.rs::process_agent_response
|
||||
crates/goose-mcp/src/computercontroller/docx_tool.rs::docx_tool
|
||||
crates/goose-mcp/src/computercontroller/mod.rs::new
|
||||
crates/goose-mcp/src/computercontroller/mod.rs::quick_script
|
||||
crates/goose-mcp/src/computercontroller/mod.rs::xlsx_tool
|
||||
crates/goose-mcp/src/computercontroller/pdf_tool.rs::pdf_tool
|
||||
crates/goose-mcp/src/developer/mod.rs::bash
|
||||
crates/goose-mcp/src/developer/mod.rs::new
|
||||
crates/goose-mcp/src/memory/mod.rs::new
|
||||
crates/goose-server/src/openapi.rs::convert_typed_schema
|
||||
crates/goose-server/src/openapi.rs::convert_typed_schema
|
||||
crates/goose-server/src/routes/audio.rs::transcribe_elevenlabs_handler
|
||||
crates/goose-server/src/routes/audio.rs::transcribe_elevenlabs_handler
|
||||
crates/goose-server/src/routes/extension.rs::add_extension
|
||||
crates/goose-server/src/routes/extension.rs::add_extension
|
||||
crates/goose-server/src/routes/extension.rs::is_command_allowed_with_allowlist
|
||||
crates/goose-server/src/routes/extension.rs::is_command_allowed_with_allowlist
|
||||
crates/goose-server/src/routes/reply.rs::reply_handler
|
||||
crates/goose-server/src/routes/reply.rs::reply_handler
|
||||
crates/goose/src/agents/agent.rs::create_recipe
|
||||
crates/goose/src/agents/agent.rs::dispatch_tool_call
|
||||
crates/goose/src/agents/agent.rs::reply
|
||||
crates/goose/src/agents/agent.rs::reply_internal
|
||||
crates/goose/src/agents/extension_manager.rs::add_extension
|
||||
crates/goose/src/providers/azure.rs::post
|
||||
crates/goose/src/providers/databricks.rs::post_with_retry
|
||||
crates/goose/src/providers/formats/anthropic.rs::format_messages
|
||||
crates/goose/src/providers/formats/anthropic.rs::response_to_streaming_message<S>
|
||||
crates/goose/src/providers/formats/databricks.rs::format_messages
|
||||
|
|
@ -44,9 +32,3 @@ crates/goose/src/providers/formats/openai.rs::format_messages
|
|||
crates/goose/src/providers/formats/openai.rs::response_to_streaming_message<S>
|
||||
crates/goose/src/providers/gcpvertexai.rs::post_with_location
|
||||
crates/goose/src/providers/snowflake.rs::post
|
||||
crates/goose/src/scheduler.rs::add_scheduled_job
|
||||
crates/goose/src/scheduler.rs::load_jobs_from_storage
|
||||
crates/goose/src/scheduler.rs::run_scheduled_job_internal
|
||||
crates/goose/src/scheduler.rs::update_schedule
|
||||
crates/goose/src/session/storage.rs::read_messages_with_truncation
|
||||
crates/mcp-server/src/lib.rs::run<R, W>
|
||||
|
|
|
|||
|
|
@ -19,7 +19,8 @@ goose = { path = "../goose" }
|
|||
goose-bench = { path = "../goose-bench" }
|
||||
goose-mcp = { path = "../goose-mcp" }
|
||||
rmcp = { workspace = true }
|
||||
sacp = "9.0.0"
|
||||
sacp = "10.0.0-alpha.3"
|
||||
agent-client-protocol-schema = "0.10.5"
|
||||
clap = { version = "4.4", features = ["derive"] }
|
||||
cliclack = "0.3.5"
|
||||
console = "0.16.1"
|
||||
|
|
|
|||
|
|
@ -450,7 +450,17 @@ enum Command {
|
|||
|
||||
/// Run goose as an ACP (Agent Client Protocol) agent
|
||||
#[command(about = "Run goose as an ACP agent server on stdio")]
|
||||
Acp {},
|
||||
Acp {
|
||||
/// Add builtin extensions by name
|
||||
#[arg(
|
||||
long = "with-builtin",
|
||||
value_name = "NAME",
|
||||
help = "Add builtin extensions by name (e.g., 'developer' or multiple: 'developer,github')",
|
||||
long_help = "Add one or more builtin extensions that are bundled with goose by specifying their names, comma-separated",
|
||||
value_delimiter = ','
|
||||
)]
|
||||
builtins: Vec<String>,
|
||||
},
|
||||
|
||||
/// Start or resume interactive chat sessions
|
||||
#[command(
|
||||
|
|
@ -961,7 +971,7 @@ pub async fn cli() -> anyhow::Result<()> {
|
|||
Some(Command::Configure {}) => "configure",
|
||||
Some(Command::Info { .. }) => "info",
|
||||
Some(Command::Mcp { .. }) => "mcp",
|
||||
Some(Command::Acp {}) => "acp",
|
||||
Some(Command::Acp { .. }) => "acp",
|
||||
Some(Command::Session { .. }) => "session",
|
||||
Some(Command::Project {}) => "project",
|
||||
Some(Command::Projects) => "projects",
|
||||
|
|
@ -995,8 +1005,8 @@ pub async fn cli() -> anyhow::Result<()> {
|
|||
McpCommand::Developer => serve(DeveloperServer::new()).await?,
|
||||
}
|
||||
}
|
||||
Some(Command::Acp {}) => {
|
||||
run_acp_agent().await?;
|
||||
Some(Command::Acp { builtins }) => {
|
||||
run_acp_agent(builtins).await?;
|
||||
}
|
||||
Some(Command::Session {
|
||||
command,
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
use anyhow::Result;
|
||||
use goose::agents::extension::Envs;
|
||||
use goose::agents::extension::{Envs, PlatformExtensionContext, PLATFORM_EXTENSIONS};
|
||||
use goose::agents::{Agent, ExtensionConfig, SessionConfig};
|
||||
use goose::config::{get_all_extensions, Config};
|
||||
use goose::conversation::message::{ActionRequiredData, Message, MessageContent};
|
||||
|
|
@ -246,8 +246,34 @@ fn format_tool_name(tool_name: &str) -> String {
|
|||
}
|
||||
}
|
||||
|
||||
async fn add_builtins(agent: &Agent, builtins: Vec<String>) {
|
||||
for builtin in builtins {
|
||||
let config = if PLATFORM_EXTENSIONS.contains_key(builtin.as_str()) {
|
||||
ExtensionConfig::Platform {
|
||||
name: builtin.clone(),
|
||||
bundled: None,
|
||||
description: builtin.clone(),
|
||||
available_tools: Vec::new(),
|
||||
}
|
||||
} else {
|
||||
ExtensionConfig::Builtin {
|
||||
name: builtin.clone(),
|
||||
display_name: None,
|
||||
timeout: None,
|
||||
bundled: None,
|
||||
description: builtin.clone(),
|
||||
available_tools: Vec::new(),
|
||||
}
|
||||
};
|
||||
match agent.add_extension(config).await {
|
||||
Ok(_) => info!(extension = %builtin, "builtin extension loaded"),
|
||||
Err(e) => warn!(extension = %builtin, error = %e, "builtin extension load failed"),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl GooseAcpAgent {
|
||||
async fn new() -> Result<Self> {
|
||||
async fn new(builtins: Vec<String>) -> Result<Self> {
|
||||
let config = Config::global();
|
||||
|
||||
let provider_name: String = config
|
||||
|
|
@ -286,6 +312,16 @@ impl GooseAcpAgent {
|
|||
.collect();
|
||||
|
||||
let agent_ptr = Arc::new(agent);
|
||||
|
||||
// ACP loads the same default extensions as CLI
|
||||
agent_ptr
|
||||
.extension_manager
|
||||
.set_context(PlatformExtensionContext {
|
||||
session_id: Some(session.id.clone()),
|
||||
extension_manager: Some(Arc::downgrade(&agent_ptr.extension_manager)),
|
||||
})
|
||||
.await;
|
||||
|
||||
let mut set = JoinSet::new();
|
||||
let mut waiting_on = HashSet::new();
|
||||
|
||||
|
|
@ -316,6 +352,8 @@ impl GooseAcpAgent {
|
|||
}
|
||||
}
|
||||
|
||||
add_builtins(&agent_ptr, builtins).await;
|
||||
|
||||
Ok(Self {
|
||||
sessions: Arc::new(Mutex::new(HashMap::new())),
|
||||
agent: agent_ptr,
|
||||
|
|
@ -584,7 +622,7 @@ impl GooseAcpAgent {
|
|||
};
|
||||
|
||||
cx.send_request(permission_request)
|
||||
.await_when_result_received(move |result| async move {
|
||||
.on_receiving_result(move |result| async move {
|
||||
match result {
|
||||
Ok(response) => {
|
||||
agent
|
||||
|
|
@ -1029,7 +1067,7 @@ struct GooseAcpHandler {
|
|||
}
|
||||
|
||||
impl JrMessageHandler for GooseAcpHandler {
|
||||
type Role = AgentToClient;
|
||||
type Link = AgentToClient;
|
||||
|
||||
fn describe_chain(&self) -> impl std::fmt::Debug {
|
||||
"goose-acp"
|
||||
|
|
@ -1097,13 +1135,13 @@ impl JrMessageHandler for GooseAcpHandler {
|
|||
}
|
||||
}
|
||||
|
||||
pub async fn run_acp_agent() -> Result<()> {
|
||||
pub async fn run_acp_agent(builtins: Vec<String>) -> Result<()> {
|
||||
info!("listening on stdio");
|
||||
|
||||
let outgoing = tokio::io::stdout().compat_write();
|
||||
let incoming = tokio::io::stdin().compat();
|
||||
|
||||
let agent = Arc::new(GooseAcpAgent::new().await?);
|
||||
let agent = Arc::new(GooseAcpAgent::new(builtins).await?);
|
||||
let handler = GooseAcpHandler { agent };
|
||||
|
||||
AgentToClient::builder()
|
||||
|
|
|
|||
|
|
@ -41,7 +41,6 @@ use rmcp::model::{ErrorCode, ErrorData};
|
|||
|
||||
use goose::config::paths::Paths;
|
||||
use goose::conversation::message::{ActionRequiredData, Message, MessageContent};
|
||||
use rand::{distributions::Alphanumeric, Rng};
|
||||
use rustyline::EditMode;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use serde_json::Value;
|
||||
|
|
@ -171,32 +170,6 @@ pub async fn classify_planner_response(
|
|||
}
|
||||
}
|
||||
|
||||
fn generate_extension_name(extension_command: &str) -> String {
|
||||
let cmd_name: String = extension_command
|
||||
.split([' ', '/'])
|
||||
.next_back()
|
||||
.unwrap_or("")
|
||||
.chars()
|
||||
.filter(|c| c.is_alphanumeric())
|
||||
.collect();
|
||||
|
||||
let prefix: String = cmd_name.chars().take(16).collect();
|
||||
|
||||
let random_suffix: String = rand::thread_rng()
|
||||
.sample_iter(&Alphanumeric)
|
||||
.take(8)
|
||||
.map(char::from)
|
||||
.collect();
|
||||
|
||||
let name = format!("{}_{}", prefix, random_suffix);
|
||||
|
||||
if name.chars().next().is_none_or(|c| !c.is_alphabetic()) {
|
||||
format!("g{}", name)
|
||||
} else {
|
||||
name
|
||||
}
|
||||
}
|
||||
|
||||
impl CliSession {
|
||||
#[allow(clippy::too_many_arguments)]
|
||||
pub async fn new(
|
||||
|
|
@ -256,10 +229,9 @@ impl CliSession {
|
|||
}
|
||||
|
||||
let cmd = parts.remove(0).to_string();
|
||||
let name = generate_extension_name(&extension_command);
|
||||
|
||||
let config = ExtensionConfig::Stdio {
|
||||
name,
|
||||
name: String::new(),
|
||||
cmd,
|
||||
args: parts.iter().map(|s| s.to_string()).collect(),
|
||||
envs: Envs::new(envs),
|
||||
|
|
@ -287,10 +259,8 @@ impl CliSession {
|
|||
/// # Arguments
|
||||
/// * `extension_url` - URL of the server
|
||||
pub async fn add_remote_extension(&mut self, extension_url: String) -> Result<()> {
|
||||
let name = generate_extension_name(&extension_url);
|
||||
|
||||
let config = ExtensionConfig::Sse {
|
||||
name,
|
||||
name: String::new(),
|
||||
uri: extension_url,
|
||||
envs: Envs::new(HashMap::new()),
|
||||
env_keys: Vec::new(),
|
||||
|
|
@ -317,10 +287,8 @@ impl CliSession {
|
|||
/// # Arguments
|
||||
/// * `extension_url` - URL of the server
|
||||
pub async fn add_streamable_http_extension(&mut self, extension_url: String) -> Result<()> {
|
||||
let name = generate_extension_name(&extension_url);
|
||||
|
||||
let config = ExtensionConfig::StreamableHttp {
|
||||
name,
|
||||
name: String::new(),
|
||||
uri: extension_url,
|
||||
envs: Envs::new(HashMap::new()),
|
||||
env_keys: Vec::new(),
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ schemars = "1.0"
|
|||
lazy_static = "1.5"
|
||||
shellexpand = "3.1.0"
|
||||
indoc = "2.0.5"
|
||||
xcap = "0.0.14"
|
||||
xcap = "=0.4.0"
|
||||
reqwest = { version = "0.11", features = [
|
||||
"json",
|
||||
"rustls-tls-native-roots",
|
||||
|
|
|
|||
|
|
@ -368,7 +368,7 @@ mod tests {
|
|||
async fn test_pdf_text_extraction() {
|
||||
let test_pdf_path = PathBuf::from(env!("CARGO_MANIFEST_DIR"))
|
||||
.join("src/computercontroller/tests/data/test.pdf");
|
||||
let cache_dir = tempfile::tempdir().unwrap().into_path();
|
||||
let cache_dir = tempfile::tempdir().unwrap().keep();
|
||||
|
||||
println!("Testing text extraction from: {}", test_pdf_path.display());
|
||||
|
||||
|
|
@ -390,7 +390,7 @@ mod tests {
|
|||
async fn test_pdf_image_extraction() {
|
||||
let test_pdf_path = PathBuf::from(env!("CARGO_MANIFEST_DIR"))
|
||||
.join("src/computercontroller/tests/data/test_image.pdf");
|
||||
let cache_dir = tempfile::tempdir().unwrap().into_path();
|
||||
let cache_dir = tempfile::tempdir().unwrap().keep();
|
||||
|
||||
println!("Testing image extraction from: {}", test_pdf_path.display());
|
||||
|
||||
|
|
@ -436,7 +436,7 @@ mod tests {
|
|||
|
||||
#[tokio::test]
|
||||
async fn test_pdf_invalid_path() {
|
||||
let cache_dir = tempfile::tempdir().unwrap().into_path();
|
||||
let cache_dir = tempfile::tempdir().unwrap().keep();
|
||||
let result = pdf_tool("nonexistent.pdf", "extract_text", &cache_dir).await;
|
||||
|
||||
assert!(result.is_err(), "Should fail with invalid path");
|
||||
|
|
@ -446,7 +446,7 @@ mod tests {
|
|||
async fn test_pdf_invalid_operation() {
|
||||
let test_pdf_path = PathBuf::from(env!("CARGO_MANIFEST_DIR"))
|
||||
.join("src/computercontroller/tests/data/test.pdf");
|
||||
let cache_dir = tempfile::tempdir().unwrap().into_path();
|
||||
let cache_dir = tempfile::tempdir().unwrap().keep();
|
||||
|
||||
let result = pdf_tool(
|
||||
test_pdf_path.to_str().unwrap(),
|
||||
|
|
|
|||
|
|
@ -588,7 +588,7 @@ impl DeveloperServer {
|
|||
})?;
|
||||
|
||||
let window_titles: Vec<String> =
|
||||
windows.into_iter().map(|w| w.title().to_string()).collect();
|
||||
windows.into_iter().filter_map(|w| w.title().ok()).collect();
|
||||
|
||||
let content_text = format!("Available windows:\n{}", window_titles.join("\n"));
|
||||
|
||||
|
|
@ -628,7 +628,7 @@ impl DeveloperServer {
|
|||
|
||||
let window = windows
|
||||
.into_iter()
|
||||
.find(|w| w.title() == window_title)
|
||||
.find(|w| w.title().is_ok_and(|t| &t == window_title))
|
||||
.ok_or_else(|| {
|
||||
ErrorData::new(
|
||||
ErrorCode::INTERNAL_ERROR,
|
||||
|
|
|
|||
|
|
@ -121,7 +121,8 @@ unbinder = "0.1.7"
|
|||
winapi = { version = "0.3", features = ["wincred"] }
|
||||
|
||||
[dev-dependencies]
|
||||
sacp = "9.0.0"
|
||||
sacp = "10.0.0-alpha.3"
|
||||
agent-client-protocol-schema = "0.10.5"
|
||||
criterion = "0.5"
|
||||
serial_test = "3.2.0"
|
||||
mockall = "0.13.1"
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ use axum::http::{HeaderMap, HeaderName};
|
|||
use chrono::{DateTime, Utc};
|
||||
use futures::stream::{FuturesUnordered, StreamExt};
|
||||
use futures::{future, FutureExt};
|
||||
use rand::{distributions::Alphanumeric, Rng};
|
||||
use rmcp::service::{ClientInitializeError, ServiceError};
|
||||
use rmcp::transport::streamable_http_client::{
|
||||
AuthRequiredError, StreamableHttpClientTransportConfig, StreamableHttpError,
|
||||
|
|
@ -145,6 +146,31 @@ fn normalize(input: String) -> String {
|
|||
result.to_lowercase()
|
||||
}
|
||||
|
||||
/// Generates extension name from server info; adds random suffix on collision.
|
||||
fn generate_extension_name(
|
||||
server_info: Option<&ServerInfo>,
|
||||
name_exists: impl Fn(&str) -> bool,
|
||||
) -> String {
|
||||
let base = server_info
|
||||
.and_then(|info| {
|
||||
let name = info.server_info.name.as_str();
|
||||
(!name.is_empty()).then(|| normalize(name.to_string()))
|
||||
})
|
||||
.unwrap_or_else(|| "unnamed".to_string());
|
||||
|
||||
if !name_exists(&base) {
|
||||
return base;
|
||||
}
|
||||
|
||||
let suffix: String = rand::thread_rng()
|
||||
.sample_iter(Alphanumeric)
|
||||
.take(6)
|
||||
.map(char::from)
|
||||
.collect();
|
||||
|
||||
format!("{base}_{suffix}")
|
||||
}
|
||||
|
||||
fn resolve_command(cmd: &str) -> PathBuf {
|
||||
SearchPaths::builder()
|
||||
.with_npm()
|
||||
|
|
@ -574,14 +600,18 @@ impl ExtensionManager {
|
|||
};
|
||||
|
||||
let server_info = client.get_info().cloned();
|
||||
self.add_client(
|
||||
sanitized_name,
|
||||
config,
|
||||
Arc::new(Mutex::new(client)),
|
||||
server_info,
|
||||
temp_dir,
|
||||
)
|
||||
.await;
|
||||
|
||||
// Only generate name from server info when config has no name (e.g., CLI --with-*-extension args)
|
||||
let mut extensions = self.extensions.lock().await;
|
||||
let final_name = if sanitized_name.is_empty() {
|
||||
generate_extension_name(server_info.as_ref(), |n| extensions.contains_key(n))
|
||||
} else {
|
||||
sanitized_name
|
||||
};
|
||||
extensions.insert(
|
||||
final_name,
|
||||
Extension::new(config, Arc::new(Mutex::new(client)), server_info, temp_dir),
|
||||
);
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
|
@ -1781,4 +1811,33 @@ mod tests {
|
|||
);
|
||||
assert_eq!(result, "Authorization: Bearer secret123 and API key456");
|
||||
}
|
||||
|
||||
mod generate_extension_name_tests {
|
||||
use super::*;
|
||||
use rmcp::model::Implementation;
|
||||
use test_case::test_case;
|
||||
|
||||
fn make_info(name: &str) -> ServerInfo {
|
||||
ServerInfo {
|
||||
server_info: Implementation {
|
||||
name: name.into(),
|
||||
..Default::default()
|
||||
},
|
||||
..Default::default()
|
||||
}
|
||||
}
|
||||
|
||||
#[test_case(Some("kiwi-mcp-server"), None, "^kiwi-mcp-server$" ; "already normalized server name")]
|
||||
#[test_case(Some("Context7"), None, "^context7$" ; "mixed case normalized")]
|
||||
#[test_case(Some("@huggingface/mcp-services"), None, "^_huggingface_mcp-services$" ; "special chars normalized")]
|
||||
#[test_case(None, None, "^unnamed$" ; "no server info falls back")]
|
||||
#[test_case(Some(""), None, "^unnamed$" ; "empty server name falls back")]
|
||||
#[test_case(Some("github-mcp-server"), Some("github-mcp-server"), r"^github-mcp-server_[A-Za-z0-9]{6}$" ; "duplicate adds suffix")]
|
||||
fn test_generate_name(server_name: Option<&str>, collision: Option<&str>, expected: &str) {
|
||||
let info = server_name.map(make_info);
|
||||
let result = generate_extension_name(info.as_ref(), |n| collision == Some(n));
|
||||
let re = regex::Regex::new(expected).unwrap();
|
||||
assert!(re.is_match(&result));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -99,7 +99,7 @@ async fn get_workspace_endpoints(host: &str) -> Result<OidcEndpoints> {
|
|||
if !resp.status().is_success() {
|
||||
return Err(anyhow::anyhow!(
|
||||
"Failed to get OIDC configuration from {}",
|
||||
oidc_url.to_string()
|
||||
oidc_url
|
||||
));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ use sacp::schema::{
|
|||
};
|
||||
use sacp::{ClientToAgent, JrConnectionCx};
|
||||
use std::collections::VecDeque;
|
||||
use std::path::Path;
|
||||
use std::process::Stdio;
|
||||
use std::sync::{Arc, Mutex};
|
||||
use std::time::Duration;
|
||||
|
|
@ -35,24 +36,30 @@ async fn test_acp_basic_completion() {
|
|||
)])
|
||||
.await;
|
||||
|
||||
run_acp_session(&mock_server, vec![], |cx, session_id, updates| async move {
|
||||
let response = cx
|
||||
.send_request(PromptRequest {
|
||||
session_id,
|
||||
prompt: vec![ContentBlock::Text(TextContent {
|
||||
text: prompt.to_string(),
|
||||
annotations: None,
|
||||
run_acp_session(
|
||||
&mock_server,
|
||||
vec![],
|
||||
&[],
|
||||
tempfile::tempdir().unwrap().path(),
|
||||
|cx, session_id, updates| async move {
|
||||
let response = cx
|
||||
.send_request(PromptRequest {
|
||||
session_id,
|
||||
prompt: vec![ContentBlock::Text(TextContent {
|
||||
text: prompt.to_string(),
|
||||
annotations: None,
|
||||
meta: None,
|
||||
})],
|
||||
meta: None,
|
||||
})],
|
||||
meta: None,
|
||||
})
|
||||
.block_task()
|
||||
.await
|
||||
.unwrap();
|
||||
})
|
||||
.block_task()
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
assert_eq!(response.stop_reason, StopReason::EndTurn);
|
||||
wait_for_text(&updates, "2", Duration::from_secs(5)).await;
|
||||
})
|
||||
assert_eq!(response.stop_reason, StopReason::EndTurn);
|
||||
wait_for_text(&updates, "2", Duration::from_secs(5)).await;
|
||||
},
|
||||
)
|
||||
.await;
|
||||
}
|
||||
|
||||
|
|
@ -80,6 +87,8 @@ async fn test_acp_with_mcp_http_server() {
|
|||
url: mcp_url,
|
||||
headers: vec![],
|
||||
}],
|
||||
&[],
|
||||
tempfile::tempdir().unwrap().path(),
|
||||
|cx, session_id, updates| async move {
|
||||
let response = cx
|
||||
.send_request(PromptRequest {
|
||||
|
|
@ -102,6 +111,63 @@ async fn test_acp_with_mcp_http_server() {
|
|||
.await;
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn test_acp_with_builtin_and_mcp() {
|
||||
let prompt =
|
||||
"Search for get_code and text_editor tools. Use them to save the code to /tmp/result.txt.";
|
||||
let (mcp_url, _handle) = spawn_mcp_http_server().await;
|
||||
|
||||
let mock_server = setup_mock_openai(vec![
|
||||
(
|
||||
format!(r#"</info-msg>\n{prompt}","role":"user""#),
|
||||
include_str!("./test_data/openai_builtin_search.txt"),
|
||||
),
|
||||
(
|
||||
r#"lookup/get_code: Get the code"#.into(),
|
||||
include_str!("./test_data/openai_builtin_read_modules.txt"),
|
||||
),
|
||||
(
|
||||
r#"get_code({ }): string - Get the code"#.into(),
|
||||
include_str!("./test_data/openai_builtin_execute.txt"),
|
||||
),
|
||||
(
|
||||
r#"Successfully wrote to /tmp/result.txt"#.into(),
|
||||
include_str!("./test_data/openai_builtin_final.txt"),
|
||||
),
|
||||
])
|
||||
.await;
|
||||
|
||||
run_acp_session(
|
||||
&mock_server,
|
||||
vec![McpServer::Http {
|
||||
name: "lookup".into(),
|
||||
url: mcp_url,
|
||||
headers: vec![],
|
||||
}],
|
||||
&["code_execution", "developer"],
|
||||
tempfile::tempdir().unwrap().path(),
|
||||
|cx, session_id, updates| async move {
|
||||
let response = cx
|
||||
.send_request(PromptRequest {
|
||||
session_id,
|
||||
prompt: vec![ContentBlock::Text(TextContent {
|
||||
text: prompt.to_string(),
|
||||
annotations: None,
|
||||
meta: None,
|
||||
})],
|
||||
meta: None,
|
||||
})
|
||||
.block_task()
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
assert_eq!(response.stop_reason, StopReason::EndTurn);
|
||||
wait_for_text(&updates, FAKE_CODE, Duration::from_secs(10)).await;
|
||||
},
|
||||
)
|
||||
.await;
|
||||
}
|
||||
|
||||
async fn wait_for_text(
|
||||
updates: &Arc<Mutex<Vec<SessionNotification>>>,
|
||||
expected: &str,
|
||||
|
|
@ -110,7 +176,7 @@ async fn wait_for_text(
|
|||
let deadline = tokio::time::Instant::now() + timeout;
|
||||
loop {
|
||||
let actual = extract_text(&updates.lock().unwrap());
|
||||
if actual == expected {
|
||||
if actual.contains(expected) {
|
||||
return;
|
||||
}
|
||||
if tokio::time::Instant::now() > deadline {
|
||||
|
|
@ -184,10 +250,13 @@ fn extract_text(updates: &[SessionNotification]) -> String {
|
|||
.collect()
|
||||
}
|
||||
|
||||
async fn spawn_goose_acp(mock_server: &MockServer) -> Child {
|
||||
Command::new(&*common::GOOSE_BINARY)
|
||||
.args(["acp"])
|
||||
.stdin(Stdio::piped())
|
||||
async fn spawn_goose_acp(mock_server: &MockServer, builtins: &[&str], data_root: &Path) -> Child {
|
||||
let mut cmd = Command::new(&*common::GOOSE_BINARY);
|
||||
cmd.args(["acp"]);
|
||||
if !builtins.is_empty() {
|
||||
cmd.arg("--with-builtin").arg(builtins.join(","));
|
||||
}
|
||||
cmd.stdin(Stdio::piped())
|
||||
.stdout(Stdio::piped())
|
||||
.stderr(Stdio::piped())
|
||||
.env("GOOSE_PROVIDER", "openai")
|
||||
|
|
@ -195,6 +264,7 @@ async fn spawn_goose_acp(mock_server: &MockServer) -> Child {
|
|||
.env("GOOSE_MODE", "approve")
|
||||
.env("OPENAI_HOST", mock_server.uri())
|
||||
.env("OPENAI_API_KEY", "test-key")
|
||||
.env("GOOSE_PATH_ROOT", data_root)
|
||||
.env(
|
||||
"RUST_LOG",
|
||||
std::env::var("RUST_LOG").unwrap_or_else(|_| "info".into()),
|
||||
|
|
@ -204,8 +274,13 @@ async fn spawn_goose_acp(mock_server: &MockServer) -> Child {
|
|||
.unwrap()
|
||||
}
|
||||
|
||||
async fn run_acp_session<F, Fut>(mock_server: &MockServer, mcp_servers: Vec<McpServer>, test_fn: F)
|
||||
where
|
||||
async fn run_acp_session<F, Fut>(
|
||||
mock_server: &MockServer,
|
||||
mcp_servers: Vec<McpServer>,
|
||||
builtins: &[&str],
|
||||
data_root: &Path,
|
||||
test_fn: F,
|
||||
) where
|
||||
F: FnOnce(
|
||||
JrConnectionCx<ClientToAgent>,
|
||||
sacp::schema::SessionId,
|
||||
|
|
@ -213,7 +288,7 @@ where
|
|||
) -> Fut,
|
||||
Fut: std::future::Future<Output = ()>,
|
||||
{
|
||||
let mut child = spawn_goose_acp(mock_server).await;
|
||||
let mut child = spawn_goose_acp(mock_server, builtins, data_root).await;
|
||||
let work_dir = tempfile::tempdir().unwrap();
|
||||
let updates = Arc::new(Mutex::new(Vec::new()));
|
||||
let outgoing = child.stdin.take().unwrap().compat_write();
|
||||
|
|
@ -248,8 +323,10 @@ where
|
|||
},
|
||||
sacp::on_receive_request!(),
|
||||
)
|
||||
.with_client(
|
||||
transport,
|
||||
.connect_to(transport)
|
||||
.unwrap()
|
||||
.run_until({
|
||||
let updates = updates.clone();
|
||||
move |cx: JrConnectionCx<ClientToAgent>| async move {
|
||||
cx.send_request(InitializeRequest {
|
||||
protocol_version: PROTOCOL_VERSION,
|
||||
|
|
@ -273,8 +350,8 @@ where
|
|||
|
||||
test_fn(cx.clone(), session.session_id, updates).await;
|
||||
Ok(())
|
||||
},
|
||||
)
|
||||
}
|
||||
})
|
||||
.await
|
||||
.unwrap();
|
||||
}
|
||||
|
|
@ -305,7 +382,11 @@ impl ServerHandler for Lookup {
|
|||
ServerInfo {
|
||||
protocol_version: ProtocolVersion::V_2025_03_26,
|
||||
capabilities: ServerCapabilities::builder().enable_tools().build(),
|
||||
server_info: Implementation::from_build_env(),
|
||||
server_info: Implementation {
|
||||
name: "lookup".into(),
|
||||
version: "1.0.0".into(),
|
||||
..Default::default()
|
||||
},
|
||||
instructions: Some("Lookup server with get_code tool.".into()),
|
||||
}
|
||||
}
|
||||
|
|
|
|||
227
crates/goose/tests/test_data/openai_builtin_execute.txt
Normal file
227
crates/goose/tests/test_data/openai_builtin_execute.txt
Normal file
|
|
@ -0,0 +1,227 @@
|
|||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"role":"assistant","content":null,"tool_calls":[{"index":0,"id":"call_hcC9QZSyxfjpHmJdtEWe18ay","type":"function","function":{"name":"code_execution__execute_code","arguments":""}}],"refusal":null},"finish_reason":null}],"usage":null,"obfuscation":"b19o47w5ougEAzn"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{\""}}]},"finish_reason":null}],"usage":null,"obfuscation":"rdSrkQ1Cz6"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"code"}}]},"finish_reason":null}],"usage":null,"obfuscation":"Osxenpc4x"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\":\""}}]},"finish_reason":null}],"usage":null,"obfuscation":"DTBcfoOJ"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"import"}}]},"finish_reason":null}],"usage":null,"obfuscation":"sqbC9nK"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" {"}}]},"finish_reason":null}],"usage":null,"obfuscation":"7A3BEIL77xh"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" get"}}]},"finish_reason":null}],"usage":null,"obfuscation":"AsczaKDd7"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"_code"}}]},"finish_reason":null}],"usage":null,"obfuscation":"UjJwIZXo"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" }"}}]},"finish_reason":null}],"usage":null,"obfuscation":"spOTdMkMdlp"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" from"}}]},"finish_reason":null}],"usage":null,"obfuscation":"n2UHITYZ"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" \\\""}}]},"finish_reason":null}],"usage":null,"obfuscation":"am1f6FmN"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"lookup"}}]},"finish_reason":null}],"usage":null,"obfuscation":"7smqbS0"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\\\""}}]},"finish_reason":null}],"usage":null,"obfuscation":"punuQk0H6"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":";\\"}}]},"finish_reason":null}],"usage":null,"obfuscation":"0MlZhMM3Wb"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"n"}}]},"finish_reason":null}],"usage":null,"obfuscation":"qNe4Y7heibZN"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"import"}}]},"finish_reason":null}],"usage":null,"obfuscation":"jAg7bgI"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" {"}}]},"finish_reason":null}],"usage":null,"obfuscation":"7GtakYXk4U1"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" text"}}]},"finish_reason":null}],"usage":null,"obfuscation":"iABvoSVl"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"_editor"}}]},"finish_reason":null}],"usage":null,"obfuscation":"WGyvWz"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" }"}}]},"finish_reason":null}],"usage":null,"obfuscation":"kXeb0jURGpD"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" from"}}]},"finish_reason":null}],"usage":null,"obfuscation":"daxDWT2G"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" \\\""}}]},"finish_reason":null}],"usage":null,"obfuscation":"p1uq4MMs"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"developer"}}]},"finish_reason":null}],"usage":null,"obfuscation":"ZZJ0"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\\\""}}]},"finish_reason":null}],"usage":null,"obfuscation":"2pjhI3CHm"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":";\\"}}]},"finish_reason":null}],"usage":null,"obfuscation":"BGPB0Y92qx"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"n"}}]},"finish_reason":null}],"usage":null,"obfuscation":"sPtg1aux9Q7t"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\\n"}}]},"finish_reason":null}],"usage":null,"obfuscation":"uzSwsf36Eq"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"const"}}]},"finish_reason":null}],"usage":null,"obfuscation":"q36eyCe4"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" code"}}]},"finish_reason":null}],"usage":null,"obfuscation":"Yv253z8V"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Content"}}]},"finish_reason":null}],"usage":null,"obfuscation":"dbtiH2"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" ="}}]},"finish_reason":null}],"usage":null,"obfuscation":"V0BBzDO4BnO"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" get"}}]},"finish_reason":null}],"usage":null,"obfuscation":"eV7Z0MBJk"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"_code"}}]},"finish_reason":null}],"usage":null,"obfuscation":"qODA1iJ3"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"({"}}]},"finish_reason":null}],"usage":null,"obfuscation":"ZLHVDfQXZIT"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"});"}}]},"finish_reason":null}],"usage":null,"obfuscation":"xkfrxJ0vqN"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\\"}}]},"finish_reason":null}],"usage":null,"obfuscation":"Ri1sVVmThdE"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"n"}}]},"finish_reason":null}],"usage":null,"obfuscation":"EaMfvD5zX3O4"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"const"}}]},"finish_reason":null}],"usage":null,"obfuscation":"Ktj0iLMG"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" write"}}]},"finish_reason":null}],"usage":null,"obfuscation":"BuVITia"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Res"}}]},"finish_reason":null}],"usage":null,"obfuscation":"b9iRJbneyy"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" ="}}]},"finish_reason":null}],"usage":null,"obfuscation":"gCMQmiR8LDN"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" text"}}]},"finish_reason":null}],"usage":null,"obfuscation":"WywYQ1Wq"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"_editor"}}]},"finish_reason":null}],"usage":null,"obfuscation":"APkX6z"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"({"}}]},"finish_reason":null}],"usage":null,"obfuscation":"O04vBMryw3h"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" command"}}]},"finish_reason":null}],"usage":null,"obfuscation":"5jIuc"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":":"}}]},"finish_reason":null}],"usage":null,"obfuscation":"WmdqnCOKVLwM"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" \\\""}}]},"finish_reason":null}],"usage":null,"obfuscation":"tV8pBGp7"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"write"}}]},"finish_reason":null}],"usage":null,"obfuscation":"rdlyfaq1"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\\\","}}]},"finish_reason":null}],"usage":null,"obfuscation":"SxWxNrDR"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" path"}}]},"finish_reason":null}],"usage":null,"obfuscation":"PeHPMaR6"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":":"}}]},"finish_reason":null}],"usage":null,"obfuscation":"d0y267V7PORM"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" \\"}}]},"finish_reason":null}],"usage":null,"obfuscation":"ywEAhNkA9w"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"/"}}]},"finish_reason":null}],"usage":null,"obfuscation":"m9RiqrrR4d"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"tmp"}}]},"finish_reason":null}],"usage":null,"obfuscation":"KdkE9OEMbk"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/result"}}]},"finish_reason":null}],"usage":null,"obfuscation":"wdawSE"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":".txt"}}]},"finish_reason":null}],"usage":null,"obfuscation":"oz5CFKhsF"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\\\","}}]},"finish_reason":null}],"usage":null,"obfuscation":"FLJEYU3Z"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" file"}}]},"finish_reason":null}],"usage":null,"obfuscation":"jV9qDKjG"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"_text"}}]},"finish_reason":null}],"usage":null,"obfuscation":"UtOfNMdx"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":":"}}]},"finish_reason":null}],"usage":null,"obfuscation":"aQLvI4PhcN71"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" code"}}]},"finish_reason":null}],"usage":null,"obfuscation":"cRS5SnPZ"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Content"}}]},"finish_reason":null}],"usage":null,"obfuscation":"ymts0B"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" });"}}]},"finish_reason":null}],"usage":null,"obfuscation":"HIKXwLPsU"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\\"}}]},"finish_reason":null}],"usage":null,"obfuscation":"IyYG9VM0ay9"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"n"}}]},"finish_reason":null}],"usage":null,"obfuscation":"FcZzRbewbWzs"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"write"}}]},"finish_reason":null}],"usage":null,"obfuscation":"yJ0heSJY"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Res"}}]},"finish_reason":null}],"usage":null,"obfuscation":"VCJyV87lb5"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\\n"}}]},"finish_reason":null}],"usage":null,"obfuscation":"LniNHGfSN9"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\",\""}}]},"finish_reason":null}],"usage":null,"obfuscation":"KrXbglgQ"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"tool"}}]},"finish_reason":null}],"usage":null,"obfuscation":"KoY7VbKmk"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"_graph"}}]},"finish_reason":null}],"usage":null,"obfuscation":"stocohw"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\":["}}]},"finish_reason":null}],"usage":null,"obfuscation":"GVtr3ESEB"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{\""}}]},"finish_reason":null}],"usage":null,"obfuscation":"Lickb1U7Hl"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"tool"}}]},"finish_reason":null}],"usage":null,"obfuscation":"okyVlrEIz"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\":\""}}]},"finish_reason":null}],"usage":null,"obfuscation":"eOvg0xdJ"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"lookup"}}]},"finish_reason":null}],"usage":null,"obfuscation":"ioz46mm"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/get"}}]},"finish_reason":null}],"usage":null,"obfuscation":"lqkgCSvsu"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"_code"}}]},"finish_reason":null}],"usage":null,"obfuscation":"JhuyiKVe"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\",\""}}]},"finish_reason":null}],"usage":null,"obfuscation":"Q3aHiaKq"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"description"}}]},"finish_reason":null}],"usage":null,"obfuscation":"Ck"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\":\""}}]},"finish_reason":null}],"usage":null,"obfuscation":"AEyKl8NF"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Get"}}]},"finish_reason":null}],"usage":null,"obfuscation":"lJJbh0p7Dg"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" the"}}]},"finish_reason":null}],"usage":null,"obfuscation":"uFXa4PzBq"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" code"}}]},"finish_reason":null}],"usage":null,"obfuscation":"fxpxTVDG"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\",\""}}]},"finish_reason":null}],"usage":null,"obfuscation":"ajR2a1Ju"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"depends"}}]},"finish_reason":null}],"usage":null,"obfuscation":"qNa3u6"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"_on"}}]},"finish_reason":null}],"usage":null,"obfuscation":"PfZBUzLwEU"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\":[]"}}]},"finish_reason":null}],"usage":null,"obfuscation":"Kpm5Dl6W"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"},{\""}}]},"finish_reason":null}],"usage":null,"obfuscation":"L8cOSVuZ"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"tool"}}]},"finish_reason":null}],"usage":null,"obfuscation":"KAZ6a6RFX"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\":\""}}]},"finish_reason":null}],"usage":null,"obfuscation":"bJFlPCmV"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"developer"}}]},"finish_reason":null}],"usage":null,"obfuscation":"KE9I"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/text"}}]},"finish_reason":null}],"usage":null,"obfuscation":"BMnv2YIo"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"_editor"}}]},"finish_reason":null}],"usage":null,"obfuscation":"HH3wHg"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\",\""}}]},"finish_reason":null}],"usage":null,"obfuscation":"1BSk9J00"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"description"}}]},"finish_reason":null}],"usage":null,"obfuscation":"y0"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\":\""}}]},"finish_reason":null}],"usage":null,"obfuscation":"j0kTAnXy"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"Write"}}]},"finish_reason":null}],"usage":null,"obfuscation":"9IGJB175"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" code"}}]},"finish_reason":null}],"usage":null,"obfuscation":"qc9bKCEs"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" to"}}]},"finish_reason":null}],"usage":null,"obfuscation":"a0mpsleQne"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" /"}}]},"finish_reason":null}],"usage":null,"obfuscation":"qu1SPcDdrND"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"tmp"}}]},"finish_reason":null}],"usage":null,"obfuscation":"iL5qu5xkSZ"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"/result"}}]},"finish_reason":null}],"usage":null,"obfuscation":"Pw9vab"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":".txt"}}]},"finish_reason":null}],"usage":null,"obfuscation":"4s3fq3kik"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\",\""}}]},"finish_reason":null}],"usage":null,"obfuscation":"WBE2nHWv"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"depends"}}]},"finish_reason":null}],"usage":null,"obfuscation":"SndKuC"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"_on"}}]},"finish_reason":null}],"usage":null,"obfuscation":"bqH02zHaqe"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\":["}}]},"finish_reason":null}],"usage":null,"obfuscation":"JQbX8vhhz"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"0"}}]},"finish_reason":null}],"usage":null,"obfuscation":"dZPvLddnRhi4"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"]}"}}]},"finish_reason":null}],"usage":null,"obfuscation":"H6ruWXUkroP"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"]}"}}]},"finish_reason":null}],"usage":null,"obfuscation":"oo1NmN82Wer"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{},"finish_reason":"tool_calls"}],"usage":null,"obfuscation":"KHl52jcbk6U"}
|
||||
|
||||
data: {"id":"chatcmpl-Cqnxk0p34ZkYNestA1fcahFGuLiRR","object":"chat.completion.chunk","created":1766701148,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[],"usage":{"prompt_tokens":2823,"completion_tokens":1347,"total_tokens":4170,"prompt_tokens_details":{"cached_tokens":2176,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":1216,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"iENdGioMW9"}
|
||||
|
||||
data: [DONE]
|
||||
173
crates/goose/tests/test_data/openai_builtin_final.txt
Normal file
173
crates/goose/tests/test_data/openai_builtin_final.txt
Normal file
|
|
@ -0,0 +1,173 @@
|
|||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"finish_reason":null}],"usage":null,"obfuscation":"O7AAt"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"I've"},"finish_reason":null}],"usage":null,"obfuscation":"cVL"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" retrieved"},"finish_reason":null}],"usage":null,"obfuscation":"F0LyC2nMxaBxl"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" the"},"finish_reason":null}],"usage":null,"obfuscation":"D0e"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" code"},"finish_reason":null}],"usage":null,"obfuscation":"Fa"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" and"},"finish_reason":null}],"usage":null,"obfuscation":"SVR"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" saved"},"finish_reason":null}],"usage":null,"obfuscation":"Z"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" it"},"finish_reason":null}],"usage":null,"obfuscation":"1wEo"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" to"},"finish_reason":null}],"usage":null,"obfuscation":"DXcu"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" /"},"finish_reason":null}],"usage":null,"obfuscation":"FaGyP"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"tmp"},"finish_reason":null}],"usage":null,"obfuscation":"GZ4i"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"/result"},"finish_reason":null}],"usage":null,"obfuscation":""}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":".txt"},"finish_reason":null}],"usage":null,"obfuscation":"ph6"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":".\n\n"},"finish_reason":null}],"usage":null,"obfuscation":"tu"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"Details"},"finish_reason":null}],"usage":null,"obfuscation":""}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":":\n"},"finish_reason":null}],"usage":null,"obfuscation":"EvwW"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"-"},"finish_reason":null}],"usage":null,"obfuscation":"4593mu"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" Retrieved"},"finish_reason":null}],"usage":null,"obfuscation":"VKOlyvL1zhIEw"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" code"},"finish_reason":null}],"usage":null,"obfuscation":"rc"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":":"},"finish_reason":null}],"usage":null,"obfuscation":"27XGKW"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" via"},"finish_reason":null}],"usage":null,"obfuscation":"0di"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" lookup"},"finish_reason":null}],"usage":null,"obfuscation":""}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"/get"},"finish_reason":null}],"usage":null,"obfuscation":"olP"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"_code"},"finish_reason":null}],"usage":null,"obfuscation":"Sa"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"\n"},"finish_reason":null}],"usage":null,"obfuscation":"lsb3w"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"-"},"finish_reason":null}],"usage":null,"obfuscation":"ognYvV"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" Saved"},"finish_reason":null}],"usage":null,"obfuscation":"W"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" to"},"finish_reason":null}],"usage":null,"obfuscation":"hYDy"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":":"},"finish_reason":null}],"usage":null,"obfuscation":"1jWh7T"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" /"},"finish_reason":null}],"usage":null,"obfuscation":"ZlVNQ"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"tmp"},"finish_reason":null}],"usage":null,"obfuscation":"I7Jf"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"/result"},"finish_reason":null}],"usage":null,"obfuscation":""}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":".txt"},"finish_reason":null}],"usage":null,"obfuscation":"sy2"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"\n"},"finish_reason":null}],"usage":null,"obfuscation":"Q5DAw"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"-"},"finish_reason":null}],"usage":null,"obfuscation":"UXGt7Q"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" File"},"finish_reason":null}],"usage":null,"obfuscation":"ca"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" content"},"finish_reason":null}],"usage":null,"obfuscation":"HUApvDcMsMAuxrY"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" ("},"finish_reason":null}],"usage":null,"obfuscation":"PU6QY"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"excerpt"},"finish_reason":null}],"usage":null,"obfuscation":""}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"):\n"},"finish_reason":null}],"usage":null,"obfuscation":"YyY"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}],"usage":null,"obfuscation":"9CPGc5"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" ```\n"},"finish_reason":null}],"usage":null,"obfuscation":"N"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}],"usage":null,"obfuscation":"7w1FAS"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" test"},"finish_reason":null}],"usage":null,"obfuscation":"4m"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"-"},"finish_reason":null}],"usage":null,"obfuscation":"SRFQJN"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"uuid"},"finish_reason":null}],"usage":null,"obfuscation":"DhC"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"-"},"finish_reason":null}],"usage":null,"obfuscation":"dUQSSl"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"123"},"finish_reason":null}],"usage":null,"obfuscation":"O56B"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"45"},"finish_reason":null}],"usage":null,"obfuscation":"7QbIj"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"-"},"finish_reason":null}],"usage":null,"obfuscation":"cZFPqS"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"678"},"finish_reason":null}],"usage":null,"obfuscation":"ANzY"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"90"},"finish_reason":null}],"usage":null,"obfuscation":"d9Bgs"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"\n\n"},"finish_reason":null}],"usage":null,"obfuscation":"no1"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" "},"finish_reason":null}],"usage":null,"obfuscation":"PlkSe6"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" ```\n"},"finish_reason":null}],"usage":null,"obfuscation":"P"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"If"},"finish_reason":null}],"usage":null,"obfuscation":"qse2x"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" you"},"finish_reason":null}],"usage":null,"obfuscation":"Fx3"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" want"},"finish_reason":null}],"usage":null,"obfuscation":"jp"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" me"},"finish_reason":null}],"usage":null,"obfuscation":"DeeA"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" to"},"finish_reason":null}],"usage":null,"obfuscation":"oKYZ"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" view"},"finish_reason":null}],"usage":null,"obfuscation":"f1"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" the"},"finish_reason":null}],"usage":null,"obfuscation":"Kay"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" saved"},"finish_reason":null}],"usage":null,"obfuscation":"w"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" file"},"finish_reason":null}],"usage":null,"obfuscation":"nV"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":","},"finish_reason":null}],"usage":null,"obfuscation":"U6ECJT"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" modify"},"finish_reason":null}],"usage":null,"obfuscation":""}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" the"},"finish_reason":null}],"usage":null,"obfuscation":"2lX"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" content"},"finish_reason":null}],"usage":null,"obfuscation":"EWuNap9Z0N6SUaV"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":","},"finish_reason":null}],"usage":null,"obfuscation":"di1ZTP"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" or"},"finish_reason":null}],"usage":null,"obfuscation":"cHi4"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" save"},"finish_reason":null}],"usage":null,"obfuscation":"8Y"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" to"},"finish_reason":null}],"usage":null,"obfuscation":"ill7"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" a"},"finish_reason":null}],"usage":null,"obfuscation":"WrWJM"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" different"},"finish_reason":null}],"usage":null,"obfuscation":"M3jGyb9FytIMe"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" path"},"finish_reason":null}],"usage":null,"obfuscation":"3a"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":","},"finish_reason":null}],"usage":null,"obfuscation":"PAdG3e"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" tell"},"finish_reason":null}],"usage":null,"obfuscation":"Z6"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" me"},"finish_reason":null}],"usage":null,"obfuscation":"TWlE"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" what"},"finish_reason":null}],"usage":null,"obfuscation":"IS"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" you"},"finish_reason":null}],"usage":null,"obfuscation":"xrI"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"’d"},"finish_reason":null}],"usage":null,"obfuscation":"nYYvw"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" like"},"finish_reason":null}],"usage":null,"obfuscation":"ss"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":" next"},"finish_reason":null}],"usage":null,"obfuscation":"Ko"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"."},"finish_reason":null}],"usage":null,"obfuscation":"yM8hiD"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":null,"obfuscation":"x"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxsizuiyMRFitx0QgzLwSExvKmX","object":"chat.completion.chunk","created":1766701156,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[],"usage":{"prompt_tokens":2997,"completion_tokens":86,"total_tokens":3083,"prompt_tokens_details":{"cached_tokens":2432,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"z42f4eInXrYh3SS"}
|
||||
|
||||
data: [DONE]
|
||||
43
crates/goose/tests/test_data/openai_builtin_read_modules.txt
Normal file
43
crates/goose/tests/test_data/openai_builtin_read_modules.txt
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
data: {"id":"chatcmpl-CqnxaQj6rMqu4L24cNKWvWdMJRtaW","object":"chat.completion.chunk","created":1766701138,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"usage":null,"choices":[{"index":0,"delta":{"role":"assistant","content":null},"finish_reason":null}],"obfuscation":"v7"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxaQj6rMqu4L24cNKWvWdMJRtaW","object":"chat.completion.chunk","created":1766701138,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"usage":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"id":"call_rS0QksngU4yYIDHrnDJy2EZM","type":"function","function":{"name":"code_execution__read_module","arguments":""}}]},"finish_reason":null}],"obfuscation":"T"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxaQj6rMqu4L24cNKWvWdMJRtaW","object":"chat.completion.chunk","created":1766701138,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"usage":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{\"mo"}}]},"finish_reason":null}],"obfuscation":"nXIpECrF"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxaQj6rMqu4L24cNKWvWdMJRtaW","object":"chat.completion.chunk","created":1766701138,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"usage":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"dule_"}}]},"finish_reason":null}],"obfuscation":"B9XWBe6c"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxaQj6rMqu4L24cNKWvWdMJRtaW","object":"chat.completion.chunk","created":1766701138,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"usage":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"path\":"}}]},"finish_reason":null}],"obfuscation":"tOSmhh"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxaQj6rMqu4L24cNKWvWdMJRtaW","object":"chat.completion.chunk","created":1766701138,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"usage":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":" \"lo"}}]},"finish_reason":null}],"obfuscation":"Zz3wgAww"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxaQj6rMqu4L24cNKWvWdMJRtaW","object":"chat.completion.chunk","created":1766701138,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"usage":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"okup/"}}]},"finish_reason":null}],"obfuscation":"pOpLxr8X"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxaQj6rMqu4L24cNKWvWdMJRtaW","object":"chat.completion.chunk","created":1766701138,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"usage":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"get_co"}}]},"finish_reason":null}],"obfuscation":"gCCacjW"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxaQj6rMqu4L24cNKWvWdMJRtaW","object":"chat.completion.chunk","created":1766701138,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"usage":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"de\"}"}}]},"finish_reason":null}],"obfuscation":"KY6NDanu"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxaQj6rMqu4L24cNKWvWdMJRtaW","object":"chat.completion.chunk","created":1766701138,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"usage":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":1,"id":"call_U0ieDPzZODuxxEWjHgi6s37G","type":"function","function":{"name":"code_execution__read_module","arguments":""}}]},"finish_reason":null}],"obfuscation":"l"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxaQj6rMqu4L24cNKWvWdMJRtaW","object":"chat.completion.chunk","created":1766701138,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"usage":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":1,"function":{"arguments":"{\"mo"}}]},"finish_reason":null}],"obfuscation":"cKKL6hIz"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxaQj6rMqu4L24cNKWvWdMJRtaW","object":"chat.completion.chunk","created":1766701138,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"usage":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":1,"function":{"arguments":"dule_"}}]},"finish_reason":null}],"obfuscation":"zXnRkr9q"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxaQj6rMqu4L24cNKWvWdMJRtaW","object":"chat.completion.chunk","created":1766701138,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"usage":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":1,"function":{"arguments":"path\":"}}]},"finish_reason":null}],"obfuscation":"O17aod"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxaQj6rMqu4L24cNKWvWdMJRtaW","object":"chat.completion.chunk","created":1766701138,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"usage":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":1,"function":{"arguments":" \"de"}}]},"finish_reason":null}],"obfuscation":"Hdkjwpwp"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxaQj6rMqu4L24cNKWvWdMJRtaW","object":"chat.completion.chunk","created":1766701138,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"usage":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":1,"function":{"arguments":"velop"}}]},"finish_reason":null}],"obfuscation":"31elhAol"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxaQj6rMqu4L24cNKWvWdMJRtaW","object":"chat.completion.chunk","created":1766701138,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"usage":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":1,"function":{"arguments":"er/tex"}}]},"finish_reason":null}],"obfuscation":"JsV3mVA"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxaQj6rMqu4L24cNKWvWdMJRtaW","object":"chat.completion.chunk","created":1766701138,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"usage":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":1,"function":{"arguments":"t_ed"}}]},"finish_reason":null}],"obfuscation":"8ZyjkFliU"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxaQj6rMqu4L24cNKWvWdMJRtaW","object":"chat.completion.chunk","created":1766701138,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"usage":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":1,"function":{"arguments":"itor\""}}]},"finish_reason":null}],"obfuscation":"waD7mnr"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxaQj6rMqu4L24cNKWvWdMJRtaW","object":"chat.completion.chunk","created":1766701138,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"usage":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":1,"function":{"arguments":"}"}}]},"finish_reason":null}],"obfuscation":"ohhnGgMcoCKQ"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxaQj6rMqu4L24cNKWvWdMJRtaW","object":"chat.completion.chunk","created":1766701138,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{},"finish_reason":"tool_calls"}],"usage":null,"obfuscation":"d6Rww4PaZYY"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxaQj6rMqu4L24cNKWvWdMJRtaW","object":"chat.completion.chunk","created":1766701138,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[],"usage":{"prompt_tokens":2586,"completion_tokens":1665,"total_tokens":4251,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":1600,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"0ofYwl6eisGBK"}
|
||||
|
||||
data: [DONE]
|
||||
27
crates/goose/tests/test_data/openai_builtin_search.txt
Normal file
27
crates/goose/tests/test_data/openai_builtin_search.txt
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
data: {"id":"chatcmpl-CqnxO9QA2SYzqUg3j2vOBDv47NlNx","object":"chat.completion.chunk","created":1766701126,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"role":"assistant","content":null,"tool_calls":[{"index":0,"id":"call_dINW7AmExfpt2yitCRgIgnDk","type":"function","function":{"name":"code_execution__search_modules","arguments":""}}],"refusal":null},"finish_reason":null}],"usage":null,"obfuscation":"xjFTVJsrOLFKC"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxO9QA2SYzqUg3j2vOBDv47NlNx","object":"chat.completion.chunk","created":1766701126,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{\""}}]},"finish_reason":null}],"usage":null,"obfuscation":"OXXTjGoceY"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxO9QA2SYzqUg3j2vOBDv47NlNx","object":"chat.completion.chunk","created":1766701126,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"terms"}}]},"finish_reason":null}],"usage":null,"obfuscation":"MhlBIuai"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxO9QA2SYzqUg3j2vOBDv47NlNx","object":"chat.completion.chunk","created":1766701126,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\":[\""}}]},"finish_reason":null}],"usage":null,"obfuscation":"Q7ZAiod"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxO9QA2SYzqUg3j2vOBDv47NlNx","object":"chat.completion.chunk","created":1766701126,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"get"}}]},"finish_reason":null}],"usage":null,"obfuscation":"QRDc1u5Ps1"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxO9QA2SYzqUg3j2vOBDv47NlNx","object":"chat.completion.chunk","created":1766701126,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"_code"}}]},"finish_reason":null}],"usage":null,"obfuscation":"1A5TssiT"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxO9QA2SYzqUg3j2vOBDv47NlNx","object":"chat.completion.chunk","created":1766701126,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\",\""}}]},"finish_reason":null}],"usage":null,"obfuscation":"IdoT3Umt"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxO9QA2SYzqUg3j2vOBDv47NlNx","object":"chat.completion.chunk","created":1766701126,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"text"}}]},"finish_reason":null}],"usage":null,"obfuscation":"B2kd2ESuG"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxO9QA2SYzqUg3j2vOBDv47NlNx","object":"chat.completion.chunk","created":1766701126,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"_editor"}}]},"finish_reason":null}],"usage":null,"obfuscation":"rq0SWi"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxO9QA2SYzqUg3j2vOBDv47NlNx","object":"chat.completion.chunk","created":1766701126,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"\"]"}}]},"finish_reason":null}],"usage":null,"obfuscation":"y2zYEl2xLX"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxO9QA2SYzqUg3j2vOBDv47NlNx","object":"chat.completion.chunk","created":1766701126,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"}"}}]},"finish_reason":null}],"usage":null,"obfuscation":"uSVgtytSzxV7"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxO9QA2SYzqUg3j2vOBDv47NlNx","object":"chat.completion.chunk","created":1766701126,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{},"finish_reason":"tool_calls"}],"usage":null,"obfuscation":"dKRdDeNi7Ag"}
|
||||
|
||||
data: {"id":"chatcmpl-CqnxO9QA2SYzqUg3j2vOBDv47NlNx","object":"chat.completion.chunk","created":1766701126,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[],"usage":{"prompt_tokens":2476,"completion_tokens":1887,"total_tokens":4363,"prompt_tokens_details":{"cached_tokens":2176,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":1856,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"ZHkygmUrjh"}
|
||||
|
||||
data: [DONE]
|
||||
|
|
@ -1,9 +1,10 @@
|
|||
data: {"id":"chatcmpl-test1","object":"chat.completion.chunk","created":1766309803,"model":"gpt-5-nano","choices":[{"index":0,"delta":{"role":"assistant","content":null,"tool_calls":[{"index":0,"id":"call_abc123","type":"function","function":{"name":"lookup__get_code","arguments":""}}],"refusal":null},"finish_reason":null}]}
|
||||
data: {"id":"chatcmpl-CqqCVVtD16yj37EZocLFkGNMhHZFS","object":"chat.completion.chunk","created":1766709751,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"role":"assistant","content":null,"tool_calls":[{"index":0,"id":"call_eLXEeL8ZQBgXACKp78eNmyNp","type":"function","function":{"name":"lookup__get_code","arguments":""}}],"refusal":null},"finish_reason":null}],"usage":null,"obfuscation":"FobexttCIQY"}
|
||||
|
||||
data: {"id":"chatcmpl-test1","object":"chat.completion.chunk","created":1766309803,"model":"gpt-5-nano","choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{}"}}]},"finish_reason":null}]}
|
||||
data: {"id":"chatcmpl-CqqCVVtD16yj37EZocLFkGNMhHZFS","object":"chat.completion.chunk","created":1766709751,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"tool_calls":[{"index":0,"function":{"arguments":"{}"}}]},"finish_reason":null}],"usage":null,"obfuscation":"01EkRUrgMxo"}
|
||||
|
||||
data: {"id":"chatcmpl-test1","object":"chat.completion.chunk","created":1766309803,"model":"gpt-5-nano","choices":[{"index":0,"delta":{},"finish_reason":"tool_calls"}]}
|
||||
data: {"id":"chatcmpl-CqqCVVtD16yj37EZocLFkGNMhHZFS","object":"chat.completion.chunk","created":1766709751,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{},"finish_reason":"tool_calls"}],"usage":null,"obfuscation":"k965c2jCwUF"}
|
||||
|
||||
data: {"id":"chatcmpl-test1","object":"chat.completion.chunk","created":1766309803,"model":"gpt-5-nano","choices":[],"usage":{"prompt_tokens":100,"completion_tokens":50,"total_tokens":150}}
|
||||
data: {"id":"chatcmpl-CqqCVVtD16yj37EZocLFkGNMhHZFS","object":"chat.completion.chunk","created":1766709751,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[],"usage":{"prompt_tokens":2320,"completion_tokens":149,"total_tokens":2469,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":128,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"7Wxwg9X1OBwbjfE"}
|
||||
|
||||
data: [DONE]
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,26 @@
|
|||
data: {"id":"chatcmpl-test2","object":"chat.completion.chunk","created":1766309809,"model":"gpt-5-nano","choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null}]}
|
||||
data: {"id":"chatcmpl-CqqCXO3JYXwnwTystVUj2AuyW9xgV","object":"chat.completion.chunk","created":1766709753,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"finish_reason":null}],"usage":null,"obfuscation":"p0yzG"}
|
||||
|
||||
data: {"id":"chatcmpl-test2","object":"chat.completion.chunk","created":1766309809,"model":"gpt-5-nano","choices":[{"index":0,"delta":{"content":"test-uuid-12345-67890"},"finish_reason":null}]}
|
||||
data: {"id":"chatcmpl-CqqCXO3JYXwnwTystVUj2AuyW9xgV","object":"chat.completion.chunk","created":1766709753,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"test"},"finish_reason":null}],"usage":null,"obfuscation":"ASB"}
|
||||
|
||||
data: {"id":"chatcmpl-test2","object":"chat.completion.chunk","created":1766309809,"model":"gpt-5-nano","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
|
||||
data: {"id":"chatcmpl-CqqCXO3JYXwnwTystVUj2AuyW9xgV","object":"chat.completion.chunk","created":1766709753,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"-"},"finish_reason":null}],"usage":null,"obfuscation":"b2XPf4"}
|
||||
|
||||
data: {"id":"chatcmpl-test2","object":"chat.completion.chunk","created":1766309809,"model":"gpt-5-nano","choices":[],"usage":{"prompt_tokens":200,"completion_tokens":10,"total_tokens":210}}
|
||||
data: {"id":"chatcmpl-CqqCXO3JYXwnwTystVUj2AuyW9xgV","object":"chat.completion.chunk","created":1766709753,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"uuid"},"finish_reason":null}],"usage":null,"obfuscation":"88h"}
|
||||
|
||||
data: {"id":"chatcmpl-CqqCXO3JYXwnwTystVUj2AuyW9xgV","object":"chat.completion.chunk","created":1766709753,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"-"},"finish_reason":null}],"usage":null,"obfuscation":"MunLmd"}
|
||||
|
||||
data: {"id":"chatcmpl-CqqCXO3JYXwnwTystVUj2AuyW9xgV","object":"chat.completion.chunk","created":1766709753,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"123"},"finish_reason":null}],"usage":null,"obfuscation":"iyKy"}
|
||||
|
||||
data: {"id":"chatcmpl-CqqCXO3JYXwnwTystVUj2AuyW9xgV","object":"chat.completion.chunk","created":1766709753,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"45"},"finish_reason":null}],"usage":null,"obfuscation":"MGSUp"}
|
||||
|
||||
data: {"id":"chatcmpl-CqqCXO3JYXwnwTystVUj2AuyW9xgV","object":"chat.completion.chunk","created":1766709753,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"-"},"finish_reason":null}],"usage":null,"obfuscation":"swF2Pu"}
|
||||
|
||||
data: {"id":"chatcmpl-CqqCXO3JYXwnwTystVUj2AuyW9xgV","object":"chat.completion.chunk","created":1766709753,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"678"},"finish_reason":null}],"usage":null,"obfuscation":"TPtP"}
|
||||
|
||||
data: {"id":"chatcmpl-CqqCXO3JYXwnwTystVUj2AuyW9xgV","object":"chat.completion.chunk","created":1766709753,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"90"},"finish_reason":null}],"usage":null,"obfuscation":"1UrvC"}
|
||||
|
||||
data: {"id":"chatcmpl-CqqCXO3JYXwnwTystVUj2AuyW9xgV","object":"chat.completion.chunk","created":1766709753,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":null,"obfuscation":"e"}
|
||||
|
||||
data: {"id":"chatcmpl-CqqCXO3JYXwnwTystVUj2AuyW9xgV","object":"chat.completion.chunk","created":1766709753,"model":"gpt-5-nano-2025-08-07","service_tier":"default","system_fingerprint":null,"choices":[],"usage":{"prompt_tokens":2357,"completion_tokens":274,"total_tokens":2631,"prompt_tokens_details":{"cached_tokens":2048,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":256,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"qFAKS6Oew9eV"}
|
||||
|
||||
data: [DONE]
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue