diff --git a/lib/models/request_model.dart b/lib/models/request_model.dart index 952aaa7c..8513e938 100644 --- a/lib/models/request_model.dart +++ b/lib/models/request_model.dart @@ -27,7 +27,6 @@ class RequestModel with _$RequestModel { String? preRequestScript, String? postRequestScript, AIRequestModel? aiRequestModel, - AIResponseModel? aiResponseModel, }) = _RequestModel; factory RequestModel.fromJson(Map json) => diff --git a/lib/models/request_model.freezed.dart b/lib/models/request_model.freezed.dart index 5998065d..d700dba9 100644 --- a/lib/models/request_model.freezed.dart +++ b/lib/models/request_model.freezed.dart @@ -40,7 +40,6 @@ mixin _$RequestModel { String? get preRequestScript => throw _privateConstructorUsedError; String? get postRequestScript => throw _privateConstructorUsedError; AIRequestModel? get aiRequestModel => throw _privateConstructorUsedError; - AIResponseModel? get aiResponseModel => throw _privateConstructorUsedError; /// Serializes this RequestModel to a JSON map. Map toJson() => throw _privateConstructorUsedError; @@ -73,13 +72,11 @@ abstract class $RequestModelCopyWith<$Res> { @JsonKey(includeToJson: false) bool isStreaming, String? preRequestScript, String? postRequestScript, - AIRequestModel? aiRequestModel, - AIResponseModel? aiResponseModel}); + AIRequestModel? aiRequestModel}); $HttpRequestModelCopyWith<$Res>? get httpRequestModel; $HttpResponseModelCopyWith<$Res>? get httpResponseModel; $AIRequestModelCopyWith<$Res>? get aiRequestModel; - $AIResponseModelCopyWith<$Res>? get aiResponseModel; } /// @nodoc @@ -112,7 +109,6 @@ class _$RequestModelCopyWithImpl<$Res, $Val extends RequestModel> Object? preRequestScript = freezed, Object? postRequestScript = freezed, Object? aiRequestModel = freezed, - Object? aiResponseModel = freezed, }) { return _then(_value.copyWith( id: null == id @@ -175,10 +171,6 @@ class _$RequestModelCopyWithImpl<$Res, $Val extends RequestModel> ? _value.aiRequestModel : aiRequestModel // ignore: cast_nullable_to_non_nullable as AIRequestModel?, - aiResponseModel: freezed == aiResponseModel - ? _value.aiResponseModel - : aiResponseModel // ignore: cast_nullable_to_non_nullable - as AIResponseModel?, ) as $Val); } @@ -223,20 +215,6 @@ class _$RequestModelCopyWithImpl<$Res, $Val extends RequestModel> return _then(_value.copyWith(aiRequestModel: value) as $Val); }); } - - /// Create a copy of RequestModel - /// with the given fields replaced by the non-null parameter values. - @override - @pragma('vm:prefer-inline') - $AIResponseModelCopyWith<$Res>? get aiResponseModel { - if (_value.aiResponseModel == null) { - return null; - } - - return $AIResponseModelCopyWith<$Res>(_value.aiResponseModel!, (value) { - return _then(_value.copyWith(aiResponseModel: value) as $Val); - }); - } } /// @nodoc @@ -262,8 +240,7 @@ abstract class _$$RequestModelImplCopyWith<$Res> @JsonKey(includeToJson: false) bool isStreaming, String? preRequestScript, String? postRequestScript, - AIRequestModel? aiRequestModel, - AIResponseModel? aiResponseModel}); + AIRequestModel? aiRequestModel}); @override $HttpRequestModelCopyWith<$Res>? get httpRequestModel; @@ -271,8 +248,6 @@ abstract class _$$RequestModelImplCopyWith<$Res> $HttpResponseModelCopyWith<$Res>? get httpResponseModel; @override $AIRequestModelCopyWith<$Res>? get aiRequestModel; - @override - $AIResponseModelCopyWith<$Res>? get aiResponseModel; } /// @nodoc @@ -303,7 +278,6 @@ class __$$RequestModelImplCopyWithImpl<$Res> Object? preRequestScript = freezed, Object? postRequestScript = freezed, Object? aiRequestModel = freezed, - Object? aiResponseModel = freezed, }) { return _then(_$RequestModelImpl( id: null == id @@ -365,10 +339,6 @@ class __$$RequestModelImplCopyWithImpl<$Res> ? _value.aiRequestModel : aiRequestModel // ignore: cast_nullable_to_non_nullable as AIRequestModel?, - aiResponseModel: freezed == aiResponseModel - ? _value.aiResponseModel - : aiResponseModel // ignore: cast_nullable_to_non_nullable - as AIResponseModel?, )); } } @@ -392,8 +362,7 @@ class _$RequestModelImpl implements _RequestModel { @JsonKey(includeToJson: false) this.isStreaming = false, this.preRequestScript, this.postRequestScript, - this.aiRequestModel, - this.aiResponseModel}); + this.aiRequestModel}); factory _$RequestModelImpl.fromJson(Map json) => _$$RequestModelImplFromJson(json); @@ -435,12 +404,10 @@ class _$RequestModelImpl implements _RequestModel { final String? postRequestScript; @override final AIRequestModel? aiRequestModel; - @override - final AIResponseModel? aiResponseModel; @override String toString() { - return 'RequestModel(id: $id, apiType: $apiType, name: $name, description: $description, requestTabIndex: $requestTabIndex, httpRequestModel: $httpRequestModel, responseStatus: $responseStatus, message: $message, httpResponseModel: $httpResponseModel, isWorking: $isWorking, sendingTime: $sendingTime, isStreaming: $isStreaming, preRequestScript: $preRequestScript, postRequestScript: $postRequestScript, aiRequestModel: $aiRequestModel, aiResponseModel: $aiResponseModel)'; + return 'RequestModel(id: $id, apiType: $apiType, name: $name, description: $description, requestTabIndex: $requestTabIndex, httpRequestModel: $httpRequestModel, responseStatus: $responseStatus, message: $message, httpResponseModel: $httpResponseModel, isWorking: $isWorking, sendingTime: $sendingTime, isStreaming: $isStreaming, preRequestScript: $preRequestScript, postRequestScript: $postRequestScript, aiRequestModel: $aiRequestModel)'; } @override @@ -473,9 +440,7 @@ class _$RequestModelImpl implements _RequestModel { (identical(other.postRequestScript, postRequestScript) || other.postRequestScript == postRequestScript) && (identical(other.aiRequestModel, aiRequestModel) || - other.aiRequestModel == aiRequestModel) && - (identical(other.aiResponseModel, aiResponseModel) || - other.aiResponseModel == aiResponseModel)); + other.aiRequestModel == aiRequestModel)); } @JsonKey(includeFromJson: false, includeToJson: false) @@ -496,8 +461,7 @@ class _$RequestModelImpl implements _RequestModel { isStreaming, preRequestScript, postRequestScript, - aiRequestModel, - aiResponseModel); + aiRequestModel); /// Create a copy of RequestModel /// with the given fields replaced by the non-null parameter values. @@ -531,8 +495,7 @@ abstract class _RequestModel implements RequestModel { @JsonKey(includeToJson: false) final bool isStreaming, final String? preRequestScript, final String? postRequestScript, - final AIRequestModel? aiRequestModel, - final AIResponseModel? aiResponseModel}) = _$RequestModelImpl; + final AIRequestModel? aiRequestModel}) = _$RequestModelImpl; factory _RequestModel.fromJson(Map json) = _$RequestModelImpl.fromJson; @@ -571,8 +534,6 @@ abstract class _RequestModel implements RequestModel { String? get postRequestScript; @override AIRequestModel? get aiRequestModel; - @override - AIResponseModel? get aiResponseModel; /// Create a copy of RequestModel /// with the given fields replaced by the non-null parameter values. diff --git a/lib/models/request_model.g.dart b/lib/models/request_model.g.dart index d994e7c4..272bfca0 100644 --- a/lib/models/request_model.g.dart +++ b/lib/models/request_model.g.dart @@ -34,10 +34,6 @@ _$RequestModelImpl _$$RequestModelImplFromJson(Map json) => _$RequestModelImpl( ? null : AIRequestModel.fromJson( Map.from(json['aiRequestModel'] as Map)), - aiResponseModel: json['aiResponseModel'] == null - ? null - : AIResponseModel.fromJson( - Map.from(json['aiResponseModel'] as Map)), ); Map _$$RequestModelImplToJson(_$RequestModelImpl instance) => @@ -53,7 +49,6 @@ Map _$$RequestModelImplToJson(_$RequestModelImpl instance) => 'preRequestScript': instance.preRequestScript, 'postRequestScript': instance.postRequestScript, 'aiRequestModel': instance.aiRequestModel?.toJson(), - 'aiResponseModel': instance.aiResponseModel?.toJson(), }; const _$APITypeEnumMap = { diff --git a/lib/providers/collection_providers.dart b/lib/providers/collection_providers.dart index 1c6e7f73..4203f445 100644 --- a/lib/providers/collection_providers.dart +++ b/lib/providers/collection_providers.dart @@ -1,4 +1,6 @@ import 'dart:async'; +import 'dart:convert'; + import 'package:apidash_core/apidash_core.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; @@ -229,7 +231,6 @@ class CollectionStateNotifier String? preRequestScript, String? postRequestScript, AIRequestModel? aiRequestModel, - AIResponseModel? aiResponseModel, }) { final rId = id ?? ref.read(selectedIdStateProvider); if (rId == null) { @@ -265,7 +266,6 @@ class CollectionStateNotifier preRequestScript: preRequestScript ?? currentModel.preRequestScript, postRequestScript: postRequestScript ?? currentModel.postRequestScript, aiRequestModel: aiRequestModel ?? currentModel.aiRequestModel, - aiResponseModel: aiResponseModel ?? currentModel.aiResponseModel, ); var map = {...state!}; @@ -310,10 +310,32 @@ class CollectionStateNotifier } APIType apiType = executionRequestModel.apiType; - HttpRequestModel substitutedHttpRequestModel = - getSubstitutedHttpRequestModel(executionRequestModel.httpRequestModel!); + + late HttpRequestModel substitutedHttpRequestModel; + AIRequestModel? aiRequestModel; bool noSSL = ref.read(settingsProvider).isSSLDisabled; + if (apiType == APIType.ai) { + aiRequestModel = requestModel.aiRequestModel!; + final genAIRequest = aiRequestModel.createRequest(); + substitutedHttpRequestModel = getSubstitutedHttpRequestModel( + HttpRequestModel( + method: HTTPVerb.post, + headers: [ + ...genAIRequest.headers.entries.map( + (x) => NameValueModel.fromJson({x.key: x.value}), + ), + ], + url: genAIRequest.endpoint, + bodyContentType: ContentType.json, + body: jsonEncode(genAIRequest.body), + ), + ); + } else { + substitutedHttpRequestModel = getSubstitutedHttpRequestModel( + executionRequestModel.httpRequestModel!); + } + // Set model to working and streaming state = { ...state!, @@ -339,6 +361,8 @@ class CollectionStateNotifier StreamSubscription? sub; + // bool streaming = true; //DEFAULT to streaming + sub = stream.listen((rec) async { if (rec == null) return; @@ -347,6 +371,14 @@ class CollectionStateNotifier final duration = rec.$3; final errorMessage = rec.$4; + if (isStreamingResponse == false) { + // streaming = false; + if (!completer.isCompleted) { + completer.complete((response, duration, errorMessage)); + } + return; + } + if (isStreamingResponse) { httpResponseModel = httpResponseModel?.copyWith( time: duration, diff --git a/lib/screens/home_page/editor_pane/details_card/request_pane/request_body.dart b/lib/screens/home_page/editor_pane/details_card/request_pane/request_body.dart index 91d80e41..e192f26e 100644 --- a/lib/screens/home_page/editor_pane/details_card/request_pane/request_body.dart +++ b/lib/screens/home_page/editor_pane/details_card/request_pane/request_body.dart @@ -92,7 +92,6 @@ class EditRequestBody extends ConsumerWidget { ), ), ), - APIType.ai => FlutterLogo(), _ => kSizedBoxEmpty, } ], diff --git a/lib/screens/home_page/editor_pane/details_card/response_pane.dart b/lib/screens/home_page/editor_pane/details_card/response_pane.dart index 367bb412..9bb3ab58 100644 --- a/lib/screens/home_page/editor_pane/details_card/response_pane.dart +++ b/lib/screens/home_page/editor_pane/details_card/response_pane.dart @@ -52,7 +52,10 @@ class ResponseDetails extends ConsumerWidget { selectedRequestModelProvider.select((value) => value?.responseStatus)); final message = ref .watch(selectedRequestModelProvider.select((value) => value?.message)); - final responseModel = ref.watch(selectedRequestModelProvider + + HttpResponseModel? httpResponseModel; + + httpResponseModel = ref.watch(selectedRequestModelProvider .select((value) => value?.httpResponseModel)); return Column( @@ -60,7 +63,7 @@ class ResponseDetails extends ConsumerWidget { ResponsePaneHeader( responseStatus: responseStatus, message: message, - time: responseModel?.time, + time: httpResponseModel?.time, onClearResponse: () { ref.read(collectionStateNotifierProvider.notifier).clearResponse(); }, @@ -106,15 +109,20 @@ class ResponseHeadersTab extends ConsumerWidget { @override Widget build(BuildContext context, WidgetRef ref) { - final requestHeaders = ref.watch(selectedRequestModelProvider - .select((value) => value?.httpResponseModel?.requestHeaders)) ?? - {}; - final responseHeaders = ref.watch(selectedRequestModelProvider - .select((value) => value?.httpResponseModel?.headers)) ?? - {}; + final requestHeaders = + ref.watch(selectedRequestModelProvider.select((value) { + return value?.httpResponseModel!.requestHeaders; + })); + + final responseHeaders = + ref.watch(selectedRequestModelProvider.select((value) { + return value?.httpResponseModel!.headers; + })) ?? + {}; + return ResponseHeaders( responseHeaders: responseHeaders, - requestHeaders: requestHeaders, + requestHeaders: requestHeaders as Map? ?? {}, ); } } diff --git a/lib/widgets/response_body.dart b/lib/widgets/response_body.dart index d0af2baa..8b72b44a 100644 --- a/lib/widgets/response_body.dart +++ b/lib/widgets/response_body.dart @@ -1,3 +1,5 @@ +import 'dart:convert'; + import 'package:flutter/material.dart'; import 'package:apidash_core/apidash_core.dart'; import 'package:apidash/models/models.dart'; @@ -16,15 +18,18 @@ class ResponseBody extends StatelessWidget { @override Widget build(BuildContext context) { - final responseModel = selectedRequestModel?.httpResponseModel; - if (responseModel == null) { + HttpResponseModel? httpResponseModel; + httpResponseModel = selectedRequestModel?.httpResponseModel; + + if (httpResponseModel == null) { return const ErrorMessage( message: '$kNullResponseModelError $kUnexpectedRaiseIssue'); } - final isSSE = responseModel.sseOutput?.isNotEmpty ?? false; - var body = responseModel.body; - var formattedBody = responseModel.formattedBody; + final isSSE = httpResponseModel.sseOutput?.isNotEmpty ?? false; + var body = httpResponseModel.body; + var formattedBody = httpResponseModel.formattedBody; + if (body == null) { return const ErrorMessage( message: '$kMsgNullBody $kUnexpectedRaiseIssue'); @@ -37,11 +42,12 @@ class ResponseBody extends StatelessWidget { ); } if (isSSE) { - body = responseModel.sseOutput!.join(); + body = httpResponseModel.sseOutput!.join(); } final mediaType = - responseModel.mediaType ?? MediaType(kTypeText, kSubTypePlain); + httpResponseModel.mediaType ?? MediaType(kTypeText, kSubTypePlain); + // Fix #415: Treat null Content-type as plain text instead of Error message // if (mediaType == null) { // return ErrorMessage( @@ -58,14 +64,28 @@ class ResponseBody extends StatelessWidget { options.remove(ResponseBodyView.code); } + // print('reM -> ${responseModel.sseOutput}'); + + if (httpResponseModel.sseOutput?.isNotEmpty ?? false) { + // final modifiedBody = responseModel.sseOutput!.join('\n\n'); + return ResponseBodySuccess( + key: Key("${selectedRequestModel!.id}-response"), + mediaType: MediaType('text', 'event-stream'), + options: [ResponseBodyView.sse, ResponseBodyView.raw], + bytes: utf8.encode((httpResponseModel.sseOutput!).toString()), + body: jsonEncode(httpResponseModel.sseOutput!), + formattedBody: httpResponseModel.sseOutput!.join('\n'), + ); + } + return ResponseBodySuccess( key: Key("${selectedRequestModel!.id}-response"), mediaType: mediaType, options: options, - bytes: responseModel.bodyBytes!, + bytes: httpResponseModel.bodyBytes!, body: body, formattedBody: formattedBody, - sseOutput: responseModel.sseOutput, + sseOutput: httpResponseModel.sseOutput, highlightLanguage: highlightLanguage, ); } diff --git a/packages/better_networking/lib/consts.dart b/packages/better_networking/lib/consts.dart index 68c2c0a3..3b370596 100644 --- a/packages/better_networking/lib/consts.dart +++ b/packages/better_networking/lib/consts.dart @@ -8,6 +8,13 @@ enum APIType { const APIType(this.label, this.abbr); final String label; final String abbr; + + static fromMethod(String method) { + return HTTPVerb.values.firstWhere( + (model) => model.name == method.toLowerCase(), + orElse: () => throw ArgumentError('INVALID HTTP METHOD'), + ); + } } enum APIAuthType { diff --git a/packages/genai/lib/genai.dart b/packages/genai/lib/genai.dart index b96c6195..2b4be834 100644 --- a/packages/genai/lib/genai.dart +++ b/packages/genai/lib/genai.dart @@ -1,6 +1,5 @@ // Module Exports export 'models/ai_request_model.dart'; -export 'models/ai_response_model.dart'; export 'providers/providers.dart'; export 'generative_ai.dart'; export 'llm_config.dart'; @@ -9,4 +8,4 @@ export 'llm_manager.dart'; export 'llm_model.dart'; export 'llm_provider.dart'; export 'llm_request.dart'; -export 'llm_saveobject.dart'; \ No newline at end of file +export 'llm_saveobject.dart'; diff --git a/packages/genai/lib/models/ai_response_model.dart b/packages/genai/lib/models/ai_response_model.dart deleted file mode 100644 index a1aa75a4..00000000 --- a/packages/genai/lib/models/ai_response_model.dart +++ /dev/null @@ -1,62 +0,0 @@ -import 'dart:convert'; -import 'dart:io'; -import 'dart:typed_data'; -import 'package:better_networking/better_networking.dart'; -import 'package:freezed_annotation/freezed_annotation.dart'; -import 'package:collection/collection.dart' show mergeMaps; -import '../llm_provider.dart'; -part 'ai_response_model.freezed.dart'; -part 'ai_response_model.g.dart'; - -@freezed -class AIResponseModel with _$AIResponseModel { - const AIResponseModel._(); - - @JsonSerializable(explicitToJson: true, anyMap: true, createToJson: true) - const factory AIResponseModel({ - int? statusCode, - Map? headers, - Map? requestHeaders, - String? body, - String? formattedBody, - @JsonKey( - fromJson: LLMProvider.fromJSONNullable, - toJson: LLMProvider.toJSONNullable, - ) - LLMProvider? llmProvider, - @Uint8ListConverter() Uint8List? bodyBytes, - @DurationConverter() Duration? time, - }) = _AIResponseModel; - - factory AIResponseModel.fromJson(Map json) => - _$AIResponseModelFromJson(json); - - AIResponseModel fromResponse({ - required Response response, - required LLMProvider provider, - Duration? time, - }) { - final responseHeaders = mergeMaps({ - HttpHeaders.contentLengthHeader: response.contentLength.toString(), - }, response.headers); - MediaType? mediaType = getMediaTypeFromHeaders(responseHeaders); - final body = (mediaType?.subtype == kSubTypeJson) - ? utf8.decode(response.bodyBytes) - : response.body; - return AIResponseModel( - statusCode: response.statusCode, - headers: responseHeaders, - requestHeaders: response.request?.headers, - body: body, - formattedBody: response.statusCode == 200 - ? provider.modelController.outputFormatter(jsonDecode(body)) - : formatBody(body, mediaType), - bodyBytes: response.bodyBytes, - time: time, - llmProvider: provider, - ); - } - - String? get contentType => headers?.getValueContentType(); - MediaType? get mediaType => getMediaTypeFromHeaders(headers); -} diff --git a/packages/genai/lib/models/ai_response_model.freezed.dart b/packages/genai/lib/models/ai_response_model.freezed.dart deleted file mode 100644 index c7322bc9..00000000 --- a/packages/genai/lib/models/ai_response_model.freezed.dart +++ /dev/null @@ -1,392 +0,0 @@ -// coverage:ignore-file -// GENERATED CODE - DO NOT MODIFY BY HAND -// ignore_for_file: type=lint -// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark - -part of 'ai_response_model.dart'; - -// ************************************************************************** -// FreezedGenerator -// ************************************************************************** - -T _$identity(T value) => value; - -final _privateConstructorUsedError = UnsupportedError( - 'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more information: https://github.com/rrousselGit/freezed#adding-getters-and-methods-to-our-models', -); - -AIResponseModel _$AIResponseModelFromJson(Map json) { - return _AIResponseModel.fromJson(json); -} - -/// @nodoc -mixin _$AIResponseModel { - int? get statusCode => throw _privateConstructorUsedError; - Map? get headers => throw _privateConstructorUsedError; - Map? get requestHeaders => throw _privateConstructorUsedError; - String? get body => throw _privateConstructorUsedError; - String? get formattedBody => throw _privateConstructorUsedError; - @JsonKey( - fromJson: LLMProvider.fromJSONNullable, - toJson: LLMProvider.toJSONNullable, - ) - LLMProvider? get llmProvider => throw _privateConstructorUsedError; - @Uint8ListConverter() - Uint8List? get bodyBytes => throw _privateConstructorUsedError; - @DurationConverter() - Duration? get time => throw _privateConstructorUsedError; - - /// Serializes this AIResponseModel to a JSON map. - Map toJson() => throw _privateConstructorUsedError; - - /// Create a copy of AIResponseModel - /// with the given fields replaced by the non-null parameter values. - @JsonKey(includeFromJson: false, includeToJson: false) - $AIResponseModelCopyWith get copyWith => - throw _privateConstructorUsedError; -} - -/// @nodoc -abstract class $AIResponseModelCopyWith<$Res> { - factory $AIResponseModelCopyWith( - AIResponseModel value, - $Res Function(AIResponseModel) then, - ) = _$AIResponseModelCopyWithImpl<$Res, AIResponseModel>; - @useResult - $Res call({ - int? statusCode, - Map? headers, - Map? requestHeaders, - String? body, - String? formattedBody, - @JsonKey( - fromJson: LLMProvider.fromJSONNullable, - toJson: LLMProvider.toJSONNullable, - ) - LLMProvider? llmProvider, - @Uint8ListConverter() Uint8List? bodyBytes, - @DurationConverter() Duration? time, - }); -} - -/// @nodoc -class _$AIResponseModelCopyWithImpl<$Res, $Val extends AIResponseModel> - implements $AIResponseModelCopyWith<$Res> { - _$AIResponseModelCopyWithImpl(this._value, this._then); - - // ignore: unused_field - final $Val _value; - // ignore: unused_field - final $Res Function($Val) _then; - - /// Create a copy of AIResponseModel - /// with the given fields replaced by the non-null parameter values. - @pragma('vm:prefer-inline') - @override - $Res call({ - Object? statusCode = freezed, - Object? headers = freezed, - Object? requestHeaders = freezed, - Object? body = freezed, - Object? formattedBody = freezed, - Object? llmProvider = freezed, - Object? bodyBytes = freezed, - Object? time = freezed, - }) { - return _then( - _value.copyWith( - statusCode: freezed == statusCode - ? _value.statusCode - : statusCode // ignore: cast_nullable_to_non_nullable - as int?, - headers: freezed == headers - ? _value.headers - : headers // ignore: cast_nullable_to_non_nullable - as Map?, - requestHeaders: freezed == requestHeaders - ? _value.requestHeaders - : requestHeaders // ignore: cast_nullable_to_non_nullable - as Map?, - body: freezed == body - ? _value.body - : body // ignore: cast_nullable_to_non_nullable - as String?, - formattedBody: freezed == formattedBody - ? _value.formattedBody - : formattedBody // ignore: cast_nullable_to_non_nullable - as String?, - llmProvider: freezed == llmProvider - ? _value.llmProvider - : llmProvider // ignore: cast_nullable_to_non_nullable - as LLMProvider?, - bodyBytes: freezed == bodyBytes - ? _value.bodyBytes - : bodyBytes // ignore: cast_nullable_to_non_nullable - as Uint8List?, - time: freezed == time - ? _value.time - : time // ignore: cast_nullable_to_non_nullable - as Duration?, - ) - as $Val, - ); - } -} - -/// @nodoc -abstract class _$$AIResponseModelImplCopyWith<$Res> - implements $AIResponseModelCopyWith<$Res> { - factory _$$AIResponseModelImplCopyWith( - _$AIResponseModelImpl value, - $Res Function(_$AIResponseModelImpl) then, - ) = __$$AIResponseModelImplCopyWithImpl<$Res>; - @override - @useResult - $Res call({ - int? statusCode, - Map? headers, - Map? requestHeaders, - String? body, - String? formattedBody, - @JsonKey( - fromJson: LLMProvider.fromJSONNullable, - toJson: LLMProvider.toJSONNullable, - ) - LLMProvider? llmProvider, - @Uint8ListConverter() Uint8List? bodyBytes, - @DurationConverter() Duration? time, - }); -} - -/// @nodoc -class __$$AIResponseModelImplCopyWithImpl<$Res> - extends _$AIResponseModelCopyWithImpl<$Res, _$AIResponseModelImpl> - implements _$$AIResponseModelImplCopyWith<$Res> { - __$$AIResponseModelImplCopyWithImpl( - _$AIResponseModelImpl _value, - $Res Function(_$AIResponseModelImpl) _then, - ) : super(_value, _then); - - /// Create a copy of AIResponseModel - /// with the given fields replaced by the non-null parameter values. - @pragma('vm:prefer-inline') - @override - $Res call({ - Object? statusCode = freezed, - Object? headers = freezed, - Object? requestHeaders = freezed, - Object? body = freezed, - Object? formattedBody = freezed, - Object? llmProvider = freezed, - Object? bodyBytes = freezed, - Object? time = freezed, - }) { - return _then( - _$AIResponseModelImpl( - statusCode: freezed == statusCode - ? _value.statusCode - : statusCode // ignore: cast_nullable_to_non_nullable - as int?, - headers: freezed == headers - ? _value._headers - : headers // ignore: cast_nullable_to_non_nullable - as Map?, - requestHeaders: freezed == requestHeaders - ? _value._requestHeaders - : requestHeaders // ignore: cast_nullable_to_non_nullable - as Map?, - body: freezed == body - ? _value.body - : body // ignore: cast_nullable_to_non_nullable - as String?, - formattedBody: freezed == formattedBody - ? _value.formattedBody - : formattedBody // ignore: cast_nullable_to_non_nullable - as String?, - llmProvider: freezed == llmProvider - ? _value.llmProvider - : llmProvider // ignore: cast_nullable_to_non_nullable - as LLMProvider?, - bodyBytes: freezed == bodyBytes - ? _value.bodyBytes - : bodyBytes // ignore: cast_nullable_to_non_nullable - as Uint8List?, - time: freezed == time - ? _value.time - : time // ignore: cast_nullable_to_non_nullable - as Duration?, - ), - ); - } -} - -/// @nodoc - -@JsonSerializable(explicitToJson: true, anyMap: true, createToJson: true) -class _$AIResponseModelImpl extends _AIResponseModel { - const _$AIResponseModelImpl({ - this.statusCode, - final Map? headers, - final Map? requestHeaders, - this.body, - this.formattedBody, - @JsonKey( - fromJson: LLMProvider.fromJSONNullable, - toJson: LLMProvider.toJSONNullable, - ) - this.llmProvider, - @Uint8ListConverter() this.bodyBytes, - @DurationConverter() this.time, - }) : _headers = headers, - _requestHeaders = requestHeaders, - super._(); - - factory _$AIResponseModelImpl.fromJson(Map json) => - _$$AIResponseModelImplFromJson(json); - - @override - final int? statusCode; - final Map? _headers; - @override - Map? get headers { - final value = _headers; - if (value == null) return null; - if (_headers is EqualUnmodifiableMapView) return _headers; - // ignore: implicit_dynamic_type - return EqualUnmodifiableMapView(value); - } - - final Map? _requestHeaders; - @override - Map? get requestHeaders { - final value = _requestHeaders; - if (value == null) return null; - if (_requestHeaders is EqualUnmodifiableMapView) return _requestHeaders; - // ignore: implicit_dynamic_type - return EqualUnmodifiableMapView(value); - } - - @override - final String? body; - @override - final String? formattedBody; - @override - @JsonKey( - fromJson: LLMProvider.fromJSONNullable, - toJson: LLMProvider.toJSONNullable, - ) - final LLMProvider? llmProvider; - @override - @Uint8ListConverter() - final Uint8List? bodyBytes; - @override - @DurationConverter() - final Duration? time; - - @override - String toString() { - return 'AIResponseModel(statusCode: $statusCode, headers: $headers, requestHeaders: $requestHeaders, body: $body, formattedBody: $formattedBody, llmProvider: $llmProvider, bodyBytes: $bodyBytes, time: $time)'; - } - - @override - bool operator ==(Object other) { - return identical(this, other) || - (other.runtimeType == runtimeType && - other is _$AIResponseModelImpl && - (identical(other.statusCode, statusCode) || - other.statusCode == statusCode) && - const DeepCollectionEquality().equals(other._headers, _headers) && - const DeepCollectionEquality().equals( - other._requestHeaders, - _requestHeaders, - ) && - (identical(other.body, body) || other.body == body) && - (identical(other.formattedBody, formattedBody) || - other.formattedBody == formattedBody) && - (identical(other.llmProvider, llmProvider) || - other.llmProvider == llmProvider) && - const DeepCollectionEquality().equals(other.bodyBytes, bodyBytes) && - (identical(other.time, time) || other.time == time)); - } - - @JsonKey(includeFromJson: false, includeToJson: false) - @override - int get hashCode => Object.hash( - runtimeType, - statusCode, - const DeepCollectionEquality().hash(_headers), - const DeepCollectionEquality().hash(_requestHeaders), - body, - formattedBody, - llmProvider, - const DeepCollectionEquality().hash(bodyBytes), - time, - ); - - /// Create a copy of AIResponseModel - /// with the given fields replaced by the non-null parameter values. - @JsonKey(includeFromJson: false, includeToJson: false) - @override - @pragma('vm:prefer-inline') - _$$AIResponseModelImplCopyWith<_$AIResponseModelImpl> get copyWith => - __$$AIResponseModelImplCopyWithImpl<_$AIResponseModelImpl>( - this, - _$identity, - ); - - @override - Map toJson() { - return _$$AIResponseModelImplToJson(this); - } -} - -abstract class _AIResponseModel extends AIResponseModel { - const factory _AIResponseModel({ - final int? statusCode, - final Map? headers, - final Map? requestHeaders, - final String? body, - final String? formattedBody, - @JsonKey( - fromJson: LLMProvider.fromJSONNullable, - toJson: LLMProvider.toJSONNullable, - ) - final LLMProvider? llmProvider, - @Uint8ListConverter() final Uint8List? bodyBytes, - @DurationConverter() final Duration? time, - }) = _$AIResponseModelImpl; - const _AIResponseModel._() : super._(); - - factory _AIResponseModel.fromJson(Map json) = - _$AIResponseModelImpl.fromJson; - - @override - int? get statusCode; - @override - Map? get headers; - @override - Map? get requestHeaders; - @override - String? get body; - @override - String? get formattedBody; - @override - @JsonKey( - fromJson: LLMProvider.fromJSONNullable, - toJson: LLMProvider.toJSONNullable, - ) - LLMProvider? get llmProvider; - @override - @Uint8ListConverter() - Uint8List? get bodyBytes; - @override - @DurationConverter() - Duration? get time; - - /// Create a copy of AIResponseModel - /// with the given fields replaced by the non-null parameter values. - @override - @JsonKey(includeFromJson: false, includeToJson: false) - _$$AIResponseModelImplCopyWith<_$AIResponseModelImpl> get copyWith => - throw _privateConstructorUsedError; -} diff --git a/packages/genai/lib/models/ai_response_model.g.dart b/packages/genai/lib/models/ai_response_model.g.dart deleted file mode 100644 index f1029f70..00000000 --- a/packages/genai/lib/models/ai_response_model.g.dart +++ /dev/null @@ -1,38 +0,0 @@ -// GENERATED CODE - DO NOT MODIFY BY HAND - -part of 'ai_response_model.dart'; - -// ************************************************************************** -// JsonSerializableGenerator -// ************************************************************************** - -_$AIResponseModelImpl _$$AIResponseModelImplFromJson(Map json) => - _$AIResponseModelImpl( - statusCode: (json['statusCode'] as num?)?.toInt(), - headers: (json['headers'] as Map?)?.map( - (k, e) => MapEntry(k as String, e as String), - ), - requestHeaders: (json['requestHeaders'] as Map?)?.map( - (k, e) => MapEntry(k as String, e as String), - ), - body: json['body'] as String?, - formattedBody: json['formattedBody'] as String?, - llmProvider: LLMProvider.fromJSONNullable(json['llmProvider'] as Map?), - bodyBytes: const Uint8ListConverter().fromJson( - json['bodyBytes'] as List?, - ), - time: const DurationConverter().fromJson((json['time'] as num?)?.toInt()), - ); - -Map _$$AIResponseModelImplToJson( - _$AIResponseModelImpl instance, -) => { - 'statusCode': instance.statusCode, - 'headers': instance.headers, - 'requestHeaders': instance.requestHeaders, - 'body': instance.body, - 'formattedBody': instance.formattedBody, - 'llmProvider': LLMProvider.toJSONNullable(instance.llmProvider), - 'bodyBytes': const Uint8ListConverter().toJson(instance.bodyBytes), - 'time': const DurationConverter().toJson(instance.time), -};