From 270de0a220016be9de915b0ec8c4d8c112c3ad25 Mon Sep 17 00:00:00 2001 From: Djordje Lukic Date: Tue, 20 Jan 2026 00:14:14 +0100 Subject: [PATCH] Don't enable thinking by default This should be explicitly set on the model config Signed-off-by: Djordje Lukic --- cmd/root/run.go | 54 +-- cmd/root/run_test.go | 267 ------------ .../cassettes/TestA2AServer_MultiAgent.yaml | 404 +----------------- .../TestExec_Anthropic_AgentsMd.yaml | 71 +-- .../TestExec_Anthropic_ToolCall.yaml | 169 +------- .../cassettes/TestExec_Gemini_ToolCall.yaml | 12 +- .../cassettes/TestMCP_MultiAgent.yaml | 291 ++----------- pkg/app/app_test.go | 2 +- pkg/session/session.go | 2 +- pkg/teamloader/teamloader.go | 4 - 10 files changed, 87 insertions(+), 1189 deletions(-) delete mode 100644 cmd/root/run_test.go diff --git a/cmd/root/run.go b/cmd/root/run.go index 581694f07..a42194003 100644 --- a/cmd/root/run.go +++ b/cmd/root/run.go @@ -7,7 +7,6 @@ import ( "log/slog" "os" "path/filepath" - "strings" "github.com/mattn/go-isatty" "github.com/spf13/cobra" @@ -16,7 +15,6 @@ import ( "github.com/docker/cagent/pkg/app" "github.com/docker/cagent/pkg/cli" "github.com/docker/cagent/pkg/config" - "github.com/docker/cagent/pkg/config/latest" "github.com/docker/cagent/pkg/paths" "github.com/docker/cagent/pkg/runtime" "github.com/docker/cagent/pkg/session" @@ -312,17 +310,14 @@ func (f *runExecFlags) createLocalRuntimeAndSession(ctx context.Context, loadRes slog.Debug("Loaded existing session", "session_id", f.sessionID, "agent", f.agentName) } else { - // Determine initial thinking state based on config version and user configuration. - thinking := computeInitialThinking(loadResult, f.agentName) sess = session.New( session.WithMaxIterations(agent.MaxIterations()), session.WithToolsApproved(f.autoApprove), session.WithHideToolResults(f.hideToolResults), - session.WithThinking(thinking), ) // Session is stored lazily on first UpdateSession call (when content is added) // This avoids creating empty sessions in the database - slog.Debug("Using local runtime", "agent", f.agentName, "thinking", thinking) + slog.Debug("Using local runtime", "agent", f.agentName) } return localRt, sess, nil @@ -382,50 +377,3 @@ func (f *runExecFlags) handleRunMode(ctx context.Context, rt runtime.Runtime, se return runTUI(ctx, rt, sess, opts...) } - -// computeInitialThinking determines whether thinking should be enabled at session startup. -// For v4+ configs: thinking is enabled by default (provider defaults will apply). -// For v0-v3 configs: thinking is disabled unless the user explicitly configured thinking_budget -// in their model config with an enabled value. -func computeInitialThinking(loadResult *teamloader.LoadResult, agentName string) bool { - // For v4 and newer (or unknown/empty version), default to thinking enabled - if loadResult.ConfigVersion == "" || loadResult.ConfigVersion == latest.Version { - return true - } - - // For older configs (v0-v3), check if user explicitly configured thinking_budget - // Get the agent's default model reference - modelRef := loadResult.AgentDefaultModels[agentName] - if modelRef == "" { - // No model reference - thinking disabled for old configs - return false - } - - // If using multiple models (comma-separated), check only the first (primary) model - if idx := strings.Index(modelRef, ","); idx != -1 { - modelRef = modelRef[:idx] - } - - // Look up the raw model config (before provider defaults were applied) - rawModelCfg, exists := loadResult.Models[modelRef] - if !exists { - // Inline model spec (e.g., "openai/gpt-4o") or not found - no explicit thinking config - return false - } - - // Check if user explicitly set thinking_budget in their config - if rawModelCfg.ThinkingBudget == nil { - // Not set - disable thinking for old configs - return false - } - - // User set thinking_budget - check if it's enabled (not "none" and not tokens=0) - tb := rawModelCfg.ThinkingBudget - if tb.Effort == "none" || (tb.Tokens == 0 && tb.Effort == "") { - // Explicitly disabled - return false - } - - // User explicitly enabled thinking - return true -} diff --git a/cmd/root/run_test.go b/cmd/root/run_test.go deleted file mode 100644 index effc0ae43..000000000 --- a/cmd/root/run_test.go +++ /dev/null @@ -1,267 +0,0 @@ -package root - -import ( - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/docker/cagent/pkg/config/latest" - "github.com/docker/cagent/pkg/teamloader" -) - -func TestComputeInitialThinking(t *testing.T) { - t.Parallel() - - tests := []struct { - name string - loadResult *teamloader.LoadResult - agentName string - expected bool - }{ - { - name: "v4 config - thinking enabled by default", - loadResult: &teamloader.LoadResult{ - ConfigVersion: "4", - AgentDefaultModels: map[string]string{"root": "my_model"}, - Models: map[string]latest.ModelConfig{"my_model": {Provider: "openai", Model: "gpt-4o"}}, - }, - agentName: "root", - expected: true, - }, - { - name: "empty version (latest) - thinking enabled by default", - loadResult: &teamloader.LoadResult{ - ConfigVersion: "", - AgentDefaultModels: map[string]string{"root": "my_model"}, - Models: map[string]latest.ModelConfig{"my_model": {Provider: "openai", Model: "gpt-4o"}}, - }, - agentName: "root", - expected: true, - }, - { - name: "v3 config - no thinking_budget - disabled", - loadResult: &teamloader.LoadResult{ - ConfigVersion: "3", - AgentDefaultModels: map[string]string{"root": "my_model"}, - Models: map[string]latest.ModelConfig{"my_model": {Provider: "openai", Model: "gpt-4o"}}, - }, - agentName: "root", - expected: false, - }, - { - name: "v3 config - thinking_budget explicitly set - enabled", - loadResult: &teamloader.LoadResult{ - ConfigVersion: "3", - AgentDefaultModels: map[string]string{"root": "my_model"}, - Models: map[string]latest.ModelConfig{ - "my_model": { - Provider: "openai", - Model: "gpt-4o", - ThinkingBudget: &latest.ThinkingBudget{Effort: "medium"}, - }, - }, - }, - agentName: "root", - expected: true, - }, - { - name: "v3 config - thinking_budget explicitly disabled with tokens=0", - loadResult: &teamloader.LoadResult{ - ConfigVersion: "3", - AgentDefaultModels: map[string]string{"root": "my_model"}, - Models: map[string]latest.ModelConfig{ - "my_model": { - Provider: "anthropic", - Model: "claude-sonnet-4-0", - ThinkingBudget: &latest.ThinkingBudget{Tokens: 0}, - }, - }, - }, - agentName: "root", - expected: false, - }, - { - name: "v3 config - thinking_budget explicitly disabled with effort=none", - loadResult: &teamloader.LoadResult{ - ConfigVersion: "3", - AgentDefaultModels: map[string]string{"root": "my_model"}, - Models: map[string]latest.ModelConfig{ - "my_model": { - Provider: "openai", - Model: "gpt-4o", - ThinkingBudget: &latest.ThinkingBudget{Effort: "none"}, - }, - }, - }, - agentName: "root", - expected: false, - }, - { - name: "v0 config - inline model spec - disabled (no explicit config)", - loadResult: &teamloader.LoadResult{ - ConfigVersion: "0", - AgentDefaultModels: map[string]string{"root": "openai/gpt-4o"}, - Models: map[string]latest.ModelConfig{}, // inline specs won't be in Models - }, - agentName: "root", - expected: false, - }, - { - name: "v1 config - no model reference - disabled", - loadResult: &teamloader.LoadResult{ - ConfigVersion: "1", - AgentDefaultModels: map[string]string{}, // missing agent - Models: map[string]latest.ModelConfig{}, - }, - agentName: "root", - expected: false, - }, - { - name: "v2 config - comma-separated models - checks first model", - loadResult: &teamloader.LoadResult{ - ConfigVersion: "2", - AgentDefaultModels: map[string]string{"root": "model_a,model_b"}, - Models: map[string]latest.ModelConfig{ - "model_a": { - Provider: "openai", - Model: "gpt-4o", - ThinkingBudget: &latest.ThinkingBudget{Effort: "high"}, - }, - "model_b": { - Provider: "anthropic", - Model: "claude-sonnet-4-0", - }, - }, - }, - agentName: "root", - expected: true, // first model has thinking enabled - }, - { - name: "v3 config - thinking_budget with tokens > 0 - enabled", - loadResult: &teamloader.LoadResult{ - ConfigVersion: "3", - AgentDefaultModels: map[string]string{"root": "my_model"}, - Models: map[string]latest.ModelConfig{ - "my_model": { - Provider: "anthropic", - Model: "claude-sonnet-4-0", - ThinkingBudget: &latest.ThinkingBudget{Tokens: 8192}, - }, - }, - }, - agentName: "root", - expected: true, - }, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - t.Parallel() - result := computeInitialThinking(tt.loadResult, tt.agentName) - assert.Equal(t, tt.expected, result) - }) - } -} - -// TestThinkingDisabledForOldConfigVersions specifically tests that thinking is disabled -// for v1, v2, v3 configs when thinking_budget is NOT defined, even with thinking-capable models. -// This is the key behavioral change: old configs default to thinking=off. -func TestThinkingDisabledForOldConfigVersions(t *testing.T) { - t.Parallel() - - // All these models would normally get thinking defaults in v4, - // but should have thinking DISABLED in v1/v2/v3 when not explicitly configured. - thinkingCapableModels := []latest.ModelConfig{ - {Provider: "openai", Model: "gpt-4o"}, - {Provider: "openai", Model: "gpt-5"}, - {Provider: "anthropic", Model: "claude-sonnet-4-0"}, - {Provider: "google", Model: "gemini-2.5-pro"}, - {Provider: "amazon-bedrock", Model: "anthropic.claude-3-sonnet"}, - } - - oldVersions := []string{"0", "1", "2", "3"} - - for _, version := range oldVersions { - for _, modelCfg := range thinkingCapableModels { - modelName := modelCfg.Provider + "/" + modelCfg.Model - t.Run("v"+version+"_"+modelName+"_no_thinking_budget", func(t *testing.T) { - t.Parallel() - - loadResult := &teamloader.LoadResult{ - ConfigVersion: version, - AgentDefaultModels: map[string]string{"root": "my_model"}, - Models: map[string]latest.ModelConfig{ - "my_model": modelCfg, // No ThinkingBudget set - }, - } - - result := computeInitialThinking(loadResult, "root") - assert.False(t, result, - "v%s config with %s should have thinking DISABLED when thinking_budget is not defined", - version, modelName) - }) - } - } -} - -// TestThinkingEnabledForV4 verifies that v4 configs get thinking enabled by default -// (the opposite of old configs). -func TestThinkingEnabledForV4(t *testing.T) { - t.Parallel() - - loadResult := &teamloader.LoadResult{ - ConfigVersion: "4", - AgentDefaultModels: map[string]string{"root": "my_model"}, - Models: map[string]latest.ModelConfig{ - "my_model": {Provider: "openai", Model: "gpt-5"}, // No ThinkingBudget set - }, - } - - result := computeInitialThinking(loadResult, "root") - assert.True(t, result, "v4 config should have thinking ENABLED by default") -} - -// TestThinkingExplicitlySetInOldConfigs verifies that when a user explicitly sets -// thinking_budget in an old config, it IS respected and thinking is enabled. -func TestThinkingExplicitlySetInOldConfigs(t *testing.T) { - t.Parallel() - - oldVersions := []string{"1", "2", "3"} - explicitConfigs := []latest.ThinkingBudget{ - {Effort: "medium"}, - {Effort: "high"}, - {Tokens: 8192}, - {Tokens: 16000}, - } - - for _, version := range oldVersions { - for _, budget := range explicitConfigs { - budgetDesc := "" - if budget.Effort != "" { - budgetDesc = "effort_" + budget.Effort - } else { - budgetDesc = "tokens_" + string(rune(budget.Tokens)) - } - t.Run("v"+version+"_explicit_"+budgetDesc, func(t *testing.T) { - t.Parallel() - - loadResult := &teamloader.LoadResult{ - ConfigVersion: version, - AgentDefaultModels: map[string]string{"root": "my_model"}, - Models: map[string]latest.ModelConfig{ - "my_model": { - Provider: "openai", - Model: "gpt-4o", - ThinkingBudget: &budget, - }, - }, - } - - result := computeInitialThinking(loadResult, "root") - assert.True(t, result, - "v%s config with explicit thinking_budget should have thinking ENABLED", - version) - }) - } - } -} diff --git a/e2e/testdata/cassettes/TestA2AServer_MultiAgent.yaml b/e2e/testdata/cassettes/TestA2AServer_MultiAgent.yaml index e6cfd3aea..050dd02b2 100644 --- a/e2e/testdata/cassettes/TestA2AServer_MultiAgent.yaml +++ b/e2e/testdata/cassettes/TestA2AServer_MultiAgent.yaml @@ -8,7 +8,7 @@ interactions: proto_minor: 1 content_length: 0 host: api.openai.com - body: '{"input":[{"content":[{"text":"You are a helpful AI assistant that generates concise, descriptive titles for conversations. You will be given a conversation history and asked to create a title that captures the main topic.","type":"input_text"}],"role":"system"},{"content":"Based on the following message a user sent to an AI assistant, generate a short, descriptive title (maximum 50 characters) that captures the main topic or purpose of the conversation. Return ONLY the title text, nothing else.\n\nUser message: Say hello.\n\n","role":"user"}],"model":"gpt-5-mini","reasoning":{"effort":"medium","summary":"detailed"},"stream":true}' + body: '{"input":[{"content":[{"text":"You are a multi-agent system, make sure to answer the user query in the most helpful way possible. You have access to these sub-agents:\nName: web | Description: \n\nIMPORTANT: You can ONLY transfer tasks to the agents listed above using their ID. The valid agent names are: web. You MUST NOT attempt to transfer to any other agent IDs - doing so will cause system errors.\n\nIf you are the best to answer the question according to your description, you can answer it.\n\nIf another agent is better for answering the question according to its description, call `transfer_task` function to transfer the question to that agent using the agent''s ID. When transferring, do not generate any text other than the function call.\n\n","type":"input_text"}],"role":"system"},{"content":[{"text":"You are a knowledgeable assistant that helps users with various tasks.\nBe helpful, accurate, and concise in your responses.\n","type":"input_text"}],"role":"system"},{"content":"Say hello.","role":"user"}],"model":"gpt-5-mini","tools":[{"strict":true,"parameters":{"additionalProperties":false,"properties":{"agent":{"description":"The name of the agent to transfer the task to.","type":"string"},"expected_output":{"description":"The expected output from the member (optional).","type":"string"},"task":{"description":"A clear and concise description of the task the member should achieve.","type":"string"}},"required":["agent","expected_output","task"],"type":"object"},"name":"transfer_task","description":"Use this function to transfer a task to the selected team member.\n You must provide a clear and concise description of the task the member should achieve AND the expected output.","type":"function"}],"stream":true}' url: https://api.openai.com/v1/responses method: POST response: @@ -18,425 +18,63 @@ interactions: content_length: -1 body: |+ event: response.created - data: {"type":"response.created","response":{"id":"resp_0d1f10c9986b28ec00696b71757c1c8195960c36fb3f543a1c","object":"response","created_at":1768649077,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-5-mini-2025-08-07","output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":null,"reasoning":{"effort":"medium","summary":"detailed"},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":0} + data: {"type":"response.created","response":{"id":"resp_017a0be17f6092e100696f428b44dc8190abcb4e6563147c7b","object":"response","created_at":1768899211,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-5-mini-2025-08-07","output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":null,"reasoning":{"effort":"medium","summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tools":[{"type":"function","description":"Use this function to transfer a task to the selected team member.\n You must provide a clear and concise description of the task the member should achieve AND the expected output.","name":"transfer_task","parameters":{"additionalProperties":false,"properties":{"agent":{"description":"The name of the agent to transfer the task to.","type":"string"},"expected_output":{"description":"The expected output from the member (optional).","type":"string"},"task":{"description":"A clear and concise description of the task the member should achieve.","type":"string"}},"required":["agent","expected_output","task"],"type":"object"},"strict":true}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":0} event: response.in_progress - data: {"type":"response.in_progress","response":{"id":"resp_0d1f10c9986b28ec00696b71757c1c8195960c36fb3f543a1c","object":"response","created_at":1768649077,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-5-mini-2025-08-07","output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":null,"reasoning":{"effort":"medium","summary":"detailed"},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":1} + data: {"type":"response.in_progress","response":{"id":"resp_017a0be17f6092e100696f428b44dc8190abcb4e6563147c7b","object":"response","created_at":1768899211,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-5-mini-2025-08-07","output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":null,"reasoning":{"effort":"medium","summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tools":[{"type":"function","description":"Use this function to transfer a task to the selected team member.\n You must provide a clear and concise description of the task the member should achieve AND the expected output.","name":"transfer_task","parameters":{"additionalProperties":false,"properties":{"agent":{"description":"The name of the agent to transfer the task to.","type":"string"},"expected_output":{"description":"The expected output from the member (optional).","type":"string"},"task":{"description":"A clear and concise description of the task the member should achieve.","type":"string"}},"required":["agent","expected_output","task"],"type":"object"},"strict":true}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":1} event: response.output_item.added - data: {"type":"response.output_item.added","item":{"id":"rs_0d1f10c9986b28ec00696b7175b5a88195865dd609bdfb3c3c","type":"reasoning","summary":[]},"output_index":0,"sequence_number":2} + data: {"type":"response.output_item.added","item":{"id":"rs_017a0be17f6092e100696f428bbcb881908bae5905d653b14b","type":"reasoning","summary":[]},"output_index":0,"sequence_number":2} event: response.output_item.done - data: {"type":"response.output_item.done","item":{"id":"rs_0d1f10c9986b28ec00696b7175b5a88195865dd609bdfb3c3c","type":"reasoning","summary":[]},"output_index":0,"sequence_number":3} + data: {"type":"response.output_item.done","item":{"id":"rs_017a0be17f6092e100696f428bbcb881908bae5905d653b14b","type":"reasoning","summary":[]},"output_index":0,"sequence_number":3} event: response.output_item.added - data: {"type":"response.output_item.added","item":{"id":"msg_0d1f10c9986b28ec00696b7178eb0c8195b0066a85f0261ba7","type":"message","status":"in_progress","content":[],"role":"assistant"},"output_index":1,"sequence_number":4} + data: {"type":"response.output_item.added","item":{"id":"msg_017a0be17f6092e100696f428c75448190b0c22eb9177b49c6","type":"message","status":"in_progress","content":[],"role":"assistant"},"output_index":1,"sequence_number":4} event: response.content_part.added - data: {"type":"response.content_part.added","content_index":0,"item_id":"msg_0d1f10c9986b28ec00696b7178eb0c8195b0066a85f0261ba7","output_index":1,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":""},"sequence_number":5} + data: {"type":"response.content_part.added","content_index":0,"item_id":"msg_017a0be17f6092e100696f428c75448190b0c22eb9177b49c6","output_index":1,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":""},"sequence_number":5} event: response.output_text.delta - data: {"type":"response.output_text.delta","content_index":0,"delta":"Request","item_id":"msg_0d1f10c9986b28ec00696b7178eb0c8195b0066a85f0261ba7","logprobs":[],"obfuscation":"z74121sKd","output_index":1,"sequence_number":6} + data: {"type":"response.output_text.delta","content_index":0,"delta":"Hello","item_id":"msg_017a0be17f6092e100696f428c75448190b0c22eb9177b49c6","logprobs":[],"obfuscation":"vxXNOb950tO","output_index":1,"sequence_number":6} event: response.output_text.delta - data: {"type":"response.output_text.delta","content_index":0,"delta":":","item_id":"msg_0d1f10c9986b28ec00696b7178eb0c8195b0066a85f0261ba7","logprobs":[],"obfuscation":"ay5jG1m6tdsvSGZ","output_index":1,"sequence_number":7} + data: {"type":"response.output_text.delta","content_index":0,"delta":"!","item_id":"msg_017a0be17f6092e100696f428c75448190b0c22eb9177b49c6","logprobs":[],"obfuscation":"BYwakiuYNI7rVIB","output_index":1,"sequence_number":7} event: response.output_text.delta - data: {"type":"response.output_text.delta","content_index":0,"delta":" Say","item_id":"msg_0d1f10c9986b28ec00696b7178eb0c8195b0066a85f0261ba7","logprobs":[],"obfuscation":"sTpEmOuGg9xB","output_index":1,"sequence_number":8} + data: {"type":"response.output_text.delta","content_index":0,"delta":" How","item_id":"msg_017a0be17f6092e100696f428c75448190b0c22eb9177b49c6","logprobs":[],"obfuscation":"fiGOlgM1BX7M","output_index":1,"sequence_number":8} event: response.output_text.delta - data: {"type":"response.output_text.delta","content_index":0,"delta":" Hello","item_id":"msg_0d1f10c9986b28ec00696b7178eb0c8195b0066a85f0261ba7","logprobs":[],"obfuscation":"PrulgsuG6p","output_index":1,"sequence_number":9} - - event: response.output_text.done - data: {"type":"response.output_text.done","content_index":0,"item_id":"msg_0d1f10c9986b28ec00696b7178eb0c8195b0066a85f0261ba7","logprobs":[],"output_index":1,"sequence_number":10,"text":"Request: Say Hello"} - - event: response.content_part.done - data: {"type":"response.content_part.done","content_index":0,"item_id":"msg_0d1f10c9986b28ec00696b7178eb0c8195b0066a85f0261ba7","output_index":1,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":"Request: Say Hello"},"sequence_number":11} - - event: response.output_item.done - data: {"type":"response.output_item.done","item":{"id":"msg_0d1f10c9986b28ec00696b7178eb0c8195b0066a85f0261ba7","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"Request: Say Hello"}],"role":"assistant"},"output_index":1,"sequence_number":12} - - event: response.completed - data: {"type":"response.completed","response":{"id":"resp_0d1f10c9986b28ec00696b71757c1c8195960c36fb3f543a1c","object":"response","created_at":1768649077,"status":"completed","background":false,"completed_at":1768649080,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-5-mini-2025-08-07","output":[{"id":"rs_0d1f10c9986b28ec00696b7175b5a88195865dd609bdfb3c3c","type":"reasoning","summary":[]},{"id":"msg_0d1f10c9986b28ec00696b7178eb0c8195b0066a85f0261ba7","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"Request: Say Hello"}],"role":"assistant"}],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":null,"reasoning":{"effort":"medium","summary":"detailed"},"safety_identifier":null,"service_tier":"default","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":{"input_tokens":95,"input_tokens_details":{"cached_tokens":0},"output_tokens":74,"output_tokens_details":{"reasoning_tokens":64},"total_tokens":169},"user":null,"metadata":{}},"sequence_number":13} - - headers: {} - status: 200 OK - code: 200 - duration: 350.26882ms - - id: 1 - request: - proto: HTTP/1.1 - proto_major: 1 - proto_minor: 1 - content_length: 0 - host: api.openai.com - body: '{"input":[{"content":[{"text":"You are a multi-agent system, make sure to answer the user query in the most helpful way possible. You have access to these sub-agents:\nName: web | Description: \n\nIMPORTANT: You can ONLY transfer tasks to the agents listed above using their ID. The valid agent names are: web. You MUST NOT attempt to transfer to any other agent IDs - doing so will cause system errors.\n\nIf you are the best to answer the question according to your description, you can answer it.\n\nIf another agent is better for answering the question according to its description, call `transfer_task` function to transfer the question to that agent using the agent''s ID. When transferring, do not generate any text other than the function call.\n\n","type":"input_text"}],"role":"system"},{"content":[{"text":"You are a knowledgeable assistant that helps users with various tasks.\nBe helpful, accurate, and concise in your responses.\n","type":"input_text"}],"role":"system"},{"content":"Say hello.","role":"user"}],"model":"gpt-5-mini","reasoning":{"effort":"medium","summary":"detailed"},"tools":[{"strict":true,"parameters":{"additionalProperties":false,"properties":{"agent":{"description":"The name of the agent to transfer the task to.","type":"string"},"expected_output":{"description":"The expected output from the member (optional).","type":"string"},"task":{"description":"A clear and concise description of the task the member should achieve.","type":"string"}},"required":["agent","expected_output","task"],"type":"object"},"name":"transfer_task","description":"Use this function to transfer a task to the selected team member.\n You must provide a clear and concise description of the task the member should achieve AND the expected output.","type":"function"}],"stream":true}' - url: https://api.openai.com/v1/responses - method: POST - response: - proto: HTTP/2.0 - proto_major: 2 - proto_minor: 0 - content_length: -1 - body: |+ - event: response.created - data: {"type":"response.created","response":{"id":"resp_0eaccefbe8d1cad100696b7175c7388194a0e40ce80ec719e0","object":"response","created_at":1768649077,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-5-mini-2025-08-07","output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":null,"reasoning":{"effort":"medium","summary":"detailed"},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tools":[{"type":"function","description":"Use this function to transfer a task to the selected team member.\n You must provide a clear and concise description of the task the member should achieve AND the expected output.","name":"transfer_task","parameters":{"additionalProperties":false,"properties":{"agent":{"description":"The name of the agent to transfer the task to.","type":"string"},"expected_output":{"description":"The expected output from the member (optional).","type":"string"},"task":{"description":"A clear and concise description of the task the member should achieve.","type":"string"}},"required":["agent","expected_output","task"],"type":"object"},"strict":true}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":0} - - event: response.in_progress - data: {"type":"response.in_progress","response":{"id":"resp_0eaccefbe8d1cad100696b7175c7388194a0e40ce80ec719e0","object":"response","created_at":1768649077,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-5-mini-2025-08-07","output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":null,"reasoning":{"effort":"medium","summary":"detailed"},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tools":[{"type":"function","description":"Use this function to transfer a task to the selected team member.\n You must provide a clear and concise description of the task the member should achieve AND the expected output.","name":"transfer_task","parameters":{"additionalProperties":false,"properties":{"agent":{"description":"The name of the agent to transfer the task to.","type":"string"},"expected_output":{"description":"The expected output from the member (optional).","type":"string"},"task":{"description":"A clear and concise description of the task the member should achieve.","type":"string"}},"required":["agent","expected_output","task"],"type":"object"},"strict":true}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":1} - - event: response.output_item.added - data: {"type":"response.output_item.added","item":{"id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","type":"reasoning","summary":[]},"output_index":0,"sequence_number":2} - - event: response.reasoning_summary_part.added - data: {"type":"response.reasoning_summary_part.added","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","output_index":0,"part":{"type":"summary_text","text":""},"sequence_number":3,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":"**Respond","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"lJthMOF","output_index":0,"sequence_number":4,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":"ing","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"EbIGNGSXpF8ob","output_index":0,"sequence_number":5,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" to","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"fFiS9oLrMAYj9","output_index":0,"sequence_number":6,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" a","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"7YXYT5ew5hYYWi","output_index":0,"sequence_number":7,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" greeting","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"WiyiwGX","output_index":0,"sequence_number":8,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":"**\n\nThe","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"S7RYG4ySK","output_index":0,"sequence_number":9,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" user","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"V52zMea7Tyo","output_index":0,"sequence_number":10,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" request","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"BkWDs9yM","output_index":0,"sequence_number":11,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" is","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"WEucjOkaNlk0g","output_index":0,"sequence_number":12,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" clear","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"fa1byp9YeN","output_index":0,"sequence_number":13,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":":","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"xdHfw6NTaCnd50l","output_index":0,"sequence_number":14,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" they","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"sCTYHW5SERA","output_index":0,"sequence_number":15,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" just","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"HaqdT2TZxpe","output_index":0,"sequence_number":16,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" want","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"pmyUuvCbvCX","output_index":0,"sequence_number":17,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" me","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"GJvRFnHhScXvI","output_index":0,"sequence_number":18,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" to","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"TFIf5Gyw2PDs9","output_index":0,"sequence_number":19,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" say","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"1y1cgusYRtga","output_index":0,"sequence_number":20,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" hello","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"vG2MIPRhx3","output_index":0,"sequence_number":21,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":".","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"CDihxcMSgxQWBme","output_index":0,"sequence_number":22,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" There","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"DdIpjBnHKG","output_index":0,"sequence_number":23,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":"’s","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"Pa9XJGq9MbTegS","output_index":0,"sequence_number":24,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" no","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"paPImpvUgo915","output_index":0,"sequence_number":25,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" need","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"EpP5rX7xmp1","output_index":0,"sequence_number":26,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" for","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"hcsg054ggOqW","output_index":0,"sequence_number":27,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" any","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"zRgTsrNGbfRU","output_index":0,"sequence_number":28,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" tool","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"58RKNXHHI7i","output_index":0,"sequence_number":29,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" calls","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"AHdDrtktDM","output_index":0,"sequence_number":30,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":",","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"XSm2z749n04jsOO","output_index":0,"sequence_number":31,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" just","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"fHqNuxCtWQJ","output_index":0,"sequence_number":32,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" a","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"2wCsPpiW02eYAb","output_index":0,"sequence_number":33,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" simple","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"dCQtFHBiB","output_index":0,"sequence_number":34,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" response","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"GQna88S","output_index":0,"sequence_number":35,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":".","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"xBPzrx4aDh4yxKa","output_index":0,"sequence_number":36,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" I","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"4NcclUzs3vYLk3","output_index":0,"sequence_number":37,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" think","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"JCVAatILCB","output_index":0,"sequence_number":38,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" a","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"eiF3YEMZ1eVW6N","output_index":0,"sequence_number":39,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" warm","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"GYpbg91Zqlm","output_index":0,"sequence_number":40,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" greeting","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"N3eq0zd","output_index":0,"sequence_number":41,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" like","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"0WQs6yM1Tqb","output_index":0,"sequence_number":42,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":",","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"2BSrmnyeHBkxiHY","output_index":0,"sequence_number":43,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" “","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"FQ7CpgQFHr47pU","output_index":0,"sequence_number":44,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":"Hello","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"eMG4eB5yN0x","output_index":0,"sequence_number":45,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":"!","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"qhq6sIviI4aeTWm","output_index":0,"sequence_number":46,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" How","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"n7b3fBEmDEM6","output_index":0,"sequence_number":47,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" can","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"yTg3w4YrGZNf","output_index":0,"sequence_number":48,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" I","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"7JEkmUoGTG0wmZ","output_index":0,"sequence_number":49,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" help","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"sxonATunKZ3","output_index":0,"sequence_number":50,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" you","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"PEDvw17REIIi","output_index":0,"sequence_number":51,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" today","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"CH9xdzcfnR","output_index":0,"sequence_number":52,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":"?”","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"iqJvjFWRq7SVdB","output_index":0,"sequence_number":53,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" would","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"YYDKSnPcCg","output_index":0,"sequence_number":54,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" work","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"woLRWORL2jy","output_index":0,"sequence_number":55,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" well","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"3KgSXehPDFi","output_index":0,"sequence_number":56,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":",","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"hpCMRPzrxaejdhQ","output_index":0,"sequence_number":57,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" but","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"iso5CzvHytBq","output_index":0,"sequence_number":58,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" I","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"UYItyAtWNFN86M","output_index":0,"sequence_number":59,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" must","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"D6IpYaonSR2","output_index":0,"sequence_number":60,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" keep","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"H1JoWYvxv4Y","output_index":0,"sequence_number":61,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" it","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"LpAuD6mtjLa1M","output_index":0,"sequence_number":62,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" concise","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"Zz30C2WT","output_index":0,"sequence_number":63,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" since","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"gEWwtErdVR","output_index":0,"sequence_number":64,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" they","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"Dudj3TpoNjj","output_index":0,"sequence_number":65,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" only","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"AdLWdgKZKTl","output_index":0,"sequence_number":66,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" asked","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"n3vXQDgsQZ","output_index":0,"sequence_number":67,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" for","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"c4QU3LdkT6y9","output_index":0,"sequence_number":68,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" a","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"5kiUVRo8S6uMhp","output_index":0,"sequence_number":69,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" greeting","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"0lyRCT7","output_index":0,"sequence_number":70,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":".","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"GKTWqiuwWIN7MTf","output_index":0,"sequence_number":71,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" So","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"MAOk9JFabq7YT","output_index":0,"sequence_number":72,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":",","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"6gaiLLFSEGaoWxv","output_index":0,"sequence_number":73,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" I","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"6htEeqC4pKq8nN","output_index":0,"sequence_number":74,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":"’ll","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"Sag609o8mxf1E","output_index":0,"sequence_number":75,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" go","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"H0wckFDtlu9bZ","output_index":0,"sequence_number":76,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" with","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"sIskUDN5KnT","output_index":0,"sequence_number":77,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" a","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"YpukEgagMmHJpJ","output_index":0,"sequence_number":78,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" simple","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"hdwBGpOzI","output_index":0,"sequence_number":79,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" “","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"phZY3esH6BWcZb","output_index":0,"sequence_number":80,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":"Hello","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"h4H1VPtqzE2","output_index":0,"sequence_number":81,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":"!”","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"fkNaILG98AA2gn","output_index":0,"sequence_number":82,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" and","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"qhFdEM7PM4mv","output_index":0,"sequence_number":83,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" then","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"abKEGUvdrW1","output_index":0,"sequence_number":84,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" add","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"yb4JYE4BVuD4","output_index":0,"sequence_number":85,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":",","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"Zw9C1PgVcWKDIsb","output_index":0,"sequence_number":86,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" \"","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"IrcCu6YaZ5UcXv","output_index":0,"sequence_number":87,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":"How","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"9pqmrQfRmH1hC","output_index":0,"sequence_number":88,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" can","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"tAWpNSVP5LRB","output_index":0,"sequence_number":89,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" I","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"5dd50t2hsfxXKd","output_index":0,"sequence_number":90,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" help","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"8yrbvOFjc4Z","output_index":0,"sequence_number":91,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" you","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"BzTMFsKNGvmw","output_index":0,"sequence_number":92,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" today","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"hzOSdOJ89N","output_index":0,"sequence_number":93,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":"?\"","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"l7aFUmEzX9JSS9","output_index":0,"sequence_number":94,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" That","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"3GTYRJeHGPY","output_index":0,"sequence_number":95,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" strikes","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"ikWshMkB","output_index":0,"sequence_number":96,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" a","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"rYGUYZScs1uHig","output_index":0,"sequence_number":97,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" good","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"CEyXOMj4iyw","output_index":0,"sequence_number":98,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" balance","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"xUPDh5Fq","output_index":0,"sequence_number":99,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":"!","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","obfuscation":"gqvOyWcCfmF0dZp","output_index":0,"sequence_number":100,"summary_index":0} - - event: response.reasoning_summary_text.done - data: {"type":"response.reasoning_summary_text.done","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","output_index":0,"sequence_number":101,"summary_index":0,"text":"**Responding to a greeting**\n\nThe user request is clear: they just want me to say hello. There’s no need for any tool calls, just a simple response. I think a warm greeting like, “Hello! How can I help you today?” would work well, but I must keep it concise since they only asked for a greeting. So, I’ll go with a simple “Hello!” and then add, \"How can I help you today?\" That strikes a good balance!"} - - event: response.reasoning_summary_part.done - data: {"type":"response.reasoning_summary_part.done","item_id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","output_index":0,"part":{"type":"summary_text","text":"**Responding to a greeting**\n\nThe user request is clear: they just want me to say hello. There’s no need for any tool calls, just a simple response. I think a warm greeting like, “Hello! How can I help you today?” would work well, but I must keep it concise since they only asked for a greeting. So, I’ll go with a simple “Hello!” and then add, \"How can I help you today?\" That strikes a good balance!"},"sequence_number":102,"summary_index":0} - - event: response.output_item.done - data: {"type":"response.output_item.done","item":{"id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","type":"reasoning","summary":[{"type":"summary_text","text":"**Responding to a greeting**\n\nThe user request is clear: they just want me to say hello. There’s no need for any tool calls, just a simple response. I think a warm greeting like, “Hello! How can I help you today?” would work well, but I must keep it concise since they only asked for a greeting. So, I’ll go with a simple “Hello!” and then add, \"How can I help you today?\" That strikes a good balance!"}]},"output_index":0,"sequence_number":103} - - event: response.output_item.added - data: {"type":"response.output_item.added","item":{"id":"msg_0eaccefbe8d1cad100696b717a48d48194a9862119b16f385f","type":"message","status":"in_progress","content":[],"role":"assistant"},"output_index":1,"sequence_number":104} - - event: response.content_part.added - data: {"type":"response.content_part.added","content_index":0,"item_id":"msg_0eaccefbe8d1cad100696b717a48d48194a9862119b16f385f","output_index":1,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":""},"sequence_number":105} - - event: response.output_text.delta - data: {"type":"response.output_text.delta","content_index":0,"delta":"Hello","item_id":"msg_0eaccefbe8d1cad100696b717a48d48194a9862119b16f385f","logprobs":[],"obfuscation":"PxAMDAu0pso","output_index":1,"sequence_number":106} - - event: response.output_text.delta - data: {"type":"response.output_text.delta","content_index":0,"delta":"!","item_id":"msg_0eaccefbe8d1cad100696b717a48d48194a9862119b16f385f","logprobs":[],"obfuscation":"sqVAszeBeZt023r","output_index":1,"sequence_number":107} - - event: response.output_text.delta - data: {"type":"response.output_text.delta","content_index":0,"delta":" How","item_id":"msg_0eaccefbe8d1cad100696b717a48d48194a9862119b16f385f","logprobs":[],"obfuscation":"5KXNvPpQ1ixc","output_index":1,"sequence_number":108} - - event: response.output_text.delta - data: {"type":"response.output_text.delta","content_index":0,"delta":" can","item_id":"msg_0eaccefbe8d1cad100696b717a48d48194a9862119b16f385f","logprobs":[],"obfuscation":"wWRCrfLWvrY7","output_index":1,"sequence_number":109} + data: {"type":"response.output_text.delta","content_index":0,"delta":" can","item_id":"msg_017a0be17f6092e100696f428c75448190b0c22eb9177b49c6","logprobs":[],"obfuscation":"QUMjcLMovDA3","output_index":1,"sequence_number":9} event: response.output_text.delta - data: {"type":"response.output_text.delta","content_index":0,"delta":" I","item_id":"msg_0eaccefbe8d1cad100696b717a48d48194a9862119b16f385f","logprobs":[],"obfuscation":"Ye6YZtwS7Joi85","output_index":1,"sequence_number":110} + data: {"type":"response.output_text.delta","content_index":0,"delta":" I","item_id":"msg_017a0be17f6092e100696f428c75448190b0c22eb9177b49c6","logprobs":[],"obfuscation":"MLwWX19sdoThLv","output_index":1,"sequence_number":10} event: response.output_text.delta - data: {"type":"response.output_text.delta","content_index":0,"delta":" help","item_id":"msg_0eaccefbe8d1cad100696b717a48d48194a9862119b16f385f","logprobs":[],"obfuscation":"TyMigFa99aq","output_index":1,"sequence_number":111} + data: {"type":"response.output_text.delta","content_index":0,"delta":" help","item_id":"msg_017a0be17f6092e100696f428c75448190b0c22eb9177b49c6","logprobs":[],"obfuscation":"zeTGmLYmrfa","output_index":1,"sequence_number":11} event: response.output_text.delta - data: {"type":"response.output_text.delta","content_index":0,"delta":" you","item_id":"msg_0eaccefbe8d1cad100696b717a48d48194a9862119b16f385f","logprobs":[],"obfuscation":"n3ptXE5OI6T5","output_index":1,"sequence_number":112} + data: {"type":"response.output_text.delta","content_index":0,"delta":" you","item_id":"msg_017a0be17f6092e100696f428c75448190b0c22eb9177b49c6","logprobs":[],"obfuscation":"ksloLAJCqJ9h","output_index":1,"sequence_number":12} event: response.output_text.delta - data: {"type":"response.output_text.delta","content_index":0,"delta":" today","item_id":"msg_0eaccefbe8d1cad100696b717a48d48194a9862119b16f385f","logprobs":[],"obfuscation":"1gqR5G4T83","output_index":1,"sequence_number":113} + data: {"type":"response.output_text.delta","content_index":0,"delta":" today","item_id":"msg_017a0be17f6092e100696f428c75448190b0c22eb9177b49c6","logprobs":[],"obfuscation":"AO7ffFSpli","output_index":1,"sequence_number":13} event: response.output_text.delta - data: {"type":"response.output_text.delta","content_index":0,"delta":"?","item_id":"msg_0eaccefbe8d1cad100696b717a48d48194a9862119b16f385f","logprobs":[],"obfuscation":"UH1kVn8mPkjsAKI","output_index":1,"sequence_number":114} + data: {"type":"response.output_text.delta","content_index":0,"delta":"?","item_id":"msg_017a0be17f6092e100696f428c75448190b0c22eb9177b49c6","logprobs":[],"obfuscation":"4tlo7VhS2dnEuHy","output_index":1,"sequence_number":14} event: response.output_text.done - data: {"type":"response.output_text.done","content_index":0,"item_id":"msg_0eaccefbe8d1cad100696b717a48d48194a9862119b16f385f","logprobs":[],"output_index":1,"sequence_number":115,"text":"Hello! How can I help you today?"} + data: {"type":"response.output_text.done","content_index":0,"item_id":"msg_017a0be17f6092e100696f428c75448190b0c22eb9177b49c6","logprobs":[],"output_index":1,"sequence_number":15,"text":"Hello! How can I help you today?"} event: response.content_part.done - data: {"type":"response.content_part.done","content_index":0,"item_id":"msg_0eaccefbe8d1cad100696b717a48d48194a9862119b16f385f","output_index":1,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":"Hello! How can I help you today?"},"sequence_number":116} + data: {"type":"response.content_part.done","content_index":0,"item_id":"msg_017a0be17f6092e100696f428c75448190b0c22eb9177b49c6","output_index":1,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":"Hello! How can I help you today?"},"sequence_number":16} event: response.output_item.done - data: {"type":"response.output_item.done","item":{"id":"msg_0eaccefbe8d1cad100696b717a48d48194a9862119b16f385f","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"Hello! How can I help you today?"}],"role":"assistant"},"output_index":1,"sequence_number":117} + data: {"type":"response.output_item.done","item":{"id":"msg_017a0be17f6092e100696f428c75448190b0c22eb9177b49c6","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"Hello! How can I help you today?"}],"role":"assistant"},"output_index":1,"sequence_number":17} event: response.completed - data: {"type":"response.completed","response":{"id":"resp_0eaccefbe8d1cad100696b7175c7388194a0e40ce80ec719e0","object":"response","created_at":1768649077,"status":"completed","background":false,"completed_at":1768649082,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-5-mini-2025-08-07","output":[{"id":"rs_0eaccefbe8d1cad100696b7176155c8194b14e753cd12099f7","type":"reasoning","summary":[{"type":"summary_text","text":"**Responding to a greeting**\n\nThe user request is clear: they just want me to say hello. There’s no need for any tool calls, just a simple response. I think a warm greeting like, “Hello! How can I help you today?” would work well, but I must keep it concise since they only asked for a greeting. So, I’ll go with a simple “Hello!” and then add, \"How can I help you today?\" That strikes a good balance!"}]},{"id":"msg_0eaccefbe8d1cad100696b717a48d48194a9862119b16f385f","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"Hello! How can I help you today?"}],"role":"assistant"}],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":null,"reasoning":{"effort":"medium","summary":"detailed"},"safety_identifier":null,"service_tier":"default","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tools":[{"type":"function","description":"Use this function to transfer a task to the selected team member.\n You must provide a clear and concise description of the task the member should achieve AND the expected output.","name":"transfer_task","parameters":{"additionalProperties":false,"properties":{"agent":{"description":"The name of the agent to transfer the task to.","type":"string"},"expected_output":{"description":"The expected output from the member (optional).","type":"string"},"task":{"description":"A clear and concise description of the task the member should achieve.","type":"string"}},"required":["agent","expected_output","task"],"type":"object"},"strict":true}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":{"input_tokens":292,"input_tokens_details":{"cached_tokens":0},"output_tokens":79,"output_tokens_details":{"reasoning_tokens":64},"total_tokens":371},"user":null,"metadata":{}},"sequence_number":118} + data: {"type":"response.completed","response":{"id":"resp_017a0be17f6092e100696f428b44dc8190abcb4e6563147c7b","object":"response","created_at":1768899211,"status":"completed","background":false,"completed_at":1768899212,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-5-mini-2025-08-07","output":[{"id":"rs_017a0be17f6092e100696f428bbcb881908bae5905d653b14b","type":"reasoning","summary":[]},{"id":"msg_017a0be17f6092e100696f428c75448190b0c22eb9177b49c6","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"Hello! How can I help you today?"}],"role":"assistant"}],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":null,"reasoning":{"effort":"medium","summary":null},"safety_identifier":null,"service_tier":"default","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tools":[{"type":"function","description":"Use this function to transfer a task to the selected team member.\n You must provide a clear and concise description of the task the member should achieve AND the expected output.","name":"transfer_task","parameters":{"additionalProperties":false,"properties":{"agent":{"description":"The name of the agent to transfer the task to.","type":"string"},"expected_output":{"description":"The expected output from the member (optional).","type":"string"},"task":{"description":"A clear and concise description of the task the member should achieve.","type":"string"}},"required":["agent","expected_output","task"],"type":"object"},"strict":true}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":{"input_tokens":292,"input_tokens_details":{"cached_tokens":0},"output_tokens":15,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":307},"user":null,"metadata":{}},"sequence_number":18} headers: {} status: 200 OK code: 200 - duration: 654.71233ms + duration: 773.113833ms diff --git a/e2e/testdata/cassettes/TestExec_Anthropic_AgentsMd.yaml b/e2e/testdata/cassettes/TestExec_Anthropic_AgentsMd.yaml index ca82352c5..70a9752af 100644 --- a/e2e/testdata/cassettes/TestExec_Anthropic_AgentsMd.yaml +++ b/e2e/testdata/cassettes/TestExec_Anthropic_AgentsMd.yaml @@ -8,11 +8,8 @@ interactions: proto_minor: 1 content_length: 0 host: api.anthropic.com - body: '{"max_tokens":64000,"messages":[{"content":[{"text":"What''s 2+2?","cache_control":{"type":"ephemeral"},"type":"text"}],"role":"user"}],"model":"claude-sonnet-4-0","system":[{"text":"You are a knowledgeable assistant that helps users with various tasks.\nBe helpful, accurate, and concise in your responses.","cache_control":{"type":"ephemeral"},"type":"text"},{"text":"This is a test agents.md file.","cache_control":{"type":"ephemeral"},"type":"text"}],"thinking":{"budget_tokens":8192,"type":"enabled"},"tools":[],"stream":true}' - form: - beta: - - "true" - url: https://api.anthropic.com/v1/messages?beta=true + body: '{"max_tokens":64000,"messages":[{"content":[{"text":"What''s 2+2?","cache_control":{"type":"ephemeral"},"type":"text"}],"role":"user"}],"model":"claude-sonnet-4-0","system":[{"text":"You are a knowledgeable assistant that helps users with various tasks.\nBe helpful, accurate, and concise in your responses.","cache_control":{"type":"ephemeral"},"type":"text"},{"text":"This is a test agents.md file.","cache_control":{"type":"ephemeral"},"type":"text"}],"tools":[],"stream":true}' + url: https://api.anthropic.com/v1/messages method: POST response: proto: HTTP/2.0 @@ -21,78 +18,30 @@ interactions: content_length: -1 body: |+ event: message_start - data: {"type":"message_start","message":{"model":"claude-sonnet-4-20250514","id":"msg_01EPdJLMMc47eouuMxzxE5fb","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":81,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":1,"service_tier":"standard"}}} + data: {"type":"message_start","message":{"model":"claude-sonnet-4-20250514","id":"msg_01QWaKJAJCe9dBiSKKAKYSw1","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":51,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":1,"service_tier":"standard"}} } event: content_block_start - data: {"type":"content_block_start","index":0,"content_block":{"type":"thinking","thinking":"","signature":""} } + data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""} } event: ping data: {"type": "ping"} event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":"This"} } + data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"2 "} } event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":" is a very"} } - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":" straight"}} - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":"forward math question. "} } - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":"2 "} } - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":"+ 2 = 4."} } - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":" This"} } - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":" is basic"}} - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":" arithmetic that I"}} - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":" can answer"} } - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":" directly an"} } - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":"d accurately."}} - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":""} } - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"signature_delta","signature":"EqUCCkYICxgCKkADS6FWWyQZD/Ho7nbheLhxNGQETPU+zihQK+A0544EUnseyqEl2GnZCbq22cZK6mI69/9Wrf1jCq9dDV+JOmkQEgwifmIZ+XMYJNQ29xwaDDO1isEcLUw6wyGlayIwEiv7LCMF9aKaPnc7JNHboWNDckzB3p9kTuJlrArTDahJsymQbbGA3VqnEdgSBWcPKowBVvzQuZRDh61j84U5MkQoIsxmlrh4P3ydherI7Q+GGbOcUgEiBgibrBvIGxiY1OVGqpdKaM2UET7K+J66G9/JWso7fXGxEXZtc/DcMjbSBM2CO6NhB0sgweFQi7YKKUt5G78VYnzXh75AYYJ8oNUVj033PjkD0S2UdaJ1u8yYAiEp6hUUQcWguM0kjyEYAQ=="} } - - event: content_block_stop - data: {"type":"content_block_stop","index":0 } - - event: content_block_start - data: {"type":"content_block_start","index":1,"content_block":{"type":"text","text":""} } - - event: content_block_delta - data: {"type":"content_block_delta","index":1,"delta":{"type":"text_delta","text":"2 + 2 "} } - - event: content_block_delta - data: {"type":"content_block_delta","index":1,"delta":{"type":"text_delta","text":"= 4"} } + data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"+ 2 = 4"} } event: content_block_stop - data: {"type":"content_block_stop","index":1 } + data: {"type":"content_block_stop","index":0 } event: message_delta - data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":81,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":52} } + data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":51,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":13} } event: message_stop - data: {"type":"message_stop" } + data: {"type":"message_stop" } headers: {} status: 200 OK code: 200 - duration: 1.818977375s + duration: 1.603391s diff --git a/e2e/testdata/cassettes/TestExec_Anthropic_ToolCall.yaml b/e2e/testdata/cassettes/TestExec_Anthropic_ToolCall.yaml index 4e3130ff3..eaa34ee5f 100644 --- a/e2e/testdata/cassettes/TestExec_Anthropic_ToolCall.yaml +++ b/e2e/testdata/cassettes/TestExec_Anthropic_ToolCall.yaml @@ -8,11 +8,8 @@ interactions: proto_minor: 1 content_length: 0 host: api.anthropic.com - body: '{"max_tokens":64000,"messages":[{"content":[{"text":"How many files in testdata/working_dir? Only output the number.","cache_control":{"type":"ephemeral"},"type":"text"}],"role":"user"}],"model":"claude-sonnet-4-0","system":[{"text":"You are a knowledgeable assistant that helps users with various tasks.\nBe helpful, accurate, and concise in your responses.","type":"text"},{"text":"## Filesystem Tool Instructions\n\nThis toolset provides comprehensive filesystem operations.\n\n### Working Directory\n- Relative paths (like \".\" or \"src/main.go\") are resolved relative to the working directory\n- Absolute paths (like \"/etc/hosts\") access files directly\n- Paths starting with \"..\" can access parent directories\n\n### Common Patterns\n- Always check if directories exist before creating files\n- Prefer read_multiple_files for batch operations\n- Use search_files_content for finding specific code or text\n\n### Performance Tips\n- Use read_multiple_files instead of multiple read_file calls\n- Use directory_tree with max_depth to limit large traversals\n- Use appropriate exclude patterns in search operations","cache_control":{"type":"ephemeral"},"type":"text"}],"thinking":{"budget_tokens":8192,"type":"enabled"},"tools":[{"input_schema":{"properties":{"path":{"description":"The directory path to traverse (relative to working directory)","type":"string"}},"required":["path"],"type":"object"},"name":"directory_tree","description":"Get a recursive tree view of files and directories as a JSON structure."},{"input_schema":{"properties":{"edits":{"description":"Array of edit operations","items":{"additionalProperties":false,"properties":{"newText":{"description":"The replacement text","type":"string"},"oldText":{"description":"The exact text to replace","type":"string"}},"required":["oldText","newText"],"type":"object"},"type":["null","array"]},"path":{"description":"The file path to edit","type":"string"}},"required":["path","edits"],"type":"object"},"name":"edit_file","description":"Make line-based edits to a text file. Each edit replaces exact line sequences with new content."},{"input_schema":{"properties":{"path":{"description":"The directory path to list","type":"string"}},"required":["path"],"type":"object"},"name":"list_directory","description":"Get a detailed listing of all files and directories in a specified path."},{"input_schema":{"properties":{"path":{"description":"The file path to read","type":"string"}},"required":["path"],"type":"object"},"name":"read_file","description":"Read the complete contents of a file from the file system."},{"input_schema":{"properties":{"json":{"description":"Whether to return the result as JSON","type":"boolean"},"paths":{"description":"Array of file paths to read","items":{"type":"string"},"type":["null","array"]}},"required":["paths"],"type":"object"},"name":"read_multiple_files","description":"Read the contents of multiple files simultaneously."},{"input_schema":{"properties":{"excludePatterns":{"description":"Patterns to exclude from search","items":{"type":"string"},"type":["null","array"]},"is_regex":{"description":"If true, treat query as regex; otherwise literal text","type":"boolean"},"path":{"description":"The starting directory path","type":"string"},"query":{"description":"The text or regex pattern to search for","type":"string"}},"required":["path","query"],"type":"object"},"name":"search_files_content","description":"Searches for text or regex patterns in the content of files matching a GLOB pattern."},{"input_schema":{"properties":{"content":{"description":"The content to write to the file","type":"string"},"path":{"description":"The file path to write","type":"string"}},"required":["path","content"],"type":"object"},"name":"write_file","description":"Create a new file or completely overwrite an existing file with new content."}],"stream":true}' - form: - beta: - - "true" - url: https://api.anthropic.com/v1/messages?beta=true + body: '{"max_tokens":64000,"messages":[{"content":[{"text":"How many files in testdata/working_dir? Only output the number.","cache_control":{"type":"ephemeral"},"type":"text"}],"role":"user"}],"model":"claude-sonnet-4-0","system":[{"text":"You are a knowledgeable assistant that helps users with various tasks.\nBe helpful, accurate, and concise in your responses.","type":"text"},{"text":"## Filesystem Tool Instructions\n\nThis toolset provides comprehensive filesystem operations.\n\n### Working Directory\n- Relative paths (like \".\" or \"src/main.go\") are resolved relative to the working directory\n- Absolute paths (like \"/etc/hosts\") access files directly\n- Paths starting with \"..\" can access parent directories\n\n### Common Patterns\n- Always check if directories exist before creating files\n- Prefer read_multiple_files for batch operations\n- Use search_files_content for finding specific code or text\n\n### Performance Tips\n- Use read_multiple_files instead of multiple read_file calls\n- Use directory_tree with max_depth to limit large traversals\n- Use appropriate exclude patterns in search operations","cache_control":{"type":"ephemeral"},"type":"text"}],"tools":[{"input_schema":{"properties":{"path":{"description":"The directory path to traverse (relative to working directory)","type":"string"}},"required":["path"],"type":"object"},"name":"directory_tree","description":"Get a recursive tree view of files and directories as a JSON structure."},{"input_schema":{"properties":{"edits":{"description":"Array of edit operations","items":{"additionalProperties":false,"properties":{"newText":{"description":"The replacement text","type":"string"},"oldText":{"description":"The exact text to replace","type":"string"}},"required":["oldText","newText"],"type":"object"},"type":["null","array"]},"path":{"description":"The file path to edit","type":"string"}},"required":["path","edits"],"type":"object"},"name":"edit_file","description":"Make line-based edits to a text file. Each edit replaces exact line sequences with new content."},{"input_schema":{"properties":{"path":{"description":"The directory path to list","type":"string"}},"required":["path"],"type":"object"},"name":"list_directory","description":"Get a detailed listing of all files and directories in a specified path."},{"input_schema":{"properties":{"path":{"description":"The file path to read","type":"string"}},"required":["path"],"type":"object"},"name":"read_file","description":"Read the complete contents of a file from the file system."},{"input_schema":{"properties":{"json":{"description":"Whether to return the result as JSON","type":"boolean"},"paths":{"description":"Array of file paths to read","items":{"type":"string"},"type":["null","array"]}},"required":["paths"],"type":"object"},"name":"read_multiple_files","description":"Read the contents of multiple files simultaneously."},{"input_schema":{"properties":{"excludePatterns":{"description":"Patterns to exclude from search","items":{"type":"string"},"type":["null","array"]},"is_regex":{"description":"If true, treat query as regex; otherwise literal text","type":"boolean"},"path":{"description":"The starting directory path","type":"string"},"query":{"description":"The text or regex pattern to search for","type":"string"}},"required":["path","query"],"type":"object"},"name":"search_files_content","description":"Searches for text or regex patterns in the content of files matching a GLOB pattern."},{"input_schema":{"properties":{"content":{"description":"The content to write to the file","type":"string"},"path":{"description":"The file path to write","type":"string"}},"required":["path","content"],"type":"object"},"name":"write_file","description":"Create a new file or completely overwrite an existing file with new content."}],"stream":true}' + url: https://api.anthropic.com/v1/messages method: POST response: proto: HTTP/2.0 @@ -21,96 +18,36 @@ interactions: content_length: -1 body: |+ event: message_start - data: {"type":"message_start","message":{"model":"claude-sonnet-4-20250514","id":"msg_01VGwM1asir9xEbbT6GgohGz","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":10,"cache_creation_input_tokens":0,"cache_read_input_tokens":1447,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":3,"service_tier":"standard"}} } + data: {"type":"message_start","message":{"model":"claude-sonnet-4-20250514","id":"msg_01BKqBqWhk1BNCFCGJKBuURw","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":3,"cache_creation_input_tokens":1276,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":1276,"ephemeral_1h_input_tokens":0},"output_tokens":1,"service_tier":"standard"}} } event: content_block_start - data: {"type":"content_block_start","index":0,"content_block":{"type":"thinking","thinking":"","signature":""} } + data: {"type":"content_block_start","index":0,"content_block":{"type":"tool_use","id":"toolu_012gmfqnoTX8c5aV3vMWUnas","name":"list_directory","input":{}} } event: ping data: {"type": "ping"} event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":"The user wants"} } + data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":""} } event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":" to know how many files are in the"} } + data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":"{\"path\": \"testdata/working_dir"} } event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":" \""} } - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":"testdata/working_dir\" directory"} } - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":" an"} } - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":"d only"}} - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":" wants"} } - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":" the number as"} } - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":" output. I nee"} } - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":"d to use the list_directory function to"} } - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":" get the contents"} } - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":" of that"} } - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":" directory an"} } - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":"d then count the files ("} } - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":"not directories)."} } - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":""} } - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"signature_delta","signature":"EpsDCkYICxgCKkB7pvGBLJjWTPM/xYHIISqNOg9LySRVznutx46Pbr2jIg2URvAZOxaaDghD2EqcL/znV9Yz8eNWddn4IwL6GtzZEgy6oSDufFlHwS01tugaDPSZBASgLBi39yorDCIwxQisMk2IX0M9F14pKfNHRUtRF0R/5ydtsG0sKzwb0tj5aJAB+mMraamFZivw/8NXKoICCaUrCP9wiUFxxvpqRDDy4IEqQ+Eob++Zwd//hXDq59m6HXptYzrmdaTzl8091yxcDdyGkH6cLHMuPWpdDO6ksVH7eK5PbXZ1bfghX4YO1+cyH53Ma2Y0rcbDgw7OkLJ5jEkDHKa6uyzfhf5o4oF/TXTGH81Hkl//rGeur2ucuKjHibWFR3m3xC72B4MwzgzeHmQ1RPXaHyV75YGbuIWZUgzxSvOSYIvygInga7Qv8rH0ARWSc2by6t2pIk70AwigLpOj/28agEQQPXcwxIa+0VfZoyP7/UcUnX8zvvL+j5LtHu5vM07jt8K8L/CMXW5tuu3LhOJy/5YtHwJFbHo9ZG33GAE="} } - - event: content_block_stop - data: {"type":"content_block_stop","index":0 } - - event: content_block_start - data: {"type":"content_block_start","index":1,"content_block":{"type":"tool_use","id":"toolu_01351PtRMRaDsvjDtTiKFrdX","name":"list_directory","input":{}} } - - event: content_block_delta - data: {"type":"content_block_delta","index":1,"delta":{"type":"input_json_delta","partial_json":""} } - - event: content_block_delta - data: {"type":"content_block_delta","index":1,"delta":{"type":"input_json_delta","partial_json":"{\"path\": \"testdata/"} } - - event: content_block_delta - data: {"type":"content_block_delta","index":1,"delta":{"type":"input_json_delta","partial_json":"working_dir"} } - - event: content_block_delta - data: {"type":"content_block_delta","index":1,"delta":{"type":"input_json_delta","partial_json":"\"}"} } + data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":"\"}"} } event: content_block_stop - data: {"type":"content_block_stop","index":1 } + data: {"type":"content_block_stop","index":0 } event: message_delta - data: {"type":"message_delta","delta":{"stop_reason":"tool_use","stop_sequence":null},"usage":{"input_tokens":10,"cache_creation_input_tokens":0,"cache_read_input_tokens":1447,"output_tokens":119} } + data: {"type":"message_delta","delta":{"stop_reason":"tool_use","stop_sequence":null},"usage":{"input_tokens":3,"cache_creation_input_tokens":1276,"cache_read_input_tokens":0,"output_tokens":58} } event: message_stop - data: {"type":"message_stop" } + data: {"type":"message_stop" } headers: {} status: 200 OK code: 200 - duration: 1.896834584s + duration: 1.588085084s - id: 1 request: proto: HTTP/1.1 @@ -118,11 +55,8 @@ interactions: proto_minor: 1 content_length: 0 host: api.anthropic.com - body: '{"max_tokens":64000,"messages":[{"content":[{"text":"How many files in testdata/working_dir? Only output the number.","type":"text"}],"role":"user"},{"content":[{"signature":"EpsDCkYICxgCKkB7pvGBLJjWTPM/xYHIISqNOg9LySRVznutx46Pbr2jIg2URvAZOxaaDghD2EqcL/znV9Yz8eNWddn4IwL6GtzZEgy6oSDufFlHwS01tugaDPSZBASgLBi39yorDCIwxQisMk2IX0M9F14pKfNHRUtRF0R/5ydtsG0sKzwb0tj5aJAB+mMraamFZivw/8NXKoICCaUrCP9wiUFxxvpqRDDy4IEqQ+Eob++Zwd//hXDq59m6HXptYzrmdaTzl8091yxcDdyGkH6cLHMuPWpdDO6ksVH7eK5PbXZ1bfghX4YO1+cyH53Ma2Y0rcbDgw7OkLJ5jEkDHKa6uyzfhf5o4oF/TXTGH81Hkl//rGeur2ucuKjHibWFR3m3xC72B4MwzgzeHmQ1RPXaHyV75YGbuIWZUgzxSvOSYIvygInga7Qv8rH0ARWSc2by6t2pIk70AwigLpOj/28agEQQPXcwxIa+0VfZoyP7/UcUnX8zvvL+j5LtHu5vM07jt8K8L/CMXW5tuu3LhOJy/5YtHwJFbHo9ZG33GAE=","thinking":"The user wants to know how many files are in the \"testdata/working_dir\" directory and only wants the number as output. I need to use the list_directory function to get the contents of that directory and then count the files (not directories).","type":"thinking"},{"id":"toolu_01351PtRMRaDsvjDtTiKFrdX","input":{"path":"testdata/working_dir"},"name":"list_directory","cache_control":{"type":"ephemeral"},"type":"tool_use"}],"role":"assistant"},{"content":[{"tool_use_id":"toolu_01351PtRMRaDsvjDtTiKFrdX","cache_control":{"type":"ephemeral"},"content":[{"text":"FILE README.me","type":"text"}],"type":"tool_result"}],"role":"user"}],"model":"claude-sonnet-4-0","system":[{"text":"You are a knowledgeable assistant that helps users with various tasks.\nBe helpful, accurate, and concise in your responses.","type":"text"},{"text":"## Filesystem Tool Instructions\n\nThis toolset provides comprehensive filesystem operations.\n\n### Working Directory\n- Relative paths (like \".\" or \"src/main.go\") are resolved relative to the working directory\n- Absolute paths (like \"/etc/hosts\") access files directly\n- Paths starting with \"..\" can access parent directories\n\n### Common Patterns\n- Always check if directories exist before creating files\n- Prefer read_multiple_files for batch operations\n- Use search_files_content for finding specific code or text\n\n### Performance Tips\n- Use read_multiple_files instead of multiple read_file calls\n- Use directory_tree with max_depth to limit large traversals\n- Use appropriate exclude patterns in search operations","cache_control":{"type":"ephemeral"},"type":"text"}],"thinking":{"budget_tokens":8192,"type":"enabled"},"tools":[{"input_schema":{"properties":{"path":{"description":"The directory path to traverse (relative to working directory)","type":"string"}},"required":["path"],"type":"object"},"name":"directory_tree","description":"Get a recursive tree view of files and directories as a JSON structure."},{"input_schema":{"properties":{"edits":{"description":"Array of edit operations","items":{"additionalProperties":false,"properties":{"newText":{"description":"The replacement text","type":"string"},"oldText":{"description":"The exact text to replace","type":"string"}},"required":["oldText","newText"],"type":"object"},"type":["null","array"]},"path":{"description":"The file path to edit","type":"string"}},"required":["path","edits"],"type":"object"},"name":"edit_file","description":"Make line-based edits to a text file. Each edit replaces exact line sequences with new content."},{"input_schema":{"properties":{"path":{"description":"The directory path to list","type":"string"}},"required":["path"],"type":"object"},"name":"list_directory","description":"Get a detailed listing of all files and directories in a specified path."},{"input_schema":{"properties":{"path":{"description":"The file path to read","type":"string"}},"required":["path"],"type":"object"},"name":"read_file","description":"Read the complete contents of a file from the file system."},{"input_schema":{"properties":{"json":{"description":"Whether to return the result as JSON","type":"boolean"},"paths":{"description":"Array of file paths to read","items":{"type":"string"},"type":["null","array"]}},"required":["paths"],"type":"object"},"name":"read_multiple_files","description":"Read the contents of multiple files simultaneously."},{"input_schema":{"properties":{"excludePatterns":{"description":"Patterns to exclude from search","items":{"type":"string"},"type":["null","array"]},"is_regex":{"description":"If true, treat query as regex; otherwise literal text","type":"boolean"},"path":{"description":"The starting directory path","type":"string"},"query":{"description":"The text or regex pattern to search for","type":"string"}},"required":["path","query"],"type":"object"},"name":"search_files_content","description":"Searches for text or regex patterns in the content of files matching a GLOB pattern."},{"input_schema":{"properties":{"content":{"description":"The content to write to the file","type":"string"},"path":{"description":"The file path to write","type":"string"}},"required":["path","content"],"type":"object"},"name":"write_file","description":"Create a new file or completely overwrite an existing file with new content."}],"stream":true}' - form: - beta: - - "true" - url: https://api.anthropic.com/v1/messages?beta=true + body: '{"max_tokens":64000,"messages":[{"content":[{"text":"How many files in testdata/working_dir? Only output the number.","type":"text"}],"role":"user"},{"content":[{"id":"toolu_012gmfqnoTX8c5aV3vMWUnas","input":{"path":"testdata/working_dir"},"name":"list_directory","cache_control":{"type":"ephemeral"},"type":"tool_use"}],"role":"assistant"},{"content":[{"tool_use_id":"toolu_012gmfqnoTX8c5aV3vMWUnas","is_error":false,"cache_control":{"type":"ephemeral"},"content":[{"text":"FILE README.me","type":"text"}],"type":"tool_result"}],"role":"user"}],"model":"claude-sonnet-4-0","system":[{"text":"You are a knowledgeable assistant that helps users with various tasks.\nBe helpful, accurate, and concise in your responses.","type":"text"},{"text":"## Filesystem Tool Instructions\n\nThis toolset provides comprehensive filesystem operations.\n\n### Working Directory\n- Relative paths (like \".\" or \"src/main.go\") are resolved relative to the working directory\n- Absolute paths (like \"/etc/hosts\") access files directly\n- Paths starting with \"..\" can access parent directories\n\n### Common Patterns\n- Always check if directories exist before creating files\n- Prefer read_multiple_files for batch operations\n- Use search_files_content for finding specific code or text\n\n### Performance Tips\n- Use read_multiple_files instead of multiple read_file calls\n- Use directory_tree with max_depth to limit large traversals\n- Use appropriate exclude patterns in search operations","cache_control":{"type":"ephemeral"},"type":"text"}],"tools":[{"input_schema":{"properties":{"path":{"description":"The directory path to traverse (relative to working directory)","type":"string"}},"required":["path"],"type":"object"},"name":"directory_tree","description":"Get a recursive tree view of files and directories as a JSON structure."},{"input_schema":{"properties":{"edits":{"description":"Array of edit operations","items":{"additionalProperties":false,"properties":{"newText":{"description":"The replacement text","type":"string"},"oldText":{"description":"The exact text to replace","type":"string"}},"required":["oldText","newText"],"type":"object"},"type":["null","array"]},"path":{"description":"The file path to edit","type":"string"}},"required":["path","edits"],"type":"object"},"name":"edit_file","description":"Make line-based edits to a text file. Each edit replaces exact line sequences with new content."},{"input_schema":{"properties":{"path":{"description":"The directory path to list","type":"string"}},"required":["path"],"type":"object"},"name":"list_directory","description":"Get a detailed listing of all files and directories in a specified path."},{"input_schema":{"properties":{"path":{"description":"The file path to read","type":"string"}},"required":["path"],"type":"object"},"name":"read_file","description":"Read the complete contents of a file from the file system."},{"input_schema":{"properties":{"json":{"description":"Whether to return the result as JSON","type":"boolean"},"paths":{"description":"Array of file paths to read","items":{"type":"string"},"type":["null","array"]}},"required":["paths"],"type":"object"},"name":"read_multiple_files","description":"Read the contents of multiple files simultaneously."},{"input_schema":{"properties":{"excludePatterns":{"description":"Patterns to exclude from search","items":{"type":"string"},"type":["null","array"]},"is_regex":{"description":"If true, treat query as regex; otherwise literal text","type":"boolean"},"path":{"description":"The starting directory path","type":"string"},"query":{"description":"The text or regex pattern to search for","type":"string"}},"required":["path","query"],"type":"object"},"name":"search_files_content","description":"Searches for text or regex patterns in the content of files matching a GLOB pattern."},{"input_schema":{"properties":{"content":{"description":"The content to write to the file","type":"string"},"path":{"description":"The file path to write","type":"string"}},"required":["path","content"],"type":"object"},"name":"write_file","description":"Create a new file or completely overwrite an existing file with new content."}],"stream":true}' + url: https://api.anthropic.com/v1/messages method: POST response: proto: HTTP/2.0 @@ -131,90 +65,27 @@ interactions: content_length: -1 body: |+ event: message_start - data: {"type":"message_start","message":{"model":"claude-sonnet-4-20250514","id":"msg_01G27XZsH236DwqeqRwPZCXM","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":13,"cache_creation_input_tokens":139,"cache_read_input_tokens":1447,"cache_creation":{"ephemeral_5m_input_tokens":139,"ephemeral_1h_input_tokens":0},"output_tokens":5,"service_tier":"standard"}} } + data: {"type":"message_start","message":{"model":"claude-sonnet-4-20250514","id":"msg_01J7Njwj72NPagJ5aEQWDKAH","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":6,"cache_creation_input_tokens":72,"cache_read_input_tokens":1276,"cache_creation":{"ephemeral_5m_input_tokens":72,"ephemeral_1h_input_tokens":0},"output_tokens":1,"service_tier":"standard"}} } event: content_block_start - data: {"type":"content_block_start","index":0,"content_block":{"type":"thinking","thinking":"","signature":""} } + data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""} } event: ping data: {"type": "ping"} event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":"The result shows there is"} } - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":" "} } - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":"1 file in the test"} } - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":"data/working_dir directory. The"} } - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":" listing"} } - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":" shows \""} } - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":"FILE README.me\","} } - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":" which indicates"}} - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":" there"} } - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":" is"}} - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":" one"} } - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":" file name"} } - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":"d \"README.me\"."} } - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":" Since the user only"} } - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":" wants the number,"} } - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":" I should output just \""} } - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":"1\"."} } - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"thinking_delta","thinking":""} } - - event: content_block_delta - data: {"type":"content_block_delta","index":0,"delta":{"type":"signature_delta","signature":"EokDCkYICxgCKkD6x65qrU9K6vIHYlap2o7BNToPc7uJYhb4i8cFmygXJibPVEqSPitHbEs5KwINhKUrUsCOV+VM4l3vczIE4+otEgyFPxvwBhKe9N2x+AIaDFSagh2SZgV4S3y8iCIw2Yj4TQRzoolitQFm0ft2rnybomYYJ/v0QOoQWoDMttrIqDy5RRlRTOGs4aiWomL5KvABufY5u8AiJGI1HpslkXNhBA7p0mvfT2MQOPpxmQb6HXEJqs2cfoLJQVnTpa9LFf6b5evP1Ll6RffJGUBzjPhuYuKP5oeVDVdD8lj2onkLQC2uH8oTLNoK/F2hmyTAoHNZvWOValY5M6vTjig/yr5i8m6l5pwObHSjR3Mt8l2+fSfmcZ5uIxr5EnEfnNSUc+Jnxu237Lkd7lHX0f1CChRmFGRZRgY9x32diSNXuYIK/nCJIZCgy+1mds+DiAdYkAbyV5ZmkF8QAO/U662qdJnjGZ1FOWiymj7tozUbA6uXz8uwD4nVkH7xKv3OcKm4xwHSGAE="} } - - event: content_block_stop - data: {"type":"content_block_stop","index":0 } - - event: content_block_start - data: {"type":"content_block_start","index":1,"content_block":{"type":"text","text":""} } - - event: content_block_delta - data: {"type":"content_block_delta","index":1,"delta":{"type":"text_delta","text":"1"} } + data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"1"} } event: content_block_stop - data: {"type":"content_block_stop","index":1 } + data: {"type":"content_block_stop","index":0 } event: message_delta - data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":13,"cache_creation_input_tokens":139,"cache_read_input_tokens":1447,"output_tokens":67} } + data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":6,"cache_creation_input_tokens":72,"cache_read_input_tokens":1276,"output_tokens":4} } event: message_stop - data: {"type":"message_stop" } + data: {"type":"message_stop" } headers: {} status: 200 OK code: 200 - duration: 1.922262125s + duration: 968.753458ms diff --git a/e2e/testdata/cassettes/TestExec_Gemini_ToolCall.yaml b/e2e/testdata/cassettes/TestExec_Gemini_ToolCall.yaml index 2bc099a13..4715c4b23 100644 --- a/e2e/testdata/cassettes/TestExec_Gemini_ToolCall.yaml +++ b/e2e/testdata/cassettes/TestExec_Gemini_ToolCall.yaml @@ -9,7 +9,7 @@ interactions: content_length: 0 host: generativelanguage.googleapis.com body: | - {"contents":[{"parts":[{"text":"You are a knowledgeable assistant that helps users with various tasks.\nBe helpful, accurate, and concise in your responses.\n"}],"role":"user"},{"parts":[{"text":"## Filesystem Tool Instructions\n\nThis toolset provides comprehensive filesystem operations.\n\n### Working Directory\n- Relative paths (like \".\" or \"src/main.go\") are resolved relative to the working directory\n- Absolute paths (like \"/etc/hosts\") access files directly\n- Paths starting with \"..\" can access parent directories\n\n### Common Patterns\n- Always check if directories exist before creating files\n- Prefer read_multiple_files for batch operations\n- Use search_files_content for finding specific code or text\n\n### Performance Tips\n- Use read_multiple_files instead of multiple read_file calls\n- Use directory_tree with max_depth to limit large traversals\n- Use appropriate exclude patterns in search operations"}],"role":"user"},{"parts":[{"text":"How many files in testdata/working_dir? Only output the number."}],"role":"user"}],"generationConfig":{"thinkingConfig":{"includeThoughts":true,"thinkingBudget":-1}},"toolConfig":{"functionCallingConfig":{"mode":"AUTO"}},"tools":[{"functionDeclarations":[{"description":"Get a recursive tree view of files and directories as a JSON structure.","name":"directory_tree","parameters":{"properties":{"path":{"description":"The directory path to traverse (relative to working directory)","type":"string"}},"required":["path"],"type":"object"}},{"description":"Make line-based edits to a text file. Each edit replaces exact line sequences with new content.","name":"edit_file","parameters":{"properties":{"edits":{"description":"Array of edit operations","items":{"properties":{"newText":{"description":"The replacement text","type":"string"},"oldText":{"description":"The exact text to replace","type":"string"}},"required":["oldText","newText"],"type":"object"},"type":"array"},"path":{"description":"The file path to edit","type":"string"}},"required":["path","edits"],"type":"object"}},{"description":"Get a detailed listing of all files and directories in a specified path.","name":"list_directory","parameters":{"properties":{"path":{"description":"The directory path to list","type":"string"}},"required":["path"],"type":"object"}},{"description":"Read the complete contents of a file from the file system.","name":"read_file","parameters":{"properties":{"path":{"description":"The file path to read","type":"string"}},"required":["path"],"type":"object"}},{"description":"Read the contents of multiple files simultaneously.","name":"read_multiple_files","parameters":{"properties":{"json":{"description":"Whether to return the result as JSON","type":"boolean"},"paths":{"description":"Array of file paths to read","items":{"type":"string"},"type":"array"}},"required":["paths"],"type":"object"}},{"description":"Searches for text or regex patterns in the content of files matching a GLOB pattern.","name":"search_files_content","parameters":{"properties":{"excludePatterns":{"description":"Patterns to exclude from search","items":{"type":"string"},"type":"array"},"is_regex":{"description":"If true, treat query as regex; otherwise literal text","type":"boolean"},"path":{"description":"The starting directory path","type":"string"},"query":{"description":"The text or regex pattern to search for","type":"string"}},"required":["path","query"],"type":"object"}},{"description":"Create a new file or completely overwrite an existing file with new content.","name":"write_file","parameters":{"properties":{"content":{"description":"The content to write to the file","type":"string"},"path":{"description":"The file path to write","type":"string"}},"required":["path","content"],"type":"object"}}]}]} + {"contents":[{"parts":[{"text":"You are a knowledgeable assistant that helps users with various tasks.\nBe helpful, accurate, and concise in your responses.\n"}],"role":"user"},{"parts":[{"text":"## Filesystem Tool Instructions\n\nThis toolset provides comprehensive filesystem operations.\n\n### Working Directory\n- Relative paths (like \".\" or \"src/main.go\") are resolved relative to the working directory\n- Absolute paths (like \"/etc/hosts\") access files directly\n- Paths starting with \"..\" can access parent directories\n\n### Common Patterns\n- Always check if directories exist before creating files\n- Prefer read_multiple_files for batch operations\n- Use search_files_content for finding specific code or text\n\n### Performance Tips\n- Use read_multiple_files instead of multiple read_file calls\n- Use directory_tree with max_depth to limit large traversals\n- Use appropriate exclude patterns in search operations"}],"role":"user"},{"parts":[{"text":"How many files in testdata/working_dir? Only output the number."}],"role":"user"}],"generationConfig":{},"toolConfig":{"functionCallingConfig":{"mode":"AUTO"}},"tools":[{"functionDeclarations":[{"description":"Get a recursive tree view of files and directories as a JSON structure.","name":"directory_tree","parameters":{"properties":{"path":{"description":"The directory path to traverse (relative to working directory)","type":"string"}},"required":["path"],"type":"object"}},{"description":"Make line-based edits to a text file. Each edit replaces exact line sequences with new content.","name":"edit_file","parameters":{"properties":{"edits":{"description":"Array of edit operations","items":{"properties":{"newText":{"description":"The replacement text","type":"string"},"oldText":{"description":"The exact text to replace","type":"string"}},"required":["oldText","newText"],"type":"object"},"type":"array"},"path":{"description":"The file path to edit","type":"string"}},"required":["path","edits"],"type":"object"}},{"description":"Get a detailed listing of all files and directories in a specified path.","name":"list_directory","parameters":{"properties":{"path":{"description":"The directory path to list","type":"string"}},"required":["path"],"type":"object"}},{"description":"Read the complete contents of a file from the file system.","name":"read_file","parameters":{"properties":{"path":{"description":"The file path to read","type":"string"}},"required":["path"],"type":"object"}},{"description":"Read the contents of multiple files simultaneously.","name":"read_multiple_files","parameters":{"properties":{"json":{"description":"Whether to return the result as JSON","type":"boolean"},"paths":{"description":"Array of file paths to read","items":{"type":"string"},"type":"array"}},"required":["paths"],"type":"object"}},{"description":"Searches for text or regex patterns in the content of files matching a GLOB pattern.","name":"search_files_content","parameters":{"properties":{"excludePatterns":{"description":"Patterns to exclude from search","items":{"type":"string"},"type":"array"},"is_regex":{"description":"If true, treat query as regex; otherwise literal text","type":"boolean"},"path":{"description":"The starting directory path","type":"string"},"query":{"description":"The text or regex pattern to search for","type":"string"}},"required":["path","query"],"type":"object"}},{"description":"Create a new file or completely overwrite an existing file with new content.","name":"write_file","parameters":{"properties":{"content":{"description":"The content to write to the file","type":"string"},"path":{"description":"The file path to write","type":"string"}},"required":["path","content"],"type":"object"}}]}]} form: alt: - sse @@ -20,11 +20,11 @@ interactions: proto_major: 2 proto_minor: 0 content_length: -1 - body: "data: {\"candidates\": [{\"content\": {\"parts\": [{\"text\": \"**Pinpointing Directory Information**\\n\\nI'm currently focused on the user's request, specifically the need to determine the file count within a directory. I've identified `list_directory` and `directory_tree` as potentially relevant functions, and I'm zeroing in on the required input parameters for the former; it needs a `path`, which the user has provided as \\\"testdata/working_dir\\\".\\n\\n\\n\",\"thought\": true}],\"role\": \"model\"},\"index\": 0}],\"usageMetadata\": {\"promptTokenCount\": 745,\"totalTokenCount\": 813,\"promptTokensDetails\": [{\"modality\": \"TEXT\",\"tokenCount\": 745}],\"thoughtsTokenCount\": 68},\"modelVersion\": \"gemini-2.5-flash\",\"responseId\": \"-6RqadX3MObxnsEPw_WZmAM\"}\r\n\r\ndata: {\"candidates\": [{\"content\": {\"parts\": [{\"text\": \"**Narrowing Down the Strategy**\\n\\nI've determined that `list_directory` is the more appropriate function to use initially, given the need for a file count in a specified directory. The output from `list_directory` requires parsing to identify and count files. My updated plan is to call `list_directory` using the path \\\"testdata/working_dir\\\", then process the returned data, specifically the items where the `type` is listed as \\\"file\\\". I'll count those items to arrive at the desired file count.\\n\\n\\n\",\"thought\": true}],\"role\": \"model\"},\"index\": 0}],\"usageMetadata\": {\"promptTokenCount\": 745,\"totalTokenCount\": 989,\"promptTokensDetails\": [{\"modality\": \"TEXT\",\"tokenCount\": 745}],\"thoughtsTokenCount\": 244},\"modelVersion\": \"gemini-2.5-flash\",\"responseId\": \"-6RqadX3MObxnsEPw_WZmAM\"}\r\n\r\ndata: {\"candidates\": [{\"content\": {\"parts\": [{\"functionCall\": {\"name\": \"list_directory\",\"args\": {\"path\": \"testdata/working_dir\"}},\"thoughtSignature\": \"CiIBcsjafB2TOWr7jmzqFUDRT8stM2yL5XXwxrnDh6fF8NO/Cm4BcsjafOGQI+limC2mW0iBTjfbGqZ4lP9JiKcrOskJQYxZI6jblZF02CEv0q/D+HWs/MxTh9/pxjanyR8Wr1aXcm12gsT7WwQ0qrA7ObQghi7yLpok0lOa9fGydSV60AvWp3Gcnagyn2LfkmoEbwrUAQFyyNp8FJS6ZBgDMdfSU6Q429HED7UiEPPM5iWQF8fgW3tMy7O9a2VPbaRAkP0tkkGrd9+uTp2Js3WcojOUoi5dNC5BShf7i7z6/TT6oKNayCOZeBwVjYA5Vc8YbqCqyPqSYwl+bhdmkKwKl0Ei/OS2wX8LHwMaJKBOjJHEEcUFOuKk9DM5QldeMjB08g0rk7+BIiNltiCTm+QyIkV9nw2pGyUkYIRWjU7Ceck/3miZ+Cuihw28NBhCJ9zHDsDJAhRqkwK6Zkty49Iw+yiisz8VgAIaCugBAXLI2nxZ0hQ8JTVb5mRDv5Tk8ynKeTYDaRkP4eJBeqCq6/bBdDh7yyqN986W2cYWacXuF/bJczYRdoRMfXJRTyQ2hfHxQfxToZZIGc6KodNJD/LEErSsjFJPxhp0aqldH+dp/UXP86+/Uhx7VBIkxNG6GOZhuZxrPZM65qkgdUqajkAhZXz/HFZF4H+wmYV4yPXwPNoEuQLWqpkVINmsJ2Ae43AnFZmSARhO3faex+n0I8XTuBjy8NPfcAICNXNY9rICO7x35uKPAJsAgFXyVGk5pXF0NrpEd4ppiZyyZrc4cBNSZ3ju1Qr8AQFyyNp8MFNfVIIjLjywDXmz1d+gRMwGh4SQHlNsI16IzS0iIm/z8nm22AbpjaVlaSN8tag4OR4CgqJsa7A83ECR5xv6NuNW8WHOquw/mmBY8L5/nGS92aBD5cXcUJuFUeI38VJR0Ff1aCt9CDDtnKqEnbdxMZYs7ruxXY7fB7LR5opw00N1bniJyZrpVQgjL5HomNkFRNn+Ch58v0YZ1g7Zt2/iy943u74WCjiTEHmOKYRDtDMXfQb+uyEqnr7S3nCKytXNMylDcOiZaS9VqAO5B/xa83cjWQpmtwquhdqQM4fgk0ebufqeLh4qUGy7xst9wV12eRkFqgL/MwrKAQFyyNp8SgJlP9UKqUr+vs3IrjxIRTWC6CODjw0vZzl4Yt93yuLMcqTsNNXondyEQbrwD9PHbfGEDWJNjMQfw9PD8Jwxz6jmen2vFn1LYt4q5amceev/lsmv0NOTXvxXbzK1K6xXYsewbsCFa4Lekj7aT9JAVZN8X94Be79u0feQhrnwl21XxYFs6/mo9QWuOSxiucTNF0+6Dt7cfx5EwvSLSbuw3qXbr9cPqkrOsqC5jY+7df0TT12fBnv4ZROpiikWMrqDZB8RlcoKiQEBcsjafDQ1RrE5G0Yz5O45MakHGoB7AbglTeu/2pVnrboJTRntER6bbWme3mqifCjVuyjxSkrQqBRR9854rezwMHB+yY9069hG0NaVkRFMUji6PO7wLaNARdoXhQF74aJP5UxCY/x7EAox7Z89o3XolPSlAZC04aCJwBjFbDC5ghze9cU4aA/KFQ==\"}],\"role\": \"model\"},\"finishReason\": \"STOP\",\"index\": 0,\"finishMessage\": \"Model generated function call(s).\"}],\"usageMetadata\": {\"promptTokenCount\": 745,\"candidatesTokenCount\": 18,\"totalTokenCount\": 1007,\"promptTokensDetails\": [{\"modality\": \"TEXT\",\"tokenCount\": 745}],\"thoughtsTokenCount\": 244},\"modelVersion\": \"gemini-2.5-flash\",\"responseId\": \"-6RqadX3MObxnsEPw_WZmAM\"}\r\n\r\n" + body: "data: {\"candidates\": [{\"content\": {\"parts\": [{\"functionCall\": {\"name\": \"list_directory\",\"args\": {\"path\": \"testdata/working_dir\"}},\"thoughtSignature\": \"CiQBcsjafMGuAqvsBDG58t91BS0jdQCVmj82BAGhSeduON/zWekKYgFyyNp8msXzfYDBKOEyeEzNR8Gbcah0mXk3cjfrZxK/PzX3JobM72PLCha6j8JmjIKT/GrvEvm1UELCv94iDJcN+CfsFa8Nml+++DbLexS1TLRvRaKxHHM1NNrHvR5THsxtCtEBAXLI2nxjociaq+7MxUltbFjcIsKbqq9zQmmlB7/vE5JzCpgYxXAzI4L10dfs209ufBy1iK81bspBUAeAl+lhOUGvIBaLmha+v0g/w2xx+Qju5M36RLuo8se2ChZ6bztfAmC5y1uIByvjJmmYoKEWNYU1t1GxyzPNU/qZ1UtsDccPB2eAsBo+FsA63Nqsj6eV2tU99ErjHPP1hcE1m6Xbg3tAdyd8WxKYDeESYnXx4qiNOEiq1gRThcQcb3AwIzh4aIQwPjnxzzrc7EVpOEp+b94=\"}],\"role\": \"model\"},\"finishReason\": \"STOP\",\"index\": 0,\"finishMessage\": \"Model generated function call(s).\"}],\"usageMetadata\": {\"promptTokenCount\": 745,\"candidatesTokenCount\": 20,\"totalTokenCount\": 825,\"promptTokensDetails\": [{\"modality\": \"TEXT\",\"tokenCount\": 745}],\"thoughtsTokenCount\": 60},\"modelVersion\": \"gemini-2.5-flash\",\"responseId\": \"uUJvaeLoGqOKvdIPtu3dkQs\"}\r\n\r\n" headers: {} status: 200 OK code: 200 - duration: 1.356446125s + duration: 1.080882541s - id: 1 request: proto: HTTP/1.1 @@ -33,7 +33,7 @@ interactions: content_length: 0 host: generativelanguage.googleapis.com body: | - {"contents":[{"parts":[{"text":"You are a knowledgeable assistant that helps users with various tasks.\nBe helpful, accurate, and concise in your responses.\n"}],"role":"user"},{"parts":[{"text":"## Filesystem Tool Instructions\n\nThis toolset provides comprehensive filesystem operations.\n\n### Working Directory\n- Relative paths (like \".\" or \"src/main.go\") are resolved relative to the working directory\n- Absolute paths (like \"/etc/hosts\") access files directly\n- Paths starting with \"..\" can access parent directories\n\n### Common Patterns\n- Always check if directories exist before creating files\n- Prefer read_multiple_files for batch operations\n- Use search_files_content for finding specific code or text\n\n### Performance Tips\n- Use read_multiple_files instead of multiple read_file calls\n- Use directory_tree with max_depth to limit large traversals\n- Use appropriate exclude patterns in search operations"}],"role":"user"},{"parts":[{"text":"How many files in testdata/working_dir? Only output the number."}],"role":"user"},{"parts":[{"functionCall":{"args":{"path":"testdata/working_dir"},"name":"list_directory"},"thoughtSignature":"CiIBcsjafB2TOWr7jmzqFUDRT8stM2yL5XXwxrnDh6fF8NO/Cm4BcsjafOGQI+limC2mW0iBTjfbGqZ4lP9JiKcrOskJQYxZI6jblZF02CEv0q/D+HWs/MxTh9/pxjanyR8Wr1aXcm12gsT7WwQ0qrA7ObQghi7yLpok0lOa9fGydSV60AvWp3Gcnagyn2LfkmoEbwrUAQFyyNp8FJS6ZBgDMdfSU6Q429HED7UiEPPM5iWQF8fgW3tMy7O9a2VPbaRAkP0tkkGrd9+uTp2Js3WcojOUoi5dNC5BShf7i7z6/TT6oKNayCOZeBwVjYA5Vc8YbqCqyPqSYwl+bhdmkKwKl0Ei/OS2wX8LHwMaJKBOjJHEEcUFOuKk9DM5QldeMjB08g0rk7+BIiNltiCTm+QyIkV9nw2pGyUkYIRWjU7Ceck/3miZ+Cuihw28NBhCJ9zHDsDJAhRqkwK6Zkty49Iw+yiisz8VgAIaCugBAXLI2nxZ0hQ8JTVb5mRDv5Tk8ynKeTYDaRkP4eJBeqCq6/bBdDh7yyqN986W2cYWacXuF/bJczYRdoRMfXJRTyQ2hfHxQfxToZZIGc6KodNJD/LEErSsjFJPxhp0aqldH+dp/UXP86+/Uhx7VBIkxNG6GOZhuZxrPZM65qkgdUqajkAhZXz/HFZF4H+wmYV4yPXwPNoEuQLWqpkVINmsJ2Ae43AnFZmSARhO3faex+n0I8XTuBjy8NPfcAICNXNY9rICO7x35uKPAJsAgFXyVGk5pXF0NrpEd4ppiZyyZrc4cBNSZ3ju1Qr8AQFyyNp8MFNfVIIjLjywDXmz1d+gRMwGh4SQHlNsI16IzS0iIm/z8nm22AbpjaVlaSN8tag4OR4CgqJsa7A83ECR5xv6NuNW8WHOquw/mmBY8L5/nGS92aBD5cXcUJuFUeI38VJR0Ff1aCt9CDDtnKqEnbdxMZYs7ruxXY7fB7LR5opw00N1bniJyZrpVQgjL5HomNkFRNn+Ch58v0YZ1g7Zt2/iy943u74WCjiTEHmOKYRDtDMXfQb+uyEqnr7S3nCKytXNMylDcOiZaS9VqAO5B/xa83cjWQpmtwquhdqQM4fgk0ebufqeLh4qUGy7xst9wV12eRkFqgL/MwrKAQFyyNp8SgJlP9UKqUr+vs3IrjxIRTWC6CODjw0vZzl4Yt93yuLMcqTsNNXondyEQbrwD9PHbfGEDWJNjMQfw9PD8Jwxz6jmen2vFn1LYt4q5amceev/lsmv0NOTXvxXbzK1K6xXYsewbsCFa4Lekj7aT9JAVZN8X94Be79u0feQhrnwl21XxYFs6/mo9QWuOSxiucTNF0+6Dt7cfx5EwvSLSbuw3qXbr9cPqkrOsqC5jY+7df0TT12fBnv4ZROpiikWMrqDZB8RlcoKiQEBcsjafDQ1RrE5G0Yz5O45MakHGoB7AbglTeu/2pVnrboJTRntER6bbWme3mqifCjVuyjxSkrQqBRR9854rezwMHB+yY9069hG0NaVkRFMUji6PO7wLaNARdoXhQF74aJP5UxCY/x7EAox7Z89o3XolPSlAZC04aCJwBjFbDC5ghze9cU4aA/KFQ=="}],"role":"model"},{"parts":[{"functionResponse":{"name":"call_5ba0cd1b-f278-47be-a6cd-a8aa0a7bd4e8","response":{"result":"FILE README.me\n"}}}],"role":"user"}],"generationConfig":{"thinkingConfig":{"includeThoughts":true,"thinkingBudget":-1}},"toolConfig":{"functionCallingConfig":{"mode":"AUTO"}},"tools":[{"functionDeclarations":[{"description":"Get a recursive tree view of files and directories as a JSON structure.","name":"directory_tree","parameters":{"properties":{"path":{"description":"The directory path to traverse (relative to working directory)","type":"string"}},"required":["path"],"type":"object"}},{"description":"Make line-based edits to a text file. Each edit replaces exact line sequences with new content.","name":"edit_file","parameters":{"properties":{"edits":{"description":"Array of edit operations","items":{"properties":{"newText":{"description":"The replacement text","type":"string"},"oldText":{"description":"The exact text to replace","type":"string"}},"required":["oldText","newText"],"type":"object"},"type":"array"},"path":{"description":"The file path to edit","type":"string"}},"required":["path","edits"],"type":"object"}},{"description":"Get a detailed listing of all files and directories in a specified path.","name":"list_directory","parameters":{"properties":{"path":{"description":"The directory path to list","type":"string"}},"required":["path"],"type":"object"}},{"description":"Read the complete contents of a file from the file system.","name":"read_file","parameters":{"properties":{"path":{"description":"The file path to read","type":"string"}},"required":["path"],"type":"object"}},{"description":"Read the contents of multiple files simultaneously.","name":"read_multiple_files","parameters":{"properties":{"json":{"description":"Whether to return the result as JSON","type":"boolean"},"paths":{"description":"Array of file paths to read","items":{"type":"string"},"type":"array"}},"required":["paths"],"type":"object"}},{"description":"Searches for text or regex patterns in the content of files matching a GLOB pattern.","name":"search_files_content","parameters":{"properties":{"excludePatterns":{"description":"Patterns to exclude from search","items":{"type":"string"},"type":"array"},"is_regex":{"description":"If true, treat query as regex; otherwise literal text","type":"boolean"},"path":{"description":"The starting directory path","type":"string"},"query":{"description":"The text or regex pattern to search for","type":"string"}},"required":["path","query"],"type":"object"}},{"description":"Create a new file or completely overwrite an existing file with new content.","name":"write_file","parameters":{"properties":{"content":{"description":"The content to write to the file","type":"string"},"path":{"description":"The file path to write","type":"string"}},"required":["path","content"],"type":"object"}}]}]} + {"contents":[{"parts":[{"text":"You are a knowledgeable assistant that helps users with various tasks.\nBe helpful, accurate, and concise in your responses.\n"}],"role":"user"},{"parts":[{"text":"## Filesystem Tool Instructions\n\nThis toolset provides comprehensive filesystem operations.\n\n### Working Directory\n- Relative paths (like \".\" or \"src/main.go\") are resolved relative to the working directory\n- Absolute paths (like \"/etc/hosts\") access files directly\n- Paths starting with \"..\" can access parent directories\n\n### Common Patterns\n- Always check if directories exist before creating files\n- Prefer read_multiple_files for batch operations\n- Use search_files_content for finding specific code or text\n\n### Performance Tips\n- Use read_multiple_files instead of multiple read_file calls\n- Use directory_tree with max_depth to limit large traversals\n- Use appropriate exclude patterns in search operations"}],"role":"user"},{"parts":[{"text":"How many files in testdata/working_dir? Only output the number."}],"role":"user"},{"parts":[{"functionCall":{"args":{"path":"testdata/working_dir"},"name":"list_directory"},"thoughtSignature":"CiQBcsjafMGuAqvsBDG58t91BS0jdQCVmj82BAGhSeduON/zWekKYgFyyNp8msXzfYDBKOEyeEzNR8Gbcah0mXk3cjfrZxK/PzX3JobM72PLCha6j8JmjIKT/GrvEvm1UELCv94iDJcN+CfsFa8Nml+++DbLexS1TLRvRaKxHHM1NNrHvR5THsxtCtEBAXLI2nxjociaq+7MxUltbFjcIsKbqq9zQmmlB7/vE5JzCpgYxXAzI4L10dfs209ufBy1iK81bspBUAeAl+lhOUGvIBaLmha+v0g/w2xx+Qju5M36RLuo8se2ChZ6bztfAmC5y1uIByvjJmmYoKEWNYU1t1GxyzPNU/qZ1UtsDccPB2eAsBo+FsA63Nqsj6eV2tU99ErjHPP1hcE1m6Xbg3tAdyd8WxKYDeESYnXx4qiNOEiq1gRThcQcb3AwIzh4aIQwPjnxzzrc7EVpOEp+b94="}],"role":"model"},{"parts":[{"functionResponse":{"name":"call_cf745b87-8b05-45bb-9b07-489204d82f21","response":{"result":"FILE README.me\n"}}}],"role":"user"}],"generationConfig":{},"toolConfig":{"functionCallingConfig":{"mode":"AUTO"}},"tools":[{"functionDeclarations":[{"description":"Get a recursive tree view of files and directories as a JSON structure.","name":"directory_tree","parameters":{"properties":{"path":{"description":"The directory path to traverse (relative to working directory)","type":"string"}},"required":["path"],"type":"object"}},{"description":"Make line-based edits to a text file. Each edit replaces exact line sequences with new content.","name":"edit_file","parameters":{"properties":{"edits":{"description":"Array of edit operations","items":{"properties":{"newText":{"description":"The replacement text","type":"string"},"oldText":{"description":"The exact text to replace","type":"string"}},"required":["oldText","newText"],"type":"object"},"type":"array"},"path":{"description":"The file path to edit","type":"string"}},"required":["path","edits"],"type":"object"}},{"description":"Get a detailed listing of all files and directories in a specified path.","name":"list_directory","parameters":{"properties":{"path":{"description":"The directory path to list","type":"string"}},"required":["path"],"type":"object"}},{"description":"Read the complete contents of a file from the file system.","name":"read_file","parameters":{"properties":{"path":{"description":"The file path to read","type":"string"}},"required":["path"],"type":"object"}},{"description":"Read the contents of multiple files simultaneously.","name":"read_multiple_files","parameters":{"properties":{"json":{"description":"Whether to return the result as JSON","type":"boolean"},"paths":{"description":"Array of file paths to read","items":{"type":"string"},"type":"array"}},"required":["paths"],"type":"object"}},{"description":"Searches for text or regex patterns in the content of files matching a GLOB pattern.","name":"search_files_content","parameters":{"properties":{"excludePatterns":{"description":"Patterns to exclude from search","items":{"type":"string"},"type":"array"},"is_regex":{"description":"If true, treat query as regex; otherwise literal text","type":"boolean"},"path":{"description":"The starting directory path","type":"string"},"query":{"description":"The text or regex pattern to search for","type":"string"}},"required":["path","query"],"type":"object"}},{"description":"Create a new file or completely overwrite an existing file with new content.","name":"write_file","parameters":{"properties":{"content":{"description":"The content to write to the file","type":"string"},"path":{"description":"The file path to write","type":"string"}},"required":["path","content"],"type":"object"}}]}]} form: alt: - sse @@ -44,8 +44,8 @@ interactions: proto_major: 2 proto_minor: 0 content_length: -1 - body: "data: {\"candidates\": [{\"content\": {\"parts\": [{\"text\": \"**Enumerating the Files**\\n\\nI've tackled the directory listing; the `list_directory` command returned \\\"FILE README.me\\\\n\\\". From that, I've confirmed a single file, \\\"README.me\\\", resides in the specified location. Therefore, the file count is precisely one.\\n\\n\\n\",\"thought\": true}],\"role\": \"model\"},\"index\": 0}],\"usageMetadata\": {\"promptTokenCount\": 1058,\"totalTokenCount\": 1119,\"cachedContentTokenCount\": 726,\"promptTokensDetails\": [{\"modality\": \"TEXT\",\"tokenCount\": 1058}],\"cacheTokensDetails\": [{\"modality\": \"TEXT\",\"tokenCount\": 726}],\"thoughtsTokenCount\": 61},\"modelVersion\": \"gemini-2.5-flash\",\"responseId\": \"_qRqaYKFAbWIkdUP1ZyAqQE\"}\r\n\r\ndata: {\"candidates\": [{\"content\": {\"parts\": [{\"text\": \"1\",\"thoughtSignature\": \"CikBcsjafGvqeBJndOJleJfWxpHhHvslAgacwu37Yvk4bq1zjyByg+JgywpgAXLI2nyPv1L50nvCHIfx8FtcZl9fJqJ/f7sv2DTzHGniKcym1Z+4VbtlzC00uJlaUQp4p1Vm9vuIPRHPqC/aijz37alChyCXiFFehO/5HCuSZO74zDyzPn/8k08kjeU1CqsBAXLI2nzNhfnRVvQDPqA67bw0Wads8VFa2gnQv/QvlNTOPxJ04BC66ir1dfsafxO9w5gq0L8IwqwStrF39AGR0fJBTyNy/dN+QlPgEFyuQ0Z4BWztGWsvM4+mC3PUItG0ssNUDFga14793toJ0J4OYk5krhhNNoXjET5bfO9eIVnWjDmYILxbhDU2m9csZD9PP9Ar6RPREh9axHiczbwX5kPP/s4h0jrglCAr\"}],\"role\": \"model\"},\"finishReason\": \"STOP\",\"index\": 0}],\"usageMetadata\": {\"promptTokenCount\": 1058,\"totalTokenCount\": 1119,\"cachedContentTokenCount\": 726,\"promptTokensDetails\": [{\"modality\": \"TEXT\",\"tokenCount\": 1058}],\"cacheTokensDetails\": [{\"modality\": \"TEXT\",\"tokenCount\": 726}],\"thoughtsTokenCount\": 61},\"modelVersion\": \"gemini-2.5-flash\",\"responseId\": \"_qRqaYKFAbWIkdUP1ZyAqQE\"}\r\n\r\n" + body: "data: {\"candidates\": [{\"content\": {\"parts\": [{\"text\": \"1\",\"thoughtSignature\": \"CisBcsjafDnGv9fTmo03wuycw3TplG6ldblsxUSLkmghHXXZGdgt2kaGl8sAClkBcsjafM0X0VzYVu/TXURSX4OoRsoRxcqGZB6bn8CJuPmaM86kMAmV7HYeTmgU3MZWgxQ4FOckFGKLSLeOCQQNKtLgBny3eKU+uLlUYDlpOd1QAjK9kl5KQApZAXLI2nxarze4akMe1fdsjYSeT8SzItzxvImORLJKT9kfsUlhCWZ/2hvlu0cx8ZRTvxrvHjAorfJb28zOOeYfFHBBWErsCE+/JFcEEllgcNFI7xZwxOIsm8I=\"}],\"role\": \"model\"},\"finishReason\": \"STOP\",\"index\": 0}],\"usageMetadata\": {\"promptTokenCount\": 878,\"candidatesTokenCount\": 1,\"totalTokenCount\": 917,\"cachedContentTokenCount\": 685,\"promptTokensDetails\": [{\"modality\": \"TEXT\",\"tokenCount\": 878}],\"cacheTokensDetails\": [{\"modality\": \"TEXT\",\"tokenCount\": 685}],\"thoughtsTokenCount\": 38},\"modelVersion\": \"gemini-2.5-flash\",\"responseId\": \"ukJvaf6hG9CEvdIPurGFuQs\"}\r\n\r\n" headers: {} status: 200 OK code: 200 - duration: 1.211973167s + duration: 705.121958ms diff --git a/e2e/testdata/cassettes/TestMCP_MultiAgent.yaml b/e2e/testdata/cassettes/TestMCP_MultiAgent.yaml index fb80cdc00..589d00edc 100644 --- a/e2e/testdata/cassettes/TestMCP_MultiAgent.yaml +++ b/e2e/testdata/cassettes/TestMCP_MultiAgent.yaml @@ -8,7 +8,7 @@ interactions: proto_minor: 1 content_length: 0 host: api.openai.com - body: '{"input":[{"content":[{"text":"You are a knowledgeable assistant that helps users with web tasks.\n","type":"input_text"}],"role":"system"},{"content":"Say hello in one sentence.","role":"user"}],"model":"gpt-5-mini","reasoning":{"effort":"medium","summary":"detailed"},"stream":true}' + body: '{"input":[{"content":[{"text":"You are a knowledgeable assistant that helps users with web tasks.\n","type":"input_text"}],"role":"system"},{"content":"Say hello in one sentence.","role":"user"}],"model":"gpt-5-mini","stream":true}' url: https://api.openai.com/v1/responses method: POST response: @@ -18,294 +18,57 @@ interactions: content_length: -1 body: |+ event: response.created - data: {"type":"response.created","response":{"id":"resp_03efa54773f8c97e00696b71757d0081979561d65a51434326","object":"response","created_at":1768649077,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-5-mini-2025-08-07","output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":null,"reasoning":{"effort":"medium","summary":"detailed"},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":0} + data: {"type":"response.created","response":{"id":"resp_0246e83a88ce1f2000696f428b4a7c8193ab1f2bd29aa2adc7","object":"response","created_at":1768899211,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-5-mini-2025-08-07","output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":null,"reasoning":{"effort":"medium","summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":0} event: response.in_progress - data: {"type":"response.in_progress","response":{"id":"resp_03efa54773f8c97e00696b71757d0081979561d65a51434326","object":"response","created_at":1768649077,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-5-mini-2025-08-07","output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":null,"reasoning":{"effort":"medium","summary":"detailed"},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":1} + data: {"type":"response.in_progress","response":{"id":"resp_0246e83a88ce1f2000696f428b4a7c8193ab1f2bd29aa2adc7","object":"response","created_at":1768899211,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-5-mini-2025-08-07","output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":null,"reasoning":{"effort":"medium","summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":1} event: response.output_item.added - data: {"type":"response.output_item.added","item":{"id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","type":"reasoning","summary":[]},"output_index":0,"sequence_number":2} + data: {"type":"response.output_item.added","item":{"id":"rs_0246e83a88ce1f2000696f428ba8d08193b84ba97b452f5b78","type":"reasoning","summary":[]},"output_index":0,"sequence_number":2} - event: response.reasoning_summary_part.added - data: {"type":"response.reasoning_summary_part.added","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","output_index":0,"part":{"type":"summary_text","text":""},"sequence_number":3,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":"**Providing","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"eZtUO","output_index":0,"sequence_number":4,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" a","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"W0pxOVhF72QVP3","output_index":0,"sequence_number":5,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" simple","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"oxYNLRlS1","output_index":0,"sequence_number":6,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" greeting","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"BWKgO84","output_index":0,"sequence_number":7,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":"**\n\nThe","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"eN9PwYbYo","output_index":0,"sequence_number":8,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" user","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"lNmcUwtajnp","output_index":0,"sequence_number":9,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":"’s","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"iKCSBop4d5KMVm","output_index":0,"sequence_number":10,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" request","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"j7NDqan9","output_index":0,"sequence_number":11,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" is","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"sp0vrgWBRh0UW","output_index":0,"sequence_number":12,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" clear","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"RBgEh9zC0m","output_index":0,"sequence_number":13,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":":","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"c7Fpj31SbdNbCpt","output_index":0,"sequence_number":14,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" they","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"5yqn56KIc4z","output_index":0,"sequence_number":15,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" want","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"3j9NoTABm67","output_index":0,"sequence_number":16,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" me","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"71kxVGESOj9Gc","output_index":0,"sequence_number":17,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" to","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"o8rgUPEGQ5847","output_index":0,"sequence_number":18,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" say","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"F2bOkgvxl0IC","output_index":0,"sequence_number":19,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" hello","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"Ths0DxTFYG","output_index":0,"sequence_number":20,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" in","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"evzOD4KYHADfb","output_index":0,"sequence_number":21,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" one","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"4GaAgj4M1V7N","output_index":0,"sequence_number":22,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" concise","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"PWdkiKDn","output_index":0,"sequence_number":23,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" sentence","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"RHHOV8F","output_index":0,"sequence_number":24,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":".","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"ES7l5oeMibpHnTr","output_index":0,"sequence_number":25,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" I","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"Ex879hW9oBSP1V","output_index":0,"sequence_number":26,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" could","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"CVN4693sMR","output_index":0,"sequence_number":27,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" simply","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"KGMoJVYyi","output_index":0,"sequence_number":28,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" go","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"96NjDZqdXwrPf","output_index":0,"sequence_number":29,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" with","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"7RsE2cFZ0vM","output_index":0,"sequence_number":30,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" “","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"z32LWFxrLXmq7X","output_index":0,"sequence_number":31,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":"Hello","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"XsDxUVT4su9","output_index":0,"sequence_number":32,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":"!”","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"KtG9x8fLqAisAp","output_index":0,"sequence_number":33,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" or","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"lc38OBmBeoyBZ","output_index":0,"sequence_number":34,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" add","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"mXgGeDHg638Z","output_index":0,"sequence_number":35,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" a","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"UT1AgeimYByvfI","output_index":0,"sequence_number":36,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" little","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"iaQ31nLPn","output_index":0,"sequence_number":37,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" more","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"APp4OWQ8g6V","output_index":0,"sequence_number":38,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" with","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"PvzHNcQ7Bqm","output_index":0,"sequence_number":39,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" “","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"4k0TVRnSubBr9S","output_index":0,"sequence_number":40,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":"Hello","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"EQMO7Wn8004","output_index":0,"sequence_number":41,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":",","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"Zux3gRD0pyYSIdV","output_index":0,"sequence_number":42,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" how","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"r5RCxFwh7jbE","output_index":0,"sequence_number":43,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" can","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"2nWVv7B5kjhZ","output_index":0,"sequence_number":44,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" I","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"xx37jqVXzOrFUq","output_index":0,"sequence_number":45,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" help","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"vd452ZhYorp","output_index":0,"sequence_number":46,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" you","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"KhSS6tbSTH87","output_index":0,"sequence_number":47,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" today","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"vB9DOfWySo","output_index":0,"sequence_number":48,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":"?”","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"hlbYt1ztWMESIh","output_index":0,"sequence_number":49,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" But","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"PpNboOHOHNWs","output_index":0,"sequence_number":50,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" since","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"0KqMHVnUGG","output_index":0,"sequence_number":51,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" they","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"PFPypQ5hanj","output_index":0,"sequence_number":52,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" asked","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"C1BnvmIj7S","output_index":0,"sequence_number":53,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" explicitly","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"qV8He","output_index":0,"sequence_number":54,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" for","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"jFMFrKd1ftpZ","output_index":0,"sequence_number":55,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" one","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"b12995tqrd6q","output_index":0,"sequence_number":56,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" sentence","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"oQvy8QE","output_index":0,"sequence_number":57,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":",","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"cTxdmzcWQfB67gG","output_index":0,"sequence_number":58,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" I","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"V4jzw9ihdxF2i0","output_index":0,"sequence_number":59,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":"’ll","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"Bcho5cLuUBLTT","output_index":0,"sequence_number":60,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" stick","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"JWIiiCeaYt","output_index":0,"sequence_number":61,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" to","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"koSVR1af22f50","output_index":0,"sequence_number":62,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" just","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"b7reYRnXjhz","output_index":0,"sequence_number":63,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" “","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"xsoDqzyF7ZGK5i","output_index":0,"sequence_number":64,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":"Hello","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"s8offdwHsZR","output_index":0,"sequence_number":65,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":"!”","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"PeqQiI780ddMOK","output_index":0,"sequence_number":66,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" to","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"Jb7LlexuIYf9J","output_index":0,"sequence_number":67,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" keep","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"HhXcBoi6x6l","output_index":0,"sequence_number":68,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" it","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"tkpJMWA3csn0Z","output_index":0,"sequence_number":69,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" simple","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"nm9GjNu0w","output_index":0,"sequence_number":70,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":".","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"W3EVa2DRcmMywW9","output_index":0,"sequence_number":71,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" That","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"jTVqWseLwRB","output_index":0,"sequence_number":72,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" way","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"ck5CaDbxATMn","output_index":0,"sequence_number":73,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":",","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"MQamC2SneoIBsYj","output_index":0,"sequence_number":74,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" I","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"3ZtBBRH4fgeWSZ","output_index":0,"sequence_number":75,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":"’m","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"VvNpRI6SKS3dIv","output_index":0,"sequence_number":76,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" answering","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"xchzkI","output_index":0,"sequence_number":77,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" their","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"IYLsaw72mq","output_index":0,"sequence_number":78,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" request","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"T1oDtFFT","output_index":0,"sequence_number":79,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" directly","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"KOqSBdn","output_index":0,"sequence_number":80,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" without","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"Fs02Tcdq","output_index":0,"sequence_number":81,"summary_index":0} - - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" any","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"2W6tEk255zL7","output_index":0,"sequence_number":82,"summary_index":0} + event: response.output_item.done + data: {"type":"response.output_item.done","item":{"id":"rs_0246e83a88ce1f2000696f428ba8d08193b84ba97b452f5b78","type":"reasoning","summary":[]},"output_index":0,"sequence_number":3} - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":" fluff","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"FRSrlgEZvu","output_index":0,"sequence_number":83,"summary_index":0} + event: response.output_item.added + data: {"type":"response.output_item.added","item":{"id":"msg_0246e83a88ce1f2000696f428d8db88193a4b3d53e7517a7de","type":"message","status":"in_progress","content":[],"role":"assistant"},"output_index":1,"sequence_number":4} - event: response.reasoning_summary_text.delta - data: {"type":"response.reasoning_summary_text.delta","delta":".","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","obfuscation":"8Xp7DBNa74weICC","output_index":0,"sequence_number":84,"summary_index":0} + event: response.content_part.added + data: {"type":"response.content_part.added","content_index":0,"item_id":"msg_0246e83a88ce1f2000696f428d8db88193a4b3d53e7517a7de","output_index":1,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":""},"sequence_number":5} - event: response.reasoning_summary_text.done - data: {"type":"response.reasoning_summary_text.done","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","output_index":0,"sequence_number":85,"summary_index":0,"text":"**Providing a simple greeting**\n\nThe user’s request is clear: they want me to say hello in one concise sentence. I could simply go with “Hello!” or add a little more with “Hello, how can I help you today?” But since they asked explicitly for one sentence, I’ll stick to just “Hello!” to keep it simple. That way, I’m answering their request directly without any fluff."} + event: response.output_text.delta + data: {"type":"response.output_text.delta","content_index":0,"delta":"Hello","item_id":"msg_0246e83a88ce1f2000696f428d8db88193a4b3d53e7517a7de","logprobs":[],"obfuscation":"lJamxmQb9jN","output_index":1,"sequence_number":6} - event: response.reasoning_summary_part.done - data: {"type":"response.reasoning_summary_part.done","item_id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","output_index":0,"part":{"type":"summary_text","text":"**Providing a simple greeting**\n\nThe user’s request is clear: they want me to say hello in one concise sentence. I could simply go with “Hello!” or add a little more with “Hello, how can I help you today?” But since they asked explicitly for one sentence, I’ll stick to just “Hello!” to keep it simple. That way, I’m answering their request directly without any fluff."},"sequence_number":86,"summary_index":0} + event: response.output_text.delta + data: {"type":"response.output_text.delta","content_index":0,"delta":",","item_id":"msg_0246e83a88ce1f2000696f428d8db88193a4b3d53e7517a7de","logprobs":[],"obfuscation":"mSVvZLw6T4rp4ET","output_index":1,"sequence_number":7} - event: response.output_item.done - data: {"type":"response.output_item.done","item":{"id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","type":"reasoning","summary":[{"type":"summary_text","text":"**Providing a simple greeting**\n\nThe user’s request is clear: they want me to say hello in one concise sentence. I could simply go with “Hello!” or add a little more with “Hello, how can I help you today?” But since they asked explicitly for one sentence, I’ll stick to just “Hello!” to keep it simple. That way, I’m answering their request directly without any fluff."}]},"output_index":0,"sequence_number":87} + event: response.output_text.delta + data: {"type":"response.output_text.delta","content_index":0,"delta":" nice","item_id":"msg_0246e83a88ce1f2000696f428d8db88193a4b3d53e7517a7de","logprobs":[],"obfuscation":"eSKatVlYlqg","output_index":1,"sequence_number":8} - event: response.output_item.added - data: {"type":"response.output_item.added","item":{"id":"msg_03efa54773f8c97e00696b7178fea08197b2dec6df945ebb5f","type":"message","status":"in_progress","content":[],"role":"assistant"},"output_index":1,"sequence_number":88} + event: response.output_text.delta + data: {"type":"response.output_text.delta","content_index":0,"delta":" to","item_id":"msg_0246e83a88ce1f2000696f428d8db88193a4b3d53e7517a7de","logprobs":[],"obfuscation":"jhAYo5qPDgmfT","output_index":1,"sequence_number":9} - event: response.content_part.added - data: {"type":"response.content_part.added","content_index":0,"item_id":"msg_03efa54773f8c97e00696b7178fea08197b2dec6df945ebb5f","output_index":1,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":""},"sequence_number":89} + event: response.output_text.delta + data: {"type":"response.output_text.delta","content_index":0,"delta":" meet","item_id":"msg_0246e83a88ce1f2000696f428d8db88193a4b3d53e7517a7de","logprobs":[],"obfuscation":"jE761o4YweF","output_index":1,"sequence_number":10} event: response.output_text.delta - data: {"type":"response.output_text.delta","content_index":0,"delta":"Hello","item_id":"msg_03efa54773f8c97e00696b7178fea08197b2dec6df945ebb5f","logprobs":[],"obfuscation":"rIs3fcn18hX","output_index":1,"sequence_number":90} + data: {"type":"response.output_text.delta","content_index":0,"delta":" you","item_id":"msg_0246e83a88ce1f2000696f428d8db88193a4b3d53e7517a7de","logprobs":[],"obfuscation":"zS0YhblNmZYm","output_index":1,"sequence_number":11} event: response.output_text.delta - data: {"type":"response.output_text.delta","content_index":0,"delta":"!","item_id":"msg_03efa54773f8c97e00696b7178fea08197b2dec6df945ebb5f","logprobs":[],"obfuscation":"EABhOBOoyL4mcEJ","output_index":1,"sequence_number":91} + data: {"type":"response.output_text.delta","content_index":0,"delta":"!","item_id":"msg_0246e83a88ce1f2000696f428d8db88193a4b3d53e7517a7de","logprobs":[],"obfuscation":"OdAQnRXJFt5QCJb","output_index":1,"sequence_number":12} event: response.output_text.done - data: {"type":"response.output_text.done","content_index":0,"item_id":"msg_03efa54773f8c97e00696b7178fea08197b2dec6df945ebb5f","logprobs":[],"output_index":1,"sequence_number":92,"text":"Hello!"} + data: {"type":"response.output_text.done","content_index":0,"item_id":"msg_0246e83a88ce1f2000696f428d8db88193a4b3d53e7517a7de","logprobs":[],"output_index":1,"sequence_number":13,"text":"Hello, nice to meet you!"} event: response.content_part.done - data: {"type":"response.content_part.done","content_index":0,"item_id":"msg_03efa54773f8c97e00696b7178fea08197b2dec6df945ebb5f","output_index":1,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":"Hello!"},"sequence_number":93} + data: {"type":"response.content_part.done","content_index":0,"item_id":"msg_0246e83a88ce1f2000696f428d8db88193a4b3d53e7517a7de","output_index":1,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":"Hello, nice to meet you!"},"sequence_number":14} event: response.output_item.done - data: {"type":"response.output_item.done","item":{"id":"msg_03efa54773f8c97e00696b7178fea08197b2dec6df945ebb5f","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"Hello!"}],"role":"assistant"},"output_index":1,"sequence_number":94} + data: {"type":"response.output_item.done","item":{"id":"msg_0246e83a88ce1f2000696f428d8db88193a4b3d53e7517a7de","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"Hello, nice to meet you!"}],"role":"assistant"},"output_index":1,"sequence_number":15} event: response.completed - data: {"type":"response.completed","response":{"id":"resp_03efa54773f8c97e00696b71757d0081979561d65a51434326","object":"response","created_at":1768649077,"status":"completed","background":false,"completed_at":1768649081,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-5-mini-2025-08-07","output":[{"id":"rs_03efa54773f8c97e00696b7175bfcc81979d2b6f55eb20d023","type":"reasoning","summary":[{"type":"summary_text","text":"**Providing a simple greeting**\n\nThe user’s request is clear: they want me to say hello in one concise sentence. I could simply go with “Hello!” or add a little more with “Hello, how can I help you today?” But since they asked explicitly for one sentence, I’ll stick to just “Hello!” to keep it simple. That way, I’m answering their request directly without any fluff."}]},{"id":"msg_03efa54773f8c97e00696b7178fea08197b2dec6df945ebb5f","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"Hello!"}],"role":"assistant"}],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":null,"reasoning":{"effort":"medium","summary":"detailed"},"safety_identifier":null,"service_tier":"default","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":{"input_tokens":28,"input_tokens_details":{"cached_tokens":0},"output_tokens":72,"output_tokens_details":{"reasoning_tokens":64},"total_tokens":100},"user":null,"metadata":{}},"sequence_number":95} + data: {"type":"response.completed","response":{"id":"resp_0246e83a88ce1f2000696f428b4a7c8193ab1f2bd29aa2adc7","object":"response","created_at":1768899211,"status":"completed","background":false,"completed_at":1768899213,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-5-mini-2025-08-07","output":[{"id":"rs_0246e83a88ce1f2000696f428ba8d08193b84ba97b452f5b78","type":"reasoning","summary":[]},{"id":"msg_0246e83a88ce1f2000696f428d8db88193a4b3d53e7517a7de","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"Hello, nice to meet you!"}],"role":"assistant"}],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":null,"reasoning":{"effort":"medium","summary":null},"safety_identifier":null,"service_tier":"default","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":{"input_tokens":28,"input_tokens_details":{"cached_tokens":0},"output_tokens":141,"output_tokens_details":{"reasoning_tokens":128},"total_tokens":169},"user":null,"metadata":{}},"sequence_number":16} headers: {} status: 200 OK code: 200 - duration: 366.331104ms + duration: 680.692292ms diff --git a/pkg/app/app_test.go b/pkg/app/app_test.go index ac7d1f6d5..2db250ba8 100644 --- a/pkg/app/app_test.go +++ b/pkg/app/app_test.go @@ -138,5 +138,5 @@ func TestApp_NewSession_WithNilSession(t *testing.T) { require.NotNil(t, app.Session(), "NewSession should create a new session") // Default values - assert.True(t, app.Session().Thinking, "NewSession with nil should use default thinking=true") + assert.False(t, app.Session().Thinking, "NewSession with nil should use default thinking=true") } diff --git a/pkg/session/session.go b/pkg/session/session.go index 48e09db89..1bc7f71b6 100644 --- a/pkg/session/session.go +++ b/pkg/session/session.go @@ -439,7 +439,7 @@ func New(opts ...Opt) *Session { ID: sessionID, CreatedAt: time.Now(), SendUserMessage: true, - Thinking: true, // Default to thinking enabled + Thinking: false, } for _, opt := range opts { diff --git a/pkg/teamloader/teamloader.go b/pkg/teamloader/teamloader.go index bcb805e6e..1766e8325 100644 --- a/pkg/teamloader/teamloader.go +++ b/pkg/teamloader/teamloader.go @@ -55,9 +55,6 @@ type LoadResult struct { Providers map[string]latest.ProviderConfig // AgentDefaultModels maps agent names to their configured default model references AgentDefaultModels map[string]string - // ConfigVersion is the original config file version (e.g., "0", "1", "2", "3", "4"). - // Used to determine initial session thinking state for backward compatibility. - ConfigVersion string } // Load loads an agent team from the given source @@ -217,7 +214,6 @@ func LoadWithConfig(ctx context.Context, agentSource config.Source, runConfig *c Models: cfg.Models, Providers: cfg.Providers, AgentDefaultModels: agentDefaultModels, - ConfigVersion: cfg.Version, }, nil }