nano-bots 3.2.0 → 3.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f6ee7d534a42c2e11bc5a66d81b4a3c6baad7bb9e72ceb8ac4ad4735ac2f9d78
4
- data.tar.gz: 8cfaf1303ad1f65b4b50f99c860252c93d2817d6e0a5b3d3ee978d08397ebaa8
3
+ metadata.gz: aaec6b825711abf0cc489a12d158c8558c51f886772bde35ba606baa23c32a0b
4
+ data.tar.gz: fe8fbb0a863c0f5a4bbe72a83daaa4b6fea807b3816fbaf3daffbb7fbc902a9d
5
5
  SHA512:
6
- metadata.gz: 114798cb6c752de8d01297c5a6359b25c7d80d6b63b07a5c47f5ed4d677c0454ee0848ba412251f6ef81db02efd3ce285d6aaa08908ff3143d27d80d84315d16
7
- data.tar.gz: 6fcbd9a54554b23aff0767fe002e6435d2f09007bf7190c98179b6998512fa003898403a59f025e4c97204e6128877dde52dd48e17b986ab9b8cd1a568dc988f
6
+ metadata.gz: 13fe49fd1bbab45f622a7b77d05de9308aa1ac90d7bf1ba9dce03280ef6bd995624106616706a68defb8580c7f8de9d2a79e140f8974b0c3f493d0c6042e420f
7
+ data.tar.gz: 673e795b635e5ec5a3b48dffee25ebdbf509bacd55de906aa180fc65f9342ab7820168c375257bc4351f23ec8989463e5c70de96ba20f4f6962aef439e6a142b
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- nano-bots (3.2.0)
4
+ nano-bots (3.3.0)
5
5
  babosa (~> 2.0)
6
6
  cohere-ai (~> 1.1)
7
7
  concurrent-ruby (~> 1.3, >= 1.3.3)
data/README.md CHANGED
@@ -9,7 +9,7 @@ https://user-images.githubusercontent.com/113217272/238141567-c58a240c-7b67-4b3b
9
9
  ## TL;DR and Quick Start
10
10
 
11
11
  ```sh
12
- gem install nano-bots -v 3.2.0
12
+ gem install nano-bots -v 3.3.0
13
13
  ```
14
14
 
15
15
  ```bash
@@ -59,7 +59,7 @@ nb gpt.yml - eval "hi"
59
59
  ```
60
60
 
61
61
  ```ruby
62
- gem 'nano-bots', '~> 3.2.0'
62
+ gem 'nano-bots', '~> 3.3.0'
63
63
  ```
64
64
 
65
65
  ```ruby
@@ -250,13 +250,13 @@ end
250
250
  To install the CLI on your system:
251
251
 
252
252
  ```sh
253
- gem install nano-bots -v 3.2.0
253
+ gem install nano-bots -v 3.3.0
254
254
  ```
255
255
 
256
256
  To use it in a Ruby project as a library, add to your `Gemfile`:
257
257
 
258
258
  ```ruby
259
- gem 'nano-bots', '~> 3.2.0'
259
+ gem 'nano-bots', '~> 3.3.0'
260
260
  ```
261
261
 
262
262
  ```sh
@@ -972,7 +972,7 @@ Set your provider credentials and choose your desired path for the cartridges fi
972
972
  services:
973
973
  nano-bots:
974
974
  image: ruby:3.3.3-slim-bookworm
975
- command: sh -c "apt-get update && apt-get install -y --no-install-recommends build-essential libffi-dev libsodium-dev lua5.4-dev curl && curl -s https://raw.githubusercontent.com/babashka/babashka/master/install | bash && gem install nano-bots -v 3.2.0 && bash"
975
+ command: sh -c "apt-get update && apt-get install -y --no-install-recommends build-essential libffi-dev libsodium-dev lua5.4-dev curl && curl -s https://raw.githubusercontent.com/babashka/babashka/master/install | bash && gem install nano-bots -v 3.3.0 && bash"
976
976
  environment:
977
977
  COHERE_API_KEY: your-api-key
978
978
  NANO_BOTS_ENCRYPTION_PASSWORD: UNSAFE
@@ -989,7 +989,7 @@ services:
989
989
  services:
990
990
  nano-bots:
991
991
  image: ruby:3.3.3-slim-bookworm
992
- command: sh -c "apt-get update && apt-get install -y --no-install-recommends build-essential libffi-dev libsodium-dev lua5.4-dev curl && curl -s https://raw.githubusercontent.com/babashka/babashka/master/install | bash && gem install nano-bots -v 3.2.0 && bash"
992
+ command: sh -c "apt-get update && apt-get install -y --no-install-recommends build-essential libffi-dev libsodium-dev lua5.4-dev curl && curl -s https://raw.githubusercontent.com/babashka/babashka/master/install | bash && gem install nano-bots -v 3.3.0 && bash"
993
993
  environment:
994
994
  MARITACA_API_KEY: your-api-key
995
995
  NANO_BOTS_ENCRYPTION_PASSWORD: UNSAFE
@@ -1006,7 +1006,7 @@ services:
1006
1006
  services:
1007
1007
  nano-bots:
1008
1008
  image: ruby:3.3.3-slim-bookworm
1009
- command: sh -c "apt-get update && apt-get install -y --no-install-recommends build-essential libffi-dev libsodium-dev lua5.4-dev curl && curl -s https://raw.githubusercontent.com/babashka/babashka/master/install | bash && gem install nano-bots -v 3.2.0 && bash"
1009
+ command: sh -c "apt-get update && apt-get install -y --no-install-recommends build-essential libffi-dev libsodium-dev lua5.4-dev curl && curl -s https://raw.githubusercontent.com/babashka/babashka/master/install | bash && gem install nano-bots -v 3.3.0 && bash"
1010
1010
  environment:
1011
1011
  MISTRAL_API_KEY: your-api-key
1012
1012
  NANO_BOTS_ENCRYPTION_PASSWORD: UNSAFE
@@ -1025,7 +1025,7 @@ Remember that your `localhost` is by default inaccessible from inside Docker. Yo
1025
1025
  services:
1026
1026
  nano-bots:
1027
1027
  image: ruby:3.3.3-slim-bookworm
1028
- command: sh -c "apt-get update && apt-get install -y --no-install-recommends build-essential libffi-dev libsodium-dev lua5.4-dev curl && curl -s https://raw.githubusercontent.com/babashka/babashka/master/install | bash && gem install nano-bots -v 3.2.0 && bash"
1028
+ command: sh -c "apt-get update && apt-get install -y --no-install-recommends build-essential libffi-dev libsodium-dev lua5.4-dev curl && curl -s https://raw.githubusercontent.com/babashka/babashka/master/install | bash && gem install nano-bots -v 3.3.0 && bash"
1029
1029
  environment:
1030
1030
  OLLAMA_API_ADDRESS: http://localhost:11434
1031
1031
  NANO_BOTS_ENCRYPTION_PASSWORD: UNSAFE
@@ -1044,7 +1044,7 @@ services:
1044
1044
  services:
1045
1045
  nano-bots:
1046
1046
  image: ruby:3.3.3-slim-bookworm
1047
- command: sh -c "apt-get update && apt-get install -y --no-install-recommends build-essential libffi-dev libsodium-dev lua5.4-dev curl && curl -s https://raw.githubusercontent.com/babashka/babashka/master/install | bash && gem install nano-bots -v 3.2.0 && bash"
1047
+ command: sh -c "apt-get update && apt-get install -y --no-install-recommends build-essential libffi-dev libsodium-dev lua5.4-dev curl && curl -s https://raw.githubusercontent.com/babashka/babashka/master/install | bash && gem install nano-bots -v 3.3.0 && bash"
1048
1048
  environment:
1049
1049
  OPENAI_API_KEY: your-access-token
1050
1050
  NANO_BOTS_ENCRYPTION_PASSWORD: UNSAFE
@@ -1063,7 +1063,7 @@ services:
1063
1063
  services:
1064
1064
  nano-bots:
1065
1065
  image: ruby:3.3.3-slim-bookworm
1066
- command: sh -c "apt-get update && apt-get install -y --no-install-recommends build-essential libffi-dev libsodium-dev lua5.4-dev curl && curl -s https://raw.githubusercontent.com/babashka/babashka/master/install | bash && gem install nano-bots -v 3.2.0 && bash"
1066
+ command: sh -c "apt-get update && apt-get install -y --no-install-recommends build-essential libffi-dev libsodium-dev lua5.4-dev curl && curl -s https://raw.githubusercontent.com/babashka/babashka/master/install | bash && gem install nano-bots -v 3.3.0 && bash"
1067
1067
  environment:
1068
1068
  GOOGLE_API_KEY: your-api-key
1069
1069
  NANO_BOTS_ENCRYPTION_PASSWORD: UNSAFE
@@ -1080,7 +1080,7 @@ services:
1080
1080
  services:
1081
1081
  nano-bots:
1082
1082
  image: ruby:3.3.3-slim-bookworm
1083
- command: sh -c "apt-get update && apt-get install -y --no-install-recommends build-essential libffi-dev libsodium-dev lua5.4-dev curl && curl -s https://raw.githubusercontent.com/babashka/babashka/master/install | bash && gem install nano-bots -v 3.2.0 && bash"
1083
+ command: sh -c "apt-get update && apt-get install -y --no-install-recommends build-essential libffi-dev libsodium-dev lua5.4-dev curl && curl -s https://raw.githubusercontent.com/babashka/babashka/master/install | bash && gem install nano-bots -v 3.3.0 && bash"
1084
1084
  environment:
1085
1085
  GOOGLE_CREDENTIALS_FILE_PATH: /root/.config/google-credentials.json
1086
1086
  GOOGLE_REGION: us-east4
@@ -1099,7 +1099,7 @@ services:
1099
1099
  services:
1100
1100
  nano-bots:
1101
1101
  image: ruby:3.3.3-slim-bookworm
1102
- command: sh -c "apt-get update && apt-get install -y --no-install-recommends build-essential libffi-dev libsodium-dev lua5.4-dev curl && curl -s https://raw.githubusercontent.com/babashka/babashka/master/install | bash && gem install nano-bots -v 3.2.0 && bash"
1102
+ command: sh -c "apt-get update && apt-get install -y --no-install-recommends build-essential libffi-dev libsodium-dev lua5.4-dev curl && curl -s https://raw.githubusercontent.com/babashka/babashka/master/install | bash && gem install nano-bots -v 3.3.0 && bash"
1103
1103
  environment:
1104
1104
  GOOGLE_REGION: us-east4
1105
1105
  NANO_BOTS_ENCRYPTION_PASSWORD: UNSAFE
@@ -1161,5 +1161,5 @@ gem build nano-bots.gemspec
1161
1161
 
1162
1162
  gem signin
1163
1163
 
1164
- gem push nano-bots-3.2.0.gem
1164
+ gem push nano-bots-3.3.0.gem
1165
1165
  ```
@@ -35,7 +35,7 @@ module NanoBot
35
35
  Crypto.encrypt(user, soft: true)
36
36
  end
37
37
 
38
- def self.build_path_and_ensure_state_file!(key, cartridge, environment: {})
38
+ def self.build_path_for_state_file(key, cartridge, environment: {})
39
39
  path = [
40
40
  Logic::Helpers::Hash.fetch(cartridge, %i[state path]),
41
41
  Logic::Helpers::Hash.fetch(cartridge, %i[state directory]),
@@ -54,18 +54,8 @@ module NanoBot
54
54
  path = "#{path}/#{cartridge[:meta][:version].to_s.gsub('.', '-').to_slug.normalize}"
55
55
  path = "#{path}/#{end_user(cartridge, environment)}"
56
56
  path = "#{path}/#{Crypto.encrypt(key, soft: true)}"
57
- path = "#{path}/state.json"
58
57
 
59
- FileUtils.mkdir_p(File.dirname(path))
60
-
61
- unless File.exist?(path)
62
- File.write(
63
- path,
64
- Crypto.encrypt(JSON.generate({ key:, history: [] }))
65
- )
66
- end
67
-
68
- path
58
+ "#{path}/state.json"
69
59
  end
70
60
 
71
61
  def self.cartridges_path(components: {})
@@ -34,7 +34,9 @@ module NanoBot
34
34
  if @stateless
35
35
  @state = { history: [] }
36
36
  else
37
- @state_path = Components::Storage.build_path_and_ensure_state_file!(
37
+ @state_key = state.strip
38
+
39
+ @state_path = Components::Storage.build_path_for_state_file(
38
40
  state.strip, @cartridge, environment:
39
41
  )
40
42
 
@@ -43,16 +45,24 @@ module NanoBot
43
45
  end
44
46
 
45
47
  def state
46
- { state: { path: @state_path, content: @state } }
48
+ if @state[:history].empty?
49
+ nil
50
+ else
51
+ { state: { path: @state_path, content: @state } }
52
+ end
47
53
  end
48
54
 
49
55
  def load_state
56
+ return { key: @state_key, history: [] } unless File.exist?(@state_path)
57
+
50
58
  @state = Logic::Helpers::Hash.symbolize_keys(
51
59
  JSON.parse(Components::Crypto.decrypt(File.read(@state_path)))
52
60
  )
53
61
  end
54
62
 
55
63
  def store_state!
64
+ FileUtils.mkdir_p(File.dirname(@state_path)) unless File.exist?(@state_path)
65
+
56
66
  File.write(@state_path, Components::Crypto.encrypt(JSON.generate(@state)))
57
67
  end
58
68
 
@@ -2,7 +2,7 @@
2
2
  services:
3
3
  nano-bots:
4
4
  image: ruby:3.3.3-slim-bookworm
5
- command: sh -c "apt-get update && apt-get install -y --no-install-recommends build-essential libffi-dev libsodium-dev lua5.4-dev curl && curl -s https://raw.githubusercontent.com/babashka/babashka/master/install | bash && gem install nano-bots -v 3.2.0 && bash"
5
+ command: sh -c "apt-get update && apt-get install -y --no-install-recommends build-essential libffi-dev libsodium-dev lua5.4-dev curl && curl -s https://raw.githubusercontent.com/babashka/babashka/master/install | bash && gem install nano-bots -v 3.3.0 && bash"
6
6
  environment:
7
7
  COHERE_API_KEY: your-api-key
8
8
 
data/static/gem.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  module NanoBot
4
4
  GEM = {
5
5
  name: 'nano-bots',
6
- version: '3.2.0',
6
+ version: '3.3.0',
7
7
  specification: '3.0.0',
8
8
  author: 'icebaker',
9
9
  summary: 'Ruby Implementation of Nano Bots: small, AI-powered bots for OpenAI ChatGPT, Ollama, Mistral AI, Cohere Command, Maritaca AI MariTalk, and Google Gemini.',
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nano-bots
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.0
4
+ version: 3.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - icebaker