diff options
author | Marek Paśnikowski <marek@marekpasnikowski.pl> | 2024-02-05 21:49:53 +0100 |
---|---|---|
committer | Marek Paśnikowski <marek@marekpasnikowski.pl> | 2024-02-05 21:49:53 +0100 |
commit | 45ab5390c1fe9d97a804c48225bb0b5b71240cb6 (patch) | |
tree | 1c875001c65446a9684a77d96cd1ed81347577b5 | |
parent | be3e15472247134becb3546d0c871e160433e26b (diff) |
Complete the ruby-nano-bots definition
-rw-r--r-- | packages/ruby-nano-bots.scm | 591 |
1 files changed, 591 insertions, 0 deletions
diff --git a/packages/ruby-nano-bots.scm b/packages/ruby-nano-bots.scm new file mode 100644 index 0000000..9106762 --- /dev/null +++ b/packages/ruby-nano-bots.scm @@ -0,0 +1,591 @@ +(define-module (ruby-nano-bots) + #:use-module (gnu packages) + #:use-module (gnu packages curl) + #:use-module (gnu packages ruby) + #:use-module (guix build-system ruby) + #:use-module (guix download) + #:use-module ((guix licenses) + #:prefix license:) + #:use-module (guix packages)) + +;;; ABSTRACTION -4 + +(define ruby-google-style + (package + (name "ruby-google-style") + (version "1.27.1") + (source + (origin + (uri + (rubygems-uri "google-style" "1.27.1")) + (method url-fetch) + (hash + (content-hash "1h7il47mn160idh8gjliy597n31gn9cq77jq65gkd93kcrszjpxa")))) + (build-system ruby-build-system) + (arguments + '(#:phases + (modify-phases + %standard-phases + (delete 'check)))) + (inputs + (list ruby-rubocop)) + (synopsis "A spec-compliant event stream parser") + (description + (string-append + "It only deals with the parsing of events and not any of the" + " client/transport aspects. This is not a Server-sent Events (SSE)" + " client.")) + (license license:expat) + (home-page "https://github.com/norman/babosa"))) + +;;; ABSTRACTION -3 + +(define ruby-google-cloud-env + (package + (name "ruby-google-cloud-env") + (version "2.1.1") + (source + (origin + (uri + (rubygems-uri "google-cloud-env" "2.1.1")) + (method url-fetch) + (hash + (content-hash "16b9yjbrzal1cjkdbn29fl06ikjn1dpg1vdsjak1xvhpsp3vhjyg")))) + (build-system ruby-build-system) + (arguments + '(#:phases + (modify-phases + %standard-phases + (delete 'check)))) + (inputs + (list ruby-faraday)) + (synopsis "A spec-compliant event stream parser") + (description + (string-append + "It only deals with the parsing of events and not any of the" + " client/transport aspects. This is not a Server-sent Events (SSE)" + " client.")) + (license license:expat) + (home-page "https://github.com/norman/babosa"))) + +(define ruby-os + (package + (name "ruby-os") + (version "1.1.4") + (source + (origin + (uri + (rubygems-uri "os" "1.1.4")) + (method url-fetch) + (hash + (content-hash "0gwd20smyhxbm687vdikfh1gpi96h8qb1x28s2pdcysf6dm6v0ap")))) + (build-system ruby-build-system) + (arguments + '(#:phases + (modify-phases + %standard-phases + (delete 'check)))) + (native-inputs + (list ruby-rake ruby-rspec ruby-test-unit)) + (synopsis "A spec-compliant event stream parser") + (description + (string-append + "It only deals with the parsing of events and not any of the" + " client/transport aspects. This is not a Server-sent Events (SSE)" + " client.")) + (license license:expat) + (home-page "https://github.com/norman/babosa"))) + +(define ruby-signet + (package + (name "ruby-signet") + (version "0.18.0") + (source + (origin + (uri + (rubygems-uri "signet" "0.18.0")) + (method url-fetch) + (hash + (content-hash "0fzakk5y7zzii76zlkynpp1c764mzkkfg4mpj18f5pf2xp1aikb6")))) + (build-system ruby-build-system) + (arguments + '(#:phases + (modify-phases + %standard-phases + (delete 'check)))) + (inputs + (list ruby-addressable ruby-faraday ruby-jwt ruby-multi-json)) + (native-inputs + (list + ruby-google-style + ruby-kramdown + ruby-launchy + ruby-rake + ruby-redcarpet + ruby-rspec + ruby-yard)) + (synopsis "A spec-compliant event stream parser") + (description + (string-append + "It only deals with the parsing of events and not any of the" + " client/transport aspects. This is not a Server-sent Events (SSE)" + " client.")) + (license license:expat) + (home-page "https://github.com/norman/babosa"))) + +;;; ABSTRACTION -2 + +(define ruby-event_stream_parser + (package + (name "ruby-event_stream_parser") + (version "1.0.0") + (source + (origin + (uri + (rubygems-uri "event_stream_parser" "1.0.0")) + (method url-fetch) + (hash + (content-hash "1j73glgif3f97q3znq9ih67h5i7zd1wqzj2d33w8cqhjf2mkns52")))) + (build-system ruby-build-system) + (arguments + '(#:phases + (modify-phases + %standard-phases + (delete 'check)))) + (synopsis "A spec-compliant event stream parser") + (description + (string-append + "It only deals with the parsing of events and not any of the" + " client/transport aspects. This is not a Server-sent Events (SSE)" + " client.")) + (license license:expat) + (home-page "https://github.com/norman/babosa"))) + +(define ruby-faraday-typhoeus + (package + (name "ruby-faraday-typhoeus") + (version "1.1.0") + (source + (origin + (uri + (rubygems-uri "faraday-typhoeus" "1.1.0")) + (method url-fetch) + (hash + (content-hash "1rwhd2f78vqj0wkkdah395apx6igp5xf82n5xgixs61q45y19ii4")))) + (build-system ruby-build-system) + (arguments + '(#:phases + (modify-phases + %standard-phases + (delete 'check)))) + (inputs + (list ruby-faraday ruby-typhoeus-1.4.1)) + (synopsis "A library for creating slugs.") + (description + (string-append + "Babosa is an extraction and improvement of the string code from" + " FriendlyId, intended to help developers create similar libraries or" + " plugins.")) + (license license:expat) + (home-page "https://github.com/norman/babosa"))) + +(define ruby-googleauth + (package + (name "ruby-googleauth") + (version "1.9.2") + (source + (origin + (uri + (rubygems-uri "googleauth" "1.9.2")) + (method url-fetch) + (hash + (content-hash "1qpvsvcag90nw2fjws12m96hsicpmcv04v35j9aiik9rmxxvlk9h")))) + (build-system ruby-build-system) + (arguments + '(#:phases + (modify-phases + %standard-phases + (delete 'check)))) + (inputs + (list + ruby-faraday + ruby-google-cloud-env + ruby-jwt + ruby-multi-json + ruby-os + ruby-signet)) + (synopsis "A library for creating slugs.") + (description + (string-append + "Babosa is an extraction and improvement of the string code from" + " FriendlyId, intended to help developers create similar libraries or" + " plugins.")) + (license license:expat) + (home-page "https://github.com/norman/babosa"))) + +(define ruby-typhoeus-1.4.1 + (package + (inherit ruby-typhoeus) + (version "1.4.1") + (source + (origin + (uri + (rubygems-uri "typhoeus" "1.4.1")) + (method url-fetch) + (hash + (content-hash "0z7gamf6s83wy0yqms3bi4srirn3fc0lc7n65lqanidxcj1xn5qw")))))) + +;;; ABSTRACTION -1 + +(define ruby-babosa + (package + (name "ruby-babosa") + (version "2.0.0") + (source + (origin + (uri + (rubygems-uri "babosa" "2.0.0")) + (method url-fetch) + (hash + (content-hash "19mqrnyizr1ipdp26vhrg0hwb851bwyvrs6xc29dk3ywljw8s8d6")))) + (build-system ruby-build-system) + (native-inputs + (list + ruby-rubocop + ruby-rspec + ruby-simplecov)) + (synopsis "A library for creating slugs.") + (description + (string-append + "Babosa is an extraction and improvement of the string code from" + " FriendlyId, intended to help developers create similar libraries or" + " plugins.")) + (license license:expat) + (home-page "https://github.com/norman/babosa"))) + +(define ruby-cohere-ai + (package + (name "ruby-cohere-ai") + (version "1.0.2") + (source + (origin + (uri + (rubygems-uri "cohere-ai" "1.0.2")) + (method url-fetch) + (hash + (content-hash "03nni5ab1zh176zrqfjkn34hy1xhwdjkqybjr8ih1pnwf9c94dbm")))) + (build-system ruby-build-system) + (arguments + '(#:phases + (modify-phases + %standard-phases + (delete 'check)))) + (inputs + (list ruby-faraday)) + (synopsis "A Ruby gem for interacting with Cohere AI platform.") + (description + (string-append + "This Gem is designed to provide low-level access to Cohere AI, enabling" + " people to build abstractions on top of it. If you are interested in more" + " high-level abstractions or more user-friendly tools, you may want to" + " consider Nano Bots.")) + (license license:expat) + (home-page "https://rubygems.org/gems/cohere-ai"))) + +(define ruby-faraday-2.9 + (package + (inherit ruby-faraday) + (version "2.9.0") + (source + (origin + (uri + (rubygems-uri "faraday" "2.9.0")) + (method url-fetch) + (hash + (content-hash "1qqb1rmk0f9m82iijjlqadh5yby1bhnr6svjk9vxdvh6f181988s")))) + (arguments + '(#:phases + (modify-phases + %standard-phases + (delete 'check)))) + (inputs + (list ruby-faraday-net-http)))) + +(define ruby-gemini-ai + (package + (name "ruby-gemini-ai") + (version "3.2.0") + (source + (origin + (uri + (rubygems-uri "gemini-ai" "3.2.0")) + (method url-fetch) + (hash + (content-hash "1fbk135pf99i20hnxn50rzsv5ln9b7ibifcnya40blbbxcsxk01q")))) + (build-system ruby-build-system) + (arguments + '(#:phases + (modify-phases + %standard-phases + (delete 'check)))) + (inputs + (list + ruby-event_stream_parser + ruby-faraday + ruby-faraday-typhoeus + ruby-googleauth + ruby-typhoeus-1.4.1)) + (synopsis + (string-append + "A Ruby Gem for interacting with Gemini through Vertex AI, Generative" + " Language API, or AI Studio, Google's generative AI services.")) + (description + (string-append + "This Gem is designed to provide low-level access to Gemini, enabling" + " people to build abstractions on top of it. If you are interested in more" + " high-level abstractions or more user-friendly tools, you may want to" + " consider Nano Bots.")) + (license license:expat) + (home-page "https://rubygems.org/gems/gemini-ai"))) + +(define ruby-maritaca-ai + (package + (name "ruby-maritaca-ai") + (version "1.0.1") + (source + (origin + (uri + (rubygems-uri "maritaca-ai" "1.0.1")) + (method url-fetch) + (hash + (content-hash "1n2a9197l8zvwg3m5837qs8m1dd562zs703gqc28c5za09qfgxcb")))) + (build-system ruby-build-system) + (arguments + '(#:phases + (modify-phases + %standard-phases + (delete 'check)))) + (inputs + (list ruby-faraday)) + (synopsis + "A Ruby gem for interacting with Maritaca AI's large language models.") + (description + (string-append + "This Gem is designed to provide low-level access to MariTalk, enabling" + " people to build abstractions on top of it. If you are interested in more" + " high-level abstractions or more user-friendly tools, you may want to" + " consider Nano Bots.")) + (license license:expat) + (home-page "https://rubygems.org/gems/gemini-ai"))) + +(define ruby-mistral-ai + (package + (name "ruby-mistral-ai") + (version "1.1.2") + (source + (origin + (uri + (rubygems-uri "mistral-ai" "1.1.2")) + (method url-fetch) + (hash + (content-hash "1yvzg4aqlh2kfg7s1ai67q47z29pq8qcg2qzv2cmrycw2pzcr4c7")))) + (build-system ruby-build-system) + (arguments + '(#:phases + (modify-phases + %standard-phases + (delete 'check)))) + (inputs + (list ruby-event_stream_parser ruby-faraday)) + (synopsis + "A Ruby gem for interacting with Mistral AI's large language models.") + (description + (string-append + "This Gem is designed to provide low-level access to Mistral, enabling" + " people to build abstractions on top of it. If you are interested in more" + " high-level abstractions or more user-friendly tools, you may want to" + " consider Nano Bots.")) + (license license:expat) + (home-page "https://rubygems.org/gems/gemini-ai"))) + +(define ruby-ollama-ai + (package + (name "ruby-ollama-ai") + (version "1.0.1") + (source + (origin + (uri + (rubygems-uri "ollama-ai" "1.0.1")) + (method url-fetch) + (hash + (content-hash "05f0ir94j4qjgrnq7alsss2g3njlxf9b404i2jc8y4vd16450sy6")))) + (build-system ruby-build-system) + (arguments + '(#:phases + (modify-phases + %standard-phases + (delete 'check)))) + (inputs + (list ruby-faraday)) + (synopsis + (string-append + "A Ruby gem for interacting with Ollama's API that allows you to run open" + " source AI LLMs (Large Language Models) locally.")) + (description + (string-append + "This Gem is designed to provide low-level access to Ollama, enabling" + " people to build abstractions on top of it. If you are interested in more" + " high-level abstractions or more user-friendly tools, you may want to" + " consider Nano Bots")) + (license license:expat) + (home-page "https://rubygems.org/gems/gemini-ai"))) + +(define ruby-rainbow-3.1 + (package + (inherit ruby-rainbow) + (version "3.1.1") + (source + (origin + (uri + (rubygems-uri "rainbow" "3.1.1")) + (method url-fetch) + (hash + (content-hash "0smwg4mii0fm38pyb5fddbmrdpifwv22zv3d3px2xx497am93503")))))) + +(define ruby-redcarpet-3.6 + (package + (inherit ruby-redcarpet) + (version "3.6.0") + (source + (origin + (uri + (rubygems-uri "redcarpet" "3.6.0")) + (method url-fetch) + (hash + (content-hash "1sg9sbf9pm91l7lac7fs4silabyn0vflxwaa2x3lrzsm0ff8ilca")))))) + +(define ruby-openai + (package + (name "ruby-openai") + (version "6.3.1") + (source + (origin + (uri + (rubygems-uri "ruby-openai" "6.3.1")) + (method url-fetch) + (hash + (content-hash "06jc0zn69gcriw103f2knmzba7zv57md3m4wb9jgdf5d06iyjmwb")))) + (build-system ruby-build-system) + (arguments + '(#:phases + (modify-phases + %standard-phases + (delete 'check)))) + (inputs + (list + ruby-event_stream_parser + ruby-faraday + ruby-faraday-multipart + ruby-rspec-core)) + (synopsis "OpenAI API + Ruby!") + (description + (string-append + "Stream text with GPT-4, transcribe and translate audio with Whisper, or" + " create images with DALL·E...")) + (license license:expat) + (home-page "https://rubygems.org/gems/gemini-ai"))) + +(define ruby-sweet-moon + (package + (name "ruby-sweet-moon") + (version "0.0.7") + (source + (origin + (uri + (rubygems-uri "sweet-moon" "0.0.7")) + (method url-fetch) + (hash + (content-hash "16kdf7hfxci6iljw7fmq2xc7dyqpb81rzfdqjgw00p0p7sckgwz9")))) + (build-system ruby-build-system) + (arguments + '(#:phases + (modify-phases + %standard-phases + (delete 'check)))) + (synopsis "Lua / Fennel from Ruby and vice versa.") + (description + (string-append + "Lua / Fennel from Ruby and vice versa. Support to LuaJIT, Lua 5.0, and" + " 5.1. Lua C API for Lua 5, 4, and 3. LuaRocks and fnx integration.")) + (license license:expat) + (home-page "https://rubygems.org/gems/sweet-moon"))) + +;;; ABSTRACTION 0 + +(define-public ruby-nano-bots + (package + (name "ruby-nano-bots") + (version "3.0.1") + (source + (origin + (uri + (rubygems-uri "nano-bots" "3.0.1")) + (method url-fetch) + (hash + (content-hash "14cnllgxl0w6jj1kcmh6vskl17k42skarsrld4r2f9ajnxxd1avk")))) + (build-system ruby-build-system) + (arguments + '(#:phases + (modify-phases + %standard-phases + (delete 'check) + (add-after + 'wrap + 'include-curl + (lambda* (#:key inputs outputs #:allow-other-keys) + (wrap-program + (search-input-file outputs "bin/nb") + `("LD_LIBRARY_PATH" + suffix + ,(list + (dirname + (search-input-file inputs "lib/libcurl.so")))))))))) + (inputs + (list + curl + ruby-addressable + ruby-babosa + ruby-cohere-ai + ruby-concurrent-ruby + ruby-dotenv + ruby-event_stream_parser + ruby-faraday-2.9 + ruby-faraday-multipart + ruby-faraday-typhoeus + ruby-gemini-ai + ruby-googleauth + ruby-google-cloud-env + ruby-jwt + ruby-maritaca-ai + ruby-mistral-ai + ruby-multi-json + ruby-ollama-ai + ruby-os + ruby-pry + ruby-rainbow-3.1 + ruby-rbnacl + ruby-redcarpet-3.6 + ruby-signet + ruby-typhoeus-1.4.1 + ruby-openai + ruby-sweet-moon)) + (synopsis "Ruby Nano Bots") + (description + (string-append + "Ruby Implementation of Nano Bots: small, AI-powered bots that can be" + " easily shared as a single file, designed to support multiple providers" + " such as Cohere Command, Google Gemini, Maritaca AI MariTalk, Mistral AI," + " Ollama, OpenAI ChatGPT, and others, with support for calling tools" + " (functions).")) + (license license:expat) + (home-page "https://rubygems.org/gems/nano-bots"))) |