From d777c3b41f18b6c82ce86ae8bead01116154a3d5 Mon Sep 17 00:00:00 2001 From: Andrey Oskin Date: Fri, 24 Oct 2025 17:09:10 +0200 Subject: [PATCH] update generate text API for new mastra --- Gemfile.lock | 2 +- lib/ai/types/generate_object_result.rb | 12 ++---------- lib/ai/types/generate_text_result.rb | 3 ++- lib/ai/types/step_result.rb | 7 +++---- lib/ai/version.rb | 2 +- spec/lib/ai/agent_spec.rb | 2 +- 6 files changed, 10 insertions(+), 18 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 1ddf06a..dd4fc2a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - ai (0.4.2) + ai (0.5.0) actionpack (>= 7.1.3) activesupport (>= 7.1.3) json_schemer (~> 2.4.0) diff --git a/lib/ai/types/generate_object_result.rb b/lib/ai/types/generate_object_result.rb index 26d4b54..229270f 100644 --- a/lib/ai/types/generate_object_result.rb +++ b/lib/ai/types/generate_object_result.rb @@ -6,23 +6,15 @@ class GenerateObjectResult < T::Struct Elem = type_member - # The object that was generated const :object, Elem - # Why the language-model call finished (e.g. :stop, :length…) const :finish_reason, Ai::FinishReason - # Usage format const :usage, T.nilable(Usage), default: nil - # Provider warnings (e.g. unsupported settings) + const :total_usage, T.nilable(Usage), default: nil const :warnings, T.nilable(T::Array[CallWarning]) - # Raw request metadata (body, headers, etc.) const :request, LanguageModelRequestMetadata - # Raw response metadata (status, headers, body, messages, …) const :response, ResponseMetadata - # Log-probs if the provider returned them const :logprobs, T.nilable(LogProbs) - # Structured, provider-specific extras const :provider_metadata, T.nilable(ProviderMetadata) - # Back-compat alias (deprecated) - const :experimental_provider_metadata, T.nilable(ProviderMetadata) + const :trace_id, T.nilable(String) end end diff --git a/lib/ai/types/generate_text_result.rb b/lib/ai/types/generate_text_result.rb index 3497b48..21796a4 100644 --- a/lib/ai/types/generate_text_result.rb +++ b/lib/ai/types/generate_text_result.rb @@ -13,12 +13,13 @@ class GenerateTextResult < T::Struct const :tool_results, ToolResultArray const :finish_reason, FinishReason const :usage, T.nilable(Usage), default: nil + const :total_usage, T.nilable(Usage), default: nil const :warnings, T.nilable(T::Array[CallWarning]) const :steps, T::Array[StepResult] const :request, LanguageModelRequestMetadata const :response, ResponseMetadata const :logprobs, T.nilable(LogProbs) const :provider_metadata, T.nilable(ProviderMetadata) - const :experimental_provider_metadata, T.nilable(ProviderMetadata) + const :trace_id, T.nilable(String) end end diff --git a/lib/ai/types/step_result.rb b/lib/ai/types/step_result.rb index fb5df2c..b010020 100644 --- a/lib/ai/types/step_result.rb +++ b/lib/ai/types/step_result.rb @@ -3,8 +3,9 @@ module Ai class StepResult < T::Struct const :text, String - const :reasoning, T.nilable(String) - const :reasoning_details, T::Array[ReasoningDetail] + const :content, T::Array[T.anything] + const :reasoning_text, T.nilable(String) + const :reasoning, T::Array[ReasoningDetail] const :files, T::Array[GeneratedFile] const :sources, T::Array[Source] const :tool_calls, ToolCallArray @@ -16,8 +17,6 @@ class StepResult < T::Struct const :request, LanguageModelRequestMetadata const :response, ResponseMetadata const :provider_metadata, T.nilable(ProviderMetadata) - const :experimental_provider_metadata, T.nilable(ProviderMetadata) const :step_type, String # 'initial' | 'continue' | 'tool-result' - const :is_continued, T::Boolean end end diff --git a/lib/ai/version.rb b/lib/ai/version.rb index 39cf1fd..3328242 100644 --- a/lib/ai/version.rb +++ b/lib/ai/version.rb @@ -2,5 +2,5 @@ # frozen_string_literal: true module Ai - VERSION = '0.4.2' + VERSION = '0.5.0' end diff --git a/spec/lib/ai/agent_spec.rb b/spec/lib/ai/agent_spec.rb index 57218da..ea68830 100644 --- a/spec/lib/ai/agent_spec.rb +++ b/spec/lib/ai/agent_spec.rb @@ -205,7 +205,7 @@ expect(result).to respond_to(:response) expect(result).to respond_to(:logprobs) expect(result).to respond_to(:provider_metadata) - expect(result).to respond_to(:experimental_provider_metadata) + expect(result).to respond_to(:trace_id) expect(result.object).to be_a(schema) end