cuadra-ai-sdk 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +28 -0
  3. data/README.md +99 -0
  4. data/lib/cuadra_ai/api_helper.rb +10 -0
  5. data/lib/cuadra_ai/client.rb +91 -0
  6. data/lib/cuadra_ai/configuration.rb +105 -0
  7. data/lib/cuadra_ai/controllers/base_controller.rb +67 -0
  8. data/lib/cuadra_ai/controllers/chat_controller.rb +41 -0
  9. data/lib/cuadra_ai/controllers/embeds_controller.rb +41 -0
  10. data/lib/cuadra_ai/controllers/models_controller.rb +172 -0
  11. data/lib/cuadra_ai/controllers/oauth_authorization_controller.rb +87 -0
  12. data/lib/cuadra_ai/controllers/usage_controller.rb +70 -0
  13. data/lib/cuadra_ai/exceptions/api_exception.rb +21 -0
  14. data/lib/cuadra_ai/exceptions/error_response_exception.rb +57 -0
  15. data/lib/cuadra_ai/exceptions/oauth_provider_exception.rb +64 -0
  16. data/lib/cuadra_ai/http/api_response.rb +19 -0
  17. data/lib/cuadra_ai/http/auth/oauth_2.rb +139 -0
  18. data/lib/cuadra_ai/http/http_call_back.rb +10 -0
  19. data/lib/cuadra_ai/http/http_method_enum.rb +10 -0
  20. data/lib/cuadra_ai/http/http_request.rb +10 -0
  21. data/lib/cuadra_ai/http/http_response.rb +10 -0
  22. data/lib/cuadra_ai/logging/configuration/api_logging_configuration.rb +114 -0
  23. data/lib/cuadra_ai/logging/sdk_logger.rb +17 -0
  24. data/lib/cuadra_ai/models/base_model.rb +110 -0
  25. data/lib/cuadra_ai/models/chat.rb +102 -0
  26. data/lib/cuadra_ai/models/chat_response_ex.rb +106 -0
  27. data/lib/cuadra_ai/models/content_ex.rb +86 -0
  28. data/lib/cuadra_ai/models/embed.rb +100 -0
  29. data/lib/cuadra_ai/models/embed_response_ex.rb +85 -0
  30. data/lib/cuadra_ai/models/inline_data_ex.rb +87 -0
  31. data/lib/cuadra_ai/models/model_ex.rb +169 -0
  32. data/lib/cuadra_ai/models/oauth_provider_error.rb +45 -0
  33. data/lib/cuadra_ai/models/oauth_token.rb +96 -0
  34. data/lib/cuadra_ai/models/paginated_response_ex_list_model_ex.rb +104 -0
  35. data/lib/cuadra_ai/models/tokens_ex.rb +86 -0
  36. data/lib/cuadra_ai/models/total_usage_ex.rb +86 -0
  37. data/lib/cuadra_ai/models/usage_calculation_ex.rb +77 -0
  38. data/lib/cuadra_ai/models/usage_ex.rb +86 -0
  39. data/lib/cuadra_ai/utilities/date_time_helper.rb +11 -0
  40. data/lib/cuadra_ai/utilities/file_wrapper.rb +28 -0
  41. data/lib/cuadra_ai.rb +63 -0
  42. metadata +126 -0
@@ -0,0 +1,86 @@
1
+ # cuadra_ai
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module CuadraAi
7
+ # This is the token usage result of your request
8
+ class UsageEx < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Tokens used
13
+ # @return [TokensEx]
14
+ attr_accessor :billed_tokens
15
+
16
+ # Tokens used
17
+ # @return [TokensEx]
18
+ attr_accessor :used_tokens
19
+
20
+ # A mapping from model property names to API property names.
21
+ def self.names
22
+ @_hash = {} if @_hash.nil?
23
+ @_hash['billed_tokens'] = 'billedTokens'
24
+ @_hash['used_tokens'] = 'usedTokens'
25
+ @_hash
26
+ end
27
+
28
+ # An array for optional fields
29
+ def self.optionals
30
+ %w[
31
+ billed_tokens
32
+ used_tokens
33
+ ]
34
+ end
35
+
36
+ # An array for nullable fields
37
+ def self.nullables
38
+ []
39
+ end
40
+
41
+ def initialize(billed_tokens: SKIP, used_tokens: SKIP,
42
+ additional_properties: nil)
43
+ # Add additional model properties to the instance
44
+ additional_properties = {} if additional_properties.nil?
45
+
46
+ @billed_tokens = billed_tokens unless billed_tokens == SKIP
47
+ @used_tokens = used_tokens unless used_tokens == SKIP
48
+ @additional_properties = additional_properties
49
+ end
50
+
51
+ # Creates an instance of the object from a hash.
52
+ def self.from_hash(hash)
53
+ return nil unless hash
54
+
55
+ # Extract variables from the hash.
56
+ billed_tokens = TokensEx.from_hash(hash['billedTokens']) if hash['billedTokens']
57
+ used_tokens = TokensEx.from_hash(hash['usedTokens']) if hash['usedTokens']
58
+
59
+ # Create a new hash for additional properties, removing known properties.
60
+ new_hash = hash.reject { |k, _| names.value?(k) }
61
+
62
+ additional_properties = APIHelper.get_additional_properties(
63
+ new_hash, proc { |value| value }
64
+ )
65
+
66
+ # Create object from extracted values.
67
+ UsageEx.new(billed_tokens: billed_tokens,
68
+ used_tokens: used_tokens,
69
+ additional_properties: additional_properties)
70
+ end
71
+
72
+ # Provides a human-readable string representation of the object.
73
+ def to_s
74
+ class_name = self.class.name.split('::').last
75
+ "<#{class_name} billed_tokens: #{@billed_tokens}, used_tokens: #{@used_tokens},"\
76
+ " additional_properties: #{@additional_properties}>"
77
+ end
78
+
79
+ # Provides a debugging-friendly string with detailed object information.
80
+ def inspect
81
+ class_name = self.class.name.split('::').last
82
+ "<#{class_name} billed_tokens: #{@billed_tokens.inspect}, used_tokens:"\
83
+ " #{@used_tokens.inspect}, additional_properties: #{@additional_properties}>"
84
+ end
85
+ end
86
+ end
@@ -0,0 +1,11 @@
1
+ # cuadra_ai
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ require 'date'
7
+ module CuadraAi
8
+ # A utility that supports dateTime conversion to different formats
9
+ class DateTimeHelper < CoreLibrary::DateTimeHelper
10
+ end
11
+ end
@@ -0,0 +1,28 @@
1
+ # cuadra_ai
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module CuadraAi
7
+ # A utility to allow users to set the content-type for files
8
+ class FileWrapper < CoreLibrary::FileWrapper
9
+ # The constructor.
10
+ # @param [File] file The file to be sent in the request.
11
+ # @param [string] content_type The content type of the provided file.
12
+ def initialize(file, content_type: 'application/octet-stream')
13
+ super
14
+ end
15
+
16
+ # Provides a human-readable string representation of the object.
17
+ def to_s
18
+ class_name = self.class.name.split('::').last
19
+ "<#{class_name} file: #{@file}, content_type: #{@content_type}>"
20
+ end
21
+
22
+ # Provides a debugging-friendly string with detailed object information.
23
+ def to_inspect
24
+ class_name = self.class.name.split('::').last
25
+ "<#{class_name} file: #{@file.inspect}, content_type: #{@content_type.inspect}>"
26
+ end
27
+ end
28
+ end
data/lib/cuadra_ai.rb ADDED
@@ -0,0 +1,63 @@
1
+ # cuadra_ai
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ require 'date'
7
+ require 'json'
8
+
9
+ require 'apimatic_core_interfaces'
10
+ require 'apimatic_core'
11
+ require 'apimatic_faraday_client_adapter'
12
+
13
+ require_relative 'cuadra_ai/api_helper'
14
+ require_relative 'cuadra_ai/client'
15
+
16
+ # Utilities
17
+ require_relative 'cuadra_ai/utilities/file_wrapper'
18
+ require_relative 'cuadra_ai/utilities/date_time_helper'
19
+
20
+ # Http
21
+ require_relative 'cuadra_ai/http/api_response'
22
+ require_relative 'cuadra_ai/http/http_call_back'
23
+ require_relative 'cuadra_ai/http/http_method_enum'
24
+ require_relative 'cuadra_ai/http/http_request'
25
+ require_relative 'cuadra_ai/http/http_response'
26
+
27
+
28
+ # Logger
29
+ require_relative 'cuadra_ai/logging/configuration/api_logging_configuration'
30
+ require_relative 'cuadra_ai/logging/sdk_logger'
31
+ require_relative 'cuadra_ai/http/auth/oauth_2'
32
+
33
+ # Models
34
+ require_relative 'cuadra_ai/models/base_model'
35
+ require_relative 'cuadra_ai/models/chat'
36
+ require_relative 'cuadra_ai/models/content_ex'
37
+ require_relative 'cuadra_ai/models/inline_data_ex'
38
+ require_relative 'cuadra_ai/models/usage_calculation_ex'
39
+ require_relative 'cuadra_ai/models/model_ex'
40
+ require_relative 'cuadra_ai/models/embed'
41
+ require_relative 'cuadra_ai/models/embed_response_ex'
42
+ require_relative 'cuadra_ai/models/tokens_ex'
43
+ require_relative 'cuadra_ai/models/usage_ex'
44
+ require_relative 'cuadra_ai/models/chat_response_ex'
45
+ require_relative 'cuadra_ai/models/total_usage_ex'
46
+ require_relative 'cuadra_ai/models/paginated_response_ex_list_model_ex'
47
+ require_relative 'cuadra_ai/models/oauth_token'
48
+ require_relative 'cuadra_ai/models/oauth_provider_error'
49
+
50
+ # Exceptions
51
+ require_relative 'cuadra_ai/exceptions/api_exception'
52
+ require_relative 'cuadra_ai/exceptions/error_response_exception'
53
+ require_relative 'cuadra_ai/exceptions/oauth_provider_exception'
54
+
55
+ require_relative 'cuadra_ai/configuration'
56
+
57
+ # Controllers
58
+ require_relative 'cuadra_ai/controllers/base_controller'
59
+ require_relative 'cuadra_ai/controllers/chat_controller'
60
+ require_relative 'cuadra_ai/controllers/models_controller'
61
+ require_relative 'cuadra_ai/controllers/embeds_controller'
62
+ require_relative 'cuadra_ai/controllers/usage_controller'
63
+ require_relative 'cuadra_ai/controllers/oauth_authorization_controller'
metadata ADDED
@@ -0,0 +1,126 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cuadra-ai-sdk
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Cuadra AI
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2025-07-07 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: apimatic_core_interfaces
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.2.1
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.2.1
27
+ - !ruby/object:Gem::Dependency
28
+ name: apimatic_core
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 0.3.17
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 0.3.17
41
+ - !ruby/object:Gem::Dependency
42
+ name: apimatic_faraday_client_adapter
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 0.1.4
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 0.1.4
55
+ description: Build AI agents with your own data, accelerate time-to-value, and create
56
+ solutions as unique as your business.
57
+ email:
58
+ - dan@cuadra.ai
59
+ executables: []
60
+ extensions: []
61
+ extra_rdoc_files: []
62
+ files:
63
+ - LICENSE
64
+ - README.md
65
+ - lib/cuadra_ai.rb
66
+ - lib/cuadra_ai/api_helper.rb
67
+ - lib/cuadra_ai/client.rb
68
+ - lib/cuadra_ai/configuration.rb
69
+ - lib/cuadra_ai/controllers/base_controller.rb
70
+ - lib/cuadra_ai/controllers/chat_controller.rb
71
+ - lib/cuadra_ai/controllers/embeds_controller.rb
72
+ - lib/cuadra_ai/controllers/models_controller.rb
73
+ - lib/cuadra_ai/controllers/oauth_authorization_controller.rb
74
+ - lib/cuadra_ai/controllers/usage_controller.rb
75
+ - lib/cuadra_ai/exceptions/api_exception.rb
76
+ - lib/cuadra_ai/exceptions/error_response_exception.rb
77
+ - lib/cuadra_ai/exceptions/oauth_provider_exception.rb
78
+ - lib/cuadra_ai/http/api_response.rb
79
+ - lib/cuadra_ai/http/auth/oauth_2.rb
80
+ - lib/cuadra_ai/http/http_call_back.rb
81
+ - lib/cuadra_ai/http/http_method_enum.rb
82
+ - lib/cuadra_ai/http/http_request.rb
83
+ - lib/cuadra_ai/http/http_response.rb
84
+ - lib/cuadra_ai/logging/configuration/api_logging_configuration.rb
85
+ - lib/cuadra_ai/logging/sdk_logger.rb
86
+ - lib/cuadra_ai/models/base_model.rb
87
+ - lib/cuadra_ai/models/chat.rb
88
+ - lib/cuadra_ai/models/chat_response_ex.rb
89
+ - lib/cuadra_ai/models/content_ex.rb
90
+ - lib/cuadra_ai/models/embed.rb
91
+ - lib/cuadra_ai/models/embed_response_ex.rb
92
+ - lib/cuadra_ai/models/inline_data_ex.rb
93
+ - lib/cuadra_ai/models/model_ex.rb
94
+ - lib/cuadra_ai/models/oauth_provider_error.rb
95
+ - lib/cuadra_ai/models/oauth_token.rb
96
+ - lib/cuadra_ai/models/paginated_response_ex_list_model_ex.rb
97
+ - lib/cuadra_ai/models/tokens_ex.rb
98
+ - lib/cuadra_ai/models/total_usage_ex.rb
99
+ - lib/cuadra_ai/models/usage_calculation_ex.rb
100
+ - lib/cuadra_ai/models/usage_ex.rb
101
+ - lib/cuadra_ai/utilities/date_time_helper.rb
102
+ - lib/cuadra_ai/utilities/file_wrapper.rb
103
+ homepage: https://cuadra.ai/
104
+ licenses:
105
+ - MIT
106
+ metadata: {}
107
+ post_install_message:
108
+ rdoc_options: []
109
+ require_paths:
110
+ - lib
111
+ required_ruby_version: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - ">="
114
+ - !ruby/object:Gem::Version
115
+ version: '2.6'
116
+ required_rubygems_version: !ruby/object:Gem::Requirement
117
+ requirements:
118
+ - - ">="
119
+ - !ruby/object:Gem::Version
120
+ version: '0'
121
+ requirements: []
122
+ rubygems_version: 3.1.6
123
+ signing_key:
124
+ specification_version: 4
125
+ summary: Cuadra AI SDK
126
+ test_files: []