antigravity-sdk 0.1.4 → 0.1.5
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 +4 -4
- data/lib/antigravity/agent.rb +21 -6
- data/lib/antigravity/guards.rb +35 -8
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6e2f8d1b432e31aa733976b69c28c01db1c0a8f7d109eb920e489d22ee0fa001
|
|
4
|
+
data.tar.gz: c1dec66ab20e10063913499f9811a8baf1aaf63bf1113d8008b4410e4a68b92a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3601db0d85ee97d1607f61b08091560382bb6ff648042c1bf5340c72c58bd5a3ba026bb79d152281d7a80bd1103542f6de19f86fa4a6a20076884db2cf718374
|
|
7
|
+
data.tar.gz: 457ba9d83a710200dfefa3d07b14a83a2349efcd19f46c2033addf550070bdf927e37f21a93109d36eeeb6dc84e536b829397315683049f00ef52b67f638961d
|
data/lib/antigravity/agent.rb
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
module Antigravity
|
|
4
4
|
class Agent
|
|
5
5
|
attr_accessor :model, :system_instruction, :api_key
|
|
6
|
-
attr_reader :tools, :skills, :hooks, :sidecars, :client
|
|
6
|
+
attr_reader :tools, :skills, :hooks, :sidecars, :client, :logger_guard
|
|
7
7
|
|
|
8
|
-
def initialize(model: nil, &block)
|
|
8
|
+
def initialize(model: nil, auto_logger: true, &block)
|
|
9
9
|
@model = model || Antigravity.config.default_model
|
|
10
10
|
@api_key = Antigravity.config.api_key
|
|
11
11
|
@system_instruction = nil
|
|
@@ -14,6 +14,12 @@ module Antigravity
|
|
|
14
14
|
@sidecars = []
|
|
15
15
|
@hooks = Hooks.new
|
|
16
16
|
@client = Client.new
|
|
17
|
+
@logger_guard = nil
|
|
18
|
+
|
|
19
|
+
# Automagic Logger attachment unless disabled via ENV["ANTIGRAVITY_LOGGER"]=false or auto_logger: false
|
|
20
|
+
if auto_logger && logger_enabled?
|
|
21
|
+
attach_logger
|
|
22
|
+
end
|
|
17
23
|
|
|
18
24
|
yield(self) if block_given?
|
|
19
25
|
end
|
|
@@ -35,10 +41,10 @@ module Antigravity
|
|
|
35
41
|
sidecar
|
|
36
42
|
end
|
|
37
43
|
|
|
38
|
-
def attach_logger(log_target =
|
|
39
|
-
logger_guard = Guards::AgentLogger.new(log_target, level: level)
|
|
40
|
-
logger_guard.attach_to(self)
|
|
41
|
-
logger_guard
|
|
44
|
+
def attach_logger(log_target = nil, level: ::Logger::INFO, silent_notice: false)
|
|
45
|
+
@logger_guard = Guards::AgentLogger.new(log_target, level: level, silent_notice: silent_notice)
|
|
46
|
+
@logger_guard.attach_to(self)
|
|
47
|
+
@logger_guard
|
|
42
48
|
end
|
|
43
49
|
|
|
44
50
|
def load_skill(skill_path)
|
|
@@ -80,5 +86,14 @@ module Antigravity
|
|
|
80
86
|
response
|
|
81
87
|
end
|
|
82
88
|
alias ask prompt
|
|
89
|
+
|
|
90
|
+
private
|
|
91
|
+
|
|
92
|
+
def logger_enabled?
|
|
93
|
+
env_val = ENV["ANTIGRAVITY_LOGGER"]&.downcase
|
|
94
|
+
return false if %w[false 0 none no].include?(env_val)
|
|
95
|
+
|
|
96
|
+
true
|
|
97
|
+
end
|
|
83
98
|
end
|
|
84
99
|
end
|
data/lib/antigravity/guards.rb
CHANGED
|
@@ -7,18 +7,29 @@ module Antigravity
|
|
|
7
7
|
module Guards
|
|
8
8
|
# Configurable opt-in logger guard supporting file loggers and Rails.logger
|
|
9
9
|
class AgentLogger
|
|
10
|
-
attr_reader :logger
|
|
11
|
-
|
|
12
|
-
def initialize(log_target =
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
10
|
+
attr_reader :logger, :target_description
|
|
11
|
+
|
|
12
|
+
def initialize(log_target = nil, level: Logger::INFO, silent_notice: false)
|
|
13
|
+
resolved_target = resolve_log_target(log_target)
|
|
14
|
+
|
|
15
|
+
if resolved_target.is_a?(String)
|
|
16
|
+
dir = File.dirname(resolved_target)
|
|
17
|
+
FileUtils.mkdir_p(dir) unless Dir.exist?(dir)
|
|
18
|
+
@logger = ::Logger.new(resolved_target)
|
|
19
|
+
@target_description = resolved_target
|
|
20
|
+
elsif resolved_target.respond_to?(:info)
|
|
21
|
+
@logger = resolved_target
|
|
22
|
+
@target_description = "Rails.logger"
|
|
18
23
|
else
|
|
19
24
|
@logger = ::Logger.new($stdout)
|
|
25
|
+
@target_description = "$stdout"
|
|
20
26
|
end
|
|
27
|
+
|
|
21
28
|
@logger.level = level if @logger.respond_to?(:level=)
|
|
29
|
+
|
|
30
|
+
unless silent_notice
|
|
31
|
+
puts "🪵 Logging to #{@target_description}"
|
|
32
|
+
end
|
|
22
33
|
end
|
|
23
34
|
|
|
24
35
|
def before_prompt(prompt_text)
|
|
@@ -45,6 +56,22 @@ module Antigravity
|
|
|
45
56
|
agent.before_tool_call { |t, p| logger_guard.before_tool_call(t, p) }
|
|
46
57
|
agent.after_tool_call { |t, p, r| logger_guard.after_tool_call(t, p, r) }
|
|
47
58
|
end
|
|
59
|
+
|
|
60
|
+
private
|
|
61
|
+
|
|
62
|
+
def resolve_log_target(target)
|
|
63
|
+
return target if target
|
|
64
|
+
|
|
65
|
+
if defined?(Rails) && Rails.respond_to?(:logger) && Rails.logger
|
|
66
|
+
Rails.logger
|
|
67
|
+
elsif ENV["RAILS_ENV"] && !ENV["RAILS_ENV"].empty?
|
|
68
|
+
"log/#{ENV['RAILS_ENV']}.log"
|
|
69
|
+
elsif ENV["RACK_ENV"] && !ENV["RACK_ENV"].empty?
|
|
70
|
+
"log/#{ENV['RACK_ENV']}.log"
|
|
71
|
+
else
|
|
72
|
+
"log/antigravity.log"
|
|
73
|
+
end
|
|
74
|
+
end
|
|
48
75
|
end
|
|
49
76
|
|
|
50
77
|
# Configurable opt-in file protection guard
|