feat(code-mode): use server names for MCP extensions (#6284)
Signed-off-by: Adrian Cole <adrian@tetrate.io>
This commit is contained in:
Generated
+1394
-1542
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/configure.rs::handle_configure
|
||||||
crates/goose-cli/src/commands/project.rs::handle_project_default
|
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/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/commands/web.rs::process_message_streaming
|
||||||
crates/goose-cli/src/session/builder.rs::build_session
|
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/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::interactive
|
||||||
crates/goose-cli/src/session/mod.rs::process_agent_response
|
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/docx_tool.rs::docx_tool
|
||||||
crates/goose-mcp/src/computercontroller/mod.rs::new
|
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/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-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/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/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::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/agent.rs::reply_internal
|
||||||
crates/goose/src/agents/extension_manager.rs::add_extension
|
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::format_messages
|
||||||
crates/goose/src/providers/formats/anthropic.rs::response_to_streaming_message<S>
|
crates/goose/src/providers/formats/anthropic.rs::response_to_streaming_message<S>
|
||||||
crates/goose/src/providers/formats/databricks.rs::format_messages
|
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/formats/openai.rs::response_to_streaming_message<S>
|
||||||
crates/goose/src/providers/gcpvertexai.rs::post_with_location
|
crates/goose/src/providers/gcpvertexai.rs::post_with_location
|
||||||
crates/goose/src/providers/snowflake.rs::post
|
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-bench = { path = "../goose-bench" }
|
||||||
goose-mcp = { path = "../goose-mcp" }
|
goose-mcp = { path = "../goose-mcp" }
|
||||||
rmcp = { workspace = true }
|
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"] }
|
clap = { version = "4.4", features = ["derive"] }
|
||||||
cliclack = "0.3.5"
|
cliclack = "0.3.5"
|
||||||
console = "0.16.1"
|
console = "0.16.1"
|
||||||
|
|||||||
@@ -450,7 +450,17 @@ enum Command {
|
|||||||
|
|
||||||
/// Run goose as an ACP (Agent Client Protocol) agent
|
/// Run goose as an ACP (Agent Client Protocol) agent
|
||||||
#[command(about = "Run goose as an ACP agent server on stdio")]
|
#[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
|
/// Start or resume interactive chat sessions
|
||||||
#[command(
|
#[command(
|
||||||
@@ -961,7 +971,7 @@ pub async fn cli() -> anyhow::Result<()> {
|
|||||||
Some(Command::Configure {}) => "configure",
|
Some(Command::Configure {}) => "configure",
|
||||||
Some(Command::Info { .. }) => "info",
|
Some(Command::Info { .. }) => "info",
|
||||||
Some(Command::Mcp { .. }) => "mcp",
|
Some(Command::Mcp { .. }) => "mcp",
|
||||||
Some(Command::Acp {}) => "acp",
|
Some(Command::Acp { .. }) => "acp",
|
||||||
Some(Command::Session { .. }) => "session",
|
Some(Command::Session { .. }) => "session",
|
||||||
Some(Command::Project {}) => "project",
|
Some(Command::Project {}) => "project",
|
||||||
Some(Command::Projects) => "projects",
|
Some(Command::Projects) => "projects",
|
||||||
@@ -995,8 +1005,8 @@ pub async fn cli() -> anyhow::Result<()> {
|
|||||||
McpCommand::Developer => serve(DeveloperServer::new()).await?,
|
McpCommand::Developer => serve(DeveloperServer::new()).await?,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Some(Command::Acp {}) => {
|
Some(Command::Acp { builtins }) => {
|
||||||
run_acp_agent().await?;
|
run_acp_agent(builtins).await?;
|
||||||
}
|
}
|
||||||
Some(Command::Session {
|
Some(Command::Session {
|
||||||
command,
|
command,
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use goose::agents::extension::Envs;
|
use goose::agents::extension::{Envs, PlatformExtensionContext, PLATFORM_EXTENSIONS};
|
||||||
use goose::agents::{Agent, ExtensionConfig, SessionConfig};
|
use goose::agents::{Agent, ExtensionConfig, SessionConfig};
|
||||||
use goose::config::{get_all_extensions, Config};
|
use goose::config::{get_all_extensions, Config};
|
||||||
use goose::conversation::message::{ActionRequiredData, Message, MessageContent};
|
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 {
|
impl GooseAcpAgent {
|
||||||
async fn new() -> Result<Self> {
|
async fn new(builtins: Vec<String>) -> Result<Self> {
|
||||||
let config = Config::global();
|
let config = Config::global();
|
||||||
|
|
||||||
let provider_name: String = config
|
let provider_name: String = config
|
||||||
@@ -286,6 +312,16 @@ impl GooseAcpAgent {
|
|||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
let agent_ptr = Arc::new(agent);
|
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 set = JoinSet::new();
|
||||||
let mut waiting_on = HashSet::new();
|
let mut waiting_on = HashSet::new();
|
||||||
|
|
||||||
@@ -316,6 +352,8 @@ impl GooseAcpAgent {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
add_builtins(&agent_ptr, builtins).await;
|
||||||
|
|
||||||
Ok(Self {
|
Ok(Self {
|
||||||
sessions: Arc::new(Mutex::new(HashMap::new())),
|
sessions: Arc::new(Mutex::new(HashMap::new())),
|
||||||
agent: agent_ptr,
|
agent: agent_ptr,
|
||||||
@@ -584,7 +622,7 @@ impl GooseAcpAgent {
|
|||||||
};
|
};
|
||||||
|
|
||||||
cx.send_request(permission_request)
|
cx.send_request(permission_request)
|
||||||
.await_when_result_received(move |result| async move {
|
.on_receiving_result(move |result| async move {
|
||||||
match result {
|
match result {
|
||||||
Ok(response) => {
|
Ok(response) => {
|
||||||
agent
|
agent
|
||||||
@@ -1029,7 +1067,7 @@ struct GooseAcpHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl JrMessageHandler for GooseAcpHandler {
|
impl JrMessageHandler for GooseAcpHandler {
|
||||||
type Role = AgentToClient;
|
type Link = AgentToClient;
|
||||||
|
|
||||||
fn describe_chain(&self) -> impl std::fmt::Debug {
|
fn describe_chain(&self) -> impl std::fmt::Debug {
|
||||||
"goose-acp"
|
"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");
|
info!("listening on stdio");
|
||||||
|
|
||||||
let outgoing = tokio::io::stdout().compat_write();
|
let outgoing = tokio::io::stdout().compat_write();
|
||||||
let incoming = tokio::io::stdin().compat();
|
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 };
|
let handler = GooseAcpHandler { agent };
|
||||||
|
|
||||||
AgentToClient::builder()
|
AgentToClient::builder()
|
||||||
|
|||||||
@@ -41,7 +41,6 @@ use rmcp::model::{ErrorCode, ErrorData};
|
|||||||
|
|
||||||
use goose::config::paths::Paths;
|
use goose::config::paths::Paths;
|
||||||
use goose::conversation::message::{ActionRequiredData, Message, MessageContent};
|
use goose::conversation::message::{ActionRequiredData, Message, MessageContent};
|
||||||
use rand::{distributions::Alphanumeric, Rng};
|
|
||||||
use rustyline::EditMode;
|
use rustyline::EditMode;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use serde_json::Value;
|
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 {
|
impl CliSession {
|
||||||
#[allow(clippy::too_many_arguments)]
|
#[allow(clippy::too_many_arguments)]
|
||||||
pub async fn new(
|
pub async fn new(
|
||||||
@@ -256,10 +229,9 @@ impl CliSession {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let cmd = parts.remove(0).to_string();
|
let cmd = parts.remove(0).to_string();
|
||||||
let name = generate_extension_name(&extension_command);
|
|
||||||
|
|
||||||
let config = ExtensionConfig::Stdio {
|
let config = ExtensionConfig::Stdio {
|
||||||
name,
|
name: String::new(),
|
||||||
cmd,
|
cmd,
|
||||||
args: parts.iter().map(|s| s.to_string()).collect(),
|
args: parts.iter().map(|s| s.to_string()).collect(),
|
||||||
envs: Envs::new(envs),
|
envs: Envs::new(envs),
|
||||||
@@ -287,10 +259,8 @@ impl CliSession {
|
|||||||
/// # Arguments
|
/// # Arguments
|
||||||
/// * `extension_url` - URL of the server
|
/// * `extension_url` - URL of the server
|
||||||
pub async fn add_remote_extension(&mut self, extension_url: String) -> Result<()> {
|
pub async fn add_remote_extension(&mut self, extension_url: String) -> Result<()> {
|
||||||
let name = generate_extension_name(&extension_url);
|
|
||||||
|
|
||||||
let config = ExtensionConfig::Sse {
|
let config = ExtensionConfig::Sse {
|
||||||
name,
|
name: String::new(),
|
||||||
uri: extension_url,
|
uri: extension_url,
|
||||||
envs: Envs::new(HashMap::new()),
|
envs: Envs::new(HashMap::new()),
|
||||||
env_keys: Vec::new(),
|
env_keys: Vec::new(),
|
||||||
@@ -317,10 +287,8 @@ impl CliSession {
|
|||||||
/// # Arguments
|
/// # Arguments
|
||||||
/// * `extension_url` - URL of the server
|
/// * `extension_url` - URL of the server
|
||||||
pub async fn add_streamable_http_extension(&mut self, extension_url: String) -> Result<()> {
|
pub async fn add_streamable_http_extension(&mut self, extension_url: String) -> Result<()> {
|
||||||
let name = generate_extension_name(&extension_url);
|
|
||||||
|
|
||||||
let config = ExtensionConfig::StreamableHttp {
|
let config = ExtensionConfig::StreamableHttp {
|
||||||
name,
|
name: String::new(),
|
||||||
uri: extension_url,
|
uri: extension_url,
|
||||||
envs: Envs::new(HashMap::new()),
|
envs: Envs::new(HashMap::new()),
|
||||||
env_keys: Vec::new(),
|
env_keys: Vec::new(),
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ schemars = "1.0"
|
|||||||
lazy_static = "1.5"
|
lazy_static = "1.5"
|
||||||
shellexpand = "3.1.0"
|
shellexpand = "3.1.0"
|
||||||
indoc = "2.0.5"
|
indoc = "2.0.5"
|
||||||
xcap = "0.0.14"
|
xcap = "=0.4.0"
|
||||||
reqwest = { version = "0.11", features = [
|
reqwest = { version = "0.11", features = [
|
||||||
"json",
|
"json",
|
||||||
"rustls-tls-native-roots",
|
"rustls-tls-native-roots",
|
||||||
|
|||||||
@@ -368,7 +368,7 @@ mod tests {
|
|||||||
async fn test_pdf_text_extraction() {
|
async fn test_pdf_text_extraction() {
|
||||||
let test_pdf_path = PathBuf::from(env!("CARGO_MANIFEST_DIR"))
|
let test_pdf_path = PathBuf::from(env!("CARGO_MANIFEST_DIR"))
|
||||||
.join("src/computercontroller/tests/data/test.pdf");
|
.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());
|
println!("Testing text extraction from: {}", test_pdf_path.display());
|
||||||
|
|
||||||
@@ -390,7 +390,7 @@ mod tests {
|
|||||||
async fn test_pdf_image_extraction() {
|
async fn test_pdf_image_extraction() {
|
||||||
let test_pdf_path = PathBuf::from(env!("CARGO_MANIFEST_DIR"))
|
let test_pdf_path = PathBuf::from(env!("CARGO_MANIFEST_DIR"))
|
||||||
.join("src/computercontroller/tests/data/test_image.pdf");
|
.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());
|
println!("Testing image extraction from: {}", test_pdf_path.display());
|
||||||
|
|
||||||
@@ -436,7 +436,7 @@ mod tests {
|
|||||||
|
|
||||||
#[tokio::test]
|
#[tokio::test]
|
||||||
async fn test_pdf_invalid_path() {
|
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;
|
let result = pdf_tool("nonexistent.pdf", "extract_text", &cache_dir).await;
|
||||||
|
|
||||||
assert!(result.is_err(), "Should fail with invalid path");
|
assert!(result.is_err(), "Should fail with invalid path");
|
||||||
@@ -446,7 +446,7 @@ mod tests {
|
|||||||
async fn test_pdf_invalid_operation() {
|
async fn test_pdf_invalid_operation() {
|
||||||
let test_pdf_path = PathBuf::from(env!("CARGO_MANIFEST_DIR"))
|
let test_pdf_path = PathBuf::from(env!("CARGO_MANIFEST_DIR"))
|
||||||
.join("src/computercontroller/tests/data/test.pdf");
|
.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(
|
let result = pdf_tool(
|
||||||
test_pdf_path.to_str().unwrap(),
|
test_pdf_path.to_str().unwrap(),
|
||||||
|
|||||||
@@ -588,7 +588,7 @@ impl DeveloperServer {
|
|||||||
})?;
|
})?;
|
||||||
|
|
||||||
let window_titles: Vec<String> =
|
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"));
|
let content_text = format!("Available windows:\n{}", window_titles.join("\n"));
|
||||||
|
|
||||||
@@ -628,7 +628,7 @@ impl DeveloperServer {
|
|||||||
|
|
||||||
let window = windows
|
let window = windows
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.find(|w| w.title() == window_title)
|
.find(|w| w.title().is_ok_and(|t| &t == window_title))
|
||||||
.ok_or_else(|| {
|
.ok_or_else(|| {
|
||||||
ErrorData::new(
|
ErrorData::new(
|
||||||
ErrorCode::INTERNAL_ERROR,
|
ErrorCode::INTERNAL_ERROR,
|
||||||
|
|||||||
@@ -121,7 +121,8 @@ unbinder = "0.1.7"
|
|||||||
winapi = { version = "0.3", features = ["wincred"] }
|
winapi = { version = "0.3", features = ["wincred"] }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
sacp = "9.0.0"
|
sacp = "10.0.0-alpha.3"
|
||||||
|
agent-client-protocol-schema = "0.10.5"
|
||||||
criterion = "0.5"
|
criterion = "0.5"
|
||||||
serial_test = "3.2.0"
|
serial_test = "3.2.0"
|
||||||
mockall = "0.13.1"
|
mockall = "0.13.1"
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ use axum::http::{HeaderMap, HeaderName};
|
|||||||
use chrono::{DateTime, Utc};
|
use chrono::{DateTime, Utc};
|
||||||
use futures::stream::{FuturesUnordered, StreamExt};
|
use futures::stream::{FuturesUnordered, StreamExt};
|
||||||
use futures::{future, FutureExt};
|
use futures::{future, FutureExt};
|
||||||
|
use rand::{distributions::Alphanumeric, Rng};
|
||||||
use rmcp::service::{ClientInitializeError, ServiceError};
|
use rmcp::service::{ClientInitializeError, ServiceError};
|
||||||
use rmcp::transport::streamable_http_client::{
|
use rmcp::transport::streamable_http_client::{
|
||||||
AuthRequiredError, StreamableHttpClientTransportConfig, StreamableHttpError,
|
AuthRequiredError, StreamableHttpClientTransportConfig, StreamableHttpError,
|
||||||
@@ -145,6 +146,31 @@ fn normalize(input: String) -> String {
|
|||||||
result.to_lowercase()
|
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 {
|
fn resolve_command(cmd: &str) -> PathBuf {
|
||||||
SearchPaths::builder()
|
SearchPaths::builder()
|
||||||
.with_npm()
|
.with_npm()
|
||||||
@@ -574,14 +600,18 @@ impl ExtensionManager {
|
|||||||
};
|
};
|
||||||
|
|
||||||
let server_info = client.get_info().cloned();
|
let server_info = client.get_info().cloned();
|
||||||
self.add_client(
|
|
||||||
sanitized_name,
|
// Only generate name from server info when config has no name (e.g., CLI --with-*-extension args)
|
||||||
config,
|
let mut extensions = self.extensions.lock().await;
|
||||||
Arc::new(Mutex::new(client)),
|
let final_name = if sanitized_name.is_empty() {
|
||||||
server_info,
|
generate_extension_name(server_info.as_ref(), |n| extensions.contains_key(n))
|
||||||
temp_dir,
|
} else {
|
||||||
)
|
sanitized_name
|
||||||
.await;
|
};
|
||||||
|
extensions.insert(
|
||||||
|
final_name,
|
||||||
|
Extension::new(config, Arc::new(Mutex::new(client)), server_info, temp_dir),
|
||||||
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
@@ -1781,4 +1811,33 @@ mod tests {
|
|||||||
);
|
);
|
||||||
assert_eq!(result, "Authorization: Bearer secret123 and API key456");
|
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() {
|
if !resp.status().is_success() {
|
||||||
return Err(anyhow::anyhow!(
|
return Err(anyhow::anyhow!(
|
||||||
"Failed to get OIDC configuration from {}",
|
"Failed to get OIDC configuration from {}",
|
||||||
oidc_url.to_string()
|
oidc_url
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ use sacp::schema::{
|
|||||||
};
|
};
|
||||||
use sacp::{ClientToAgent, JrConnectionCx};
|
use sacp::{ClientToAgent, JrConnectionCx};
|
||||||
use std::collections::VecDeque;
|
use std::collections::VecDeque;
|
||||||
|
use std::path::Path;
|
||||||
use std::process::Stdio;
|
use std::process::Stdio;
|
||||||
use std::sync::{Arc, Mutex};
|
use std::sync::{Arc, Mutex};
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
@@ -35,24 +36,30 @@ async fn test_acp_basic_completion() {
|
|||||||
)])
|
)])
|
||||||
.await;
|
.await;
|
||||||
|
|
||||||
run_acp_session(&mock_server, vec![], |cx, session_id, updates| async move {
|
run_acp_session(
|
||||||
let response = cx
|
&mock_server,
|
||||||
.send_request(PromptRequest {
|
vec![],
|
||||||
session_id,
|
&[],
|
||||||
prompt: vec![ContentBlock::Text(TextContent {
|
tempfile::tempdir().unwrap().path(),
|
||||||
text: prompt.to_string(),
|
|cx, session_id, updates| async move {
|
||||||
annotations: None,
|
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,
|
||||||
})],
|
})
|
||||||
meta: None,
|
.block_task()
|
||||||
})
|
.await
|
||||||
.block_task()
|
.unwrap();
|
||||||
.await
|
|
||||||
.unwrap();
|
|
||||||
|
|
||||||
assert_eq!(response.stop_reason, StopReason::EndTurn);
|
assert_eq!(response.stop_reason, StopReason::EndTurn);
|
||||||
wait_for_text(&updates, "2", Duration::from_secs(5)).await;
|
wait_for_text(&updates, "2", Duration::from_secs(5)).await;
|
||||||
})
|
},
|
||||||
|
)
|
||||||
.await;
|
.await;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -80,6 +87,8 @@ async fn test_acp_with_mcp_http_server() {
|
|||||||
url: mcp_url,
|
url: mcp_url,
|
||||||
headers: vec![],
|
headers: vec![],
|
||||||
}],
|
}],
|
||||||
|
&[],
|
||||||
|
tempfile::tempdir().unwrap().path(),
|
||||||
|cx, session_id, updates| async move {
|
|cx, session_id, updates| async move {
|
||||||
let response = cx
|
let response = cx
|
||||||
.send_request(PromptRequest {
|
.send_request(PromptRequest {
|
||||||
@@ -102,6 +111,63 @@ async fn test_acp_with_mcp_http_server() {
|
|||||||
.await;
|
.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(
|
async fn wait_for_text(
|
||||||
updates: &Arc<Mutex<Vec<SessionNotification>>>,
|
updates: &Arc<Mutex<Vec<SessionNotification>>>,
|
||||||
expected: &str,
|
expected: &str,
|
||||||
@@ -110,7 +176,7 @@ async fn wait_for_text(
|
|||||||
let deadline = tokio::time::Instant::now() + timeout;
|
let deadline = tokio::time::Instant::now() + timeout;
|
||||||
loop {
|
loop {
|
||||||
let actual = extract_text(&updates.lock().unwrap());
|
let actual = extract_text(&updates.lock().unwrap());
|
||||||
if actual == expected {
|
if actual.contains(expected) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if tokio::time::Instant::now() > deadline {
|
if tokio::time::Instant::now() > deadline {
|
||||||
@@ -184,10 +250,13 @@ fn extract_text(updates: &[SessionNotification]) -> String {
|
|||||||
.collect()
|
.collect()
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn spawn_goose_acp(mock_server: &MockServer) -> Child {
|
async fn spawn_goose_acp(mock_server: &MockServer, builtins: &[&str], data_root: &Path) -> Child {
|
||||||
Command::new(&*common::GOOSE_BINARY)
|
let mut cmd = Command::new(&*common::GOOSE_BINARY);
|
||||||
.args(["acp"])
|
cmd.args(["acp"]);
|
||||||
.stdin(Stdio::piped())
|
if !builtins.is_empty() {
|
||||||
|
cmd.arg("--with-builtin").arg(builtins.join(","));
|
||||||
|
}
|
||||||
|
cmd.stdin(Stdio::piped())
|
||||||
.stdout(Stdio::piped())
|
.stdout(Stdio::piped())
|
||||||
.stderr(Stdio::piped())
|
.stderr(Stdio::piped())
|
||||||
.env("GOOSE_PROVIDER", "openai")
|
.env("GOOSE_PROVIDER", "openai")
|
||||||
@@ -195,6 +264,7 @@ async fn spawn_goose_acp(mock_server: &MockServer) -> Child {
|
|||||||
.env("GOOSE_MODE", "approve")
|
.env("GOOSE_MODE", "approve")
|
||||||
.env("OPENAI_HOST", mock_server.uri())
|
.env("OPENAI_HOST", mock_server.uri())
|
||||||
.env("OPENAI_API_KEY", "test-key")
|
.env("OPENAI_API_KEY", "test-key")
|
||||||
|
.env("GOOSE_PATH_ROOT", data_root)
|
||||||
.env(
|
.env(
|
||||||
"RUST_LOG",
|
"RUST_LOG",
|
||||||
std::env::var("RUST_LOG").unwrap_or_else(|_| "info".into()),
|
std::env::var("RUST_LOG").unwrap_or_else(|_| "info".into()),
|
||||||
@@ -204,8 +274,13 @@ async fn spawn_goose_acp(mock_server: &MockServer) -> Child {
|
|||||||
.unwrap()
|
.unwrap()
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn run_acp_session<F, Fut>(mock_server: &MockServer, mcp_servers: Vec<McpServer>, test_fn: F)
|
async fn run_acp_session<F, Fut>(
|
||||||
where
|
mock_server: &MockServer,
|
||||||
|
mcp_servers: Vec<McpServer>,
|
||||||
|
builtins: &[&str],
|
||||||
|
data_root: &Path,
|
||||||
|
test_fn: F,
|
||||||
|
) where
|
||||||
F: FnOnce(
|
F: FnOnce(
|
||||||
JrConnectionCx<ClientToAgent>,
|
JrConnectionCx<ClientToAgent>,
|
||||||
sacp::schema::SessionId,
|
sacp::schema::SessionId,
|
||||||
@@ -213,7 +288,7 @@ where
|
|||||||
) -> Fut,
|
) -> Fut,
|
||||||
Fut: std::future::Future<Output = ()>,
|
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 work_dir = tempfile::tempdir().unwrap();
|
||||||
let updates = Arc::new(Mutex::new(Vec::new()));
|
let updates = Arc::new(Mutex::new(Vec::new()));
|
||||||
let outgoing = child.stdin.take().unwrap().compat_write();
|
let outgoing = child.stdin.take().unwrap().compat_write();
|
||||||
@@ -248,8 +323,10 @@ where
|
|||||||
},
|
},
|
||||||
sacp::on_receive_request!(),
|
sacp::on_receive_request!(),
|
||||||
)
|
)
|
||||||
.with_client(
|
.connect_to(transport)
|
||||||
transport,
|
.unwrap()
|
||||||
|
.run_until({
|
||||||
|
let updates = updates.clone();
|
||||||
move |cx: JrConnectionCx<ClientToAgent>| async move {
|
move |cx: JrConnectionCx<ClientToAgent>| async move {
|
||||||
cx.send_request(InitializeRequest {
|
cx.send_request(InitializeRequest {
|
||||||
protocol_version: PROTOCOL_VERSION,
|
protocol_version: PROTOCOL_VERSION,
|
||||||
@@ -273,8 +350,8 @@ where
|
|||||||
|
|
||||||
test_fn(cx.clone(), session.session_id, updates).await;
|
test_fn(cx.clone(), session.session_id, updates).await;
|
||||||
Ok(())
|
Ok(())
|
||||||
},
|
}
|
||||||
)
|
})
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
}
|
}
|
||||||
@@ -305,7 +382,11 @@ impl ServerHandler for Lookup {
|
|||||||
ServerInfo {
|
ServerInfo {
|
||||||
protocol_version: ProtocolVersion::V_2025_03_26,
|
protocol_version: ProtocolVersion::V_2025_03_26,
|
||||||
capabilities: ServerCapabilities::builder().enable_tools().build(),
|
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()),
|
instructions: Some("Lookup server with get_code tool.".into()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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]
|
||||||
@@ -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]
|
||||||
@@ -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]
|
||||||
@@ -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]
|
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]
|
data: [DONE]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user