brute_cli 0.1.0 → 0.1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fb2f42dc6aa2c08fb4b1e58f59f34a76c5acd4f279a952a7c660ab1291433267
4
- data.tar.gz: 34775d35a5b84820359eb5c4757670b26c96abf49128cc3d28c00c4566b048c5
3
+ metadata.gz: 8505051f8c9895144293784e61c82810556a9a9e82896a7808a69c6ea28df7f1
4
+ data.tar.gz: f17b5dbe8a96c4a0c8960f9e871fce0190c54a06d1e52610ee2b1448c7dfaea0
5
5
  SHA512:
6
- metadata.gz: 3cfa605892029140963a04f2728a08f233321436b34c3f940f47eb127628a20d08193ba1b540d52ce224f20a834131e7e9ae9d9849dec7c65b842ef5321cb155
7
- data.tar.gz: 3008b477c0a57e911fe95ef19d23ef3a4a26b489ceed6b857c334376285c492aa6e6605aa77b3e79a44f580c62601795a92e47109f4cc7a278e1bc4dfc84e964
6
+ metadata.gz: 1ac361628483b1be32ce71fd2d4a140df73f4813be3636edc00e59ea4ad78fbf6fedb86c38083b3e28de39e517895fd300ffafe8fb9134ba6f822068bfb28f41
7
+ data.tar.gz: 80cbf082aceb6af2aeff93dbd589f56dc9722151bd8ff82abe68f071bea46360fa5ada02eaa9df50de9b38a5b7d19525bafe9eb6f8b163eabb7da7369dec4732
data/exe/brute CHANGED
@@ -25,9 +25,12 @@ if options[:list]
25
25
  exit
26
26
  end
27
27
 
28
- begin
29
- session = Brute::Session.new(id: options[:session_id])
28
+ # Agent is created lazily on first prompt — no API key needed to boot.
29
+ session = Brute::Session.new(id: options[:session_id])
30
+ orch = nil
30
31
 
32
+ make_agent = -> {
33
+ return orch if orch
31
34
  orch = Brute.agent(
32
35
  cwd: options[:cwd],
33
36
  session: session,
@@ -47,12 +50,9 @@ begin
47
50
  end
48
51
  },
49
52
  )
50
-
51
53
  session.restore(orch.context) if options[:session_id]
52
- rescue RuntimeError => e
53
- BruteCLI.error(e.message.strip)
54
- exit 1
55
- end
54
+ orch
55
+ }
56
56
 
57
57
  prompt = ARGV.join(" ")
58
58
  prompt = $stdin.read.strip if prompt.empty? && !$stdin.tty?
@@ -66,21 +66,19 @@ begin
66
66
  break if input.nil? || input.strip == "exit"
67
67
  next if input.strip.empty?
68
68
  puts
69
- orch.run(input)
69
+ make_agent.call.run(input)
70
70
  puts "\n\n"
71
71
  end
72
72
  else
73
- orch.run(prompt)
73
+ make_agent.call.run(prompt)
74
74
  puts
75
75
  end
76
76
  rescue Interrupt
77
77
  $stderr.puts "\nAborted."
78
78
  exit 130
79
- rescue LLM::RateLimitError => e
80
- BruteCLI.error("Rate limited by provider. #{e.message}")
81
- exit 1
82
- rescue LLM::ServerError => e
83
- BruteCLI.error("Provider returned a server error. #{e.message}")
79
+ rescue RuntimeError, LLM::RateLimitError, LLM::ServerError => e
80
+ BruteCLI.error(e.message)
81
+ $stderr.puts " #{e.backtrace.first}".red if ENV["BRUTE_DEBUG"]
84
82
  exit 1
85
83
  rescue => e
86
84
  BruteCLI.error(e.message)
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BruteCli
4
+ VERSION = "0.1.1"
5
+ end
data/lib/brute_cli.rb CHANGED
@@ -12,7 +12,7 @@ rescue LoadError
12
12
  end
13
13
 
14
14
  module BruteCLI
15
- VERSION = "0.1.0"
15
+ VERSION = "0.1.1"
16
16
 
17
17
  CROSS_MARK = Emoji.find_by_alias("x").raw
18
18
  WARNING_SIGN = Emoji.find_by_alias("warning").raw
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brute_cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brute Contributors
@@ -74,6 +74,7 @@ extra_rdoc_files: []
74
74
  files:
75
75
  - exe/brute
76
76
  - lib/brute_cli.rb
77
+ - lib/brute_cli/version.rb
77
78
  licenses:
78
79
  - MIT
79
80
  metadata: {}