antigravity-sdk 0.2.0 → 0.3.0
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 +1 -2
- data/lib/antigravity/base.rb +18 -0
- data/lib/antigravity/emojis.rb +42 -17
- data/lib/antigravity/message.rb +1 -2
- data/lib/antigravity/sidecar.rb +7 -5
- data/lib/antigravity/skill.rb +1 -2
- data/lib/antigravity/tool.rb +2 -5
- data/lib/antigravity.rb +1 -0
- metadata +2 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 665ab001fa484b0bc5ba97c2e7feb960712b0f8e5070ed521f0caf5ad0f16a58
|
|
4
|
+
data.tar.gz: 3f556321b1083daadea10792632ac216ba168abb26708fc5cc3a81824301d460
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d60ff58a66fec4ed17a85ad51015568e743363f313eb1a27b9e6512a767ae5a7abca062796ae0bc19edbe59545202828415b693f6551b77a22d8a1ff5cca99ea
|
|
7
|
+
data.tar.gz: 9e09ed8b23e59d29f644d10f421b73d70f357c7d9fd601ba67ba429df8c2814768d0264084e5e6439cd9161d2f8c13313f6890bcd11faf6f66f7e43e3ea2578f
|
data/lib/antigravity/agent.rb
CHANGED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Antigravity
|
|
4
|
+
# Base class for all Antigravity domain objects.
|
|
5
|
+
# Subclasses automagically get .emoji / #emoji via Emojifiable.
|
|
6
|
+
#
|
|
7
|
+
# ⚠️ Keep this class SUPER thin!
|
|
8
|
+
# Every SDK class inherits from it, so any weight here
|
|
9
|
+
# is carried by Agent, Tool, Skill, Message, Sidecar::Runner, etc.
|
|
10
|
+
class Base
|
|
11
|
+
include Emojifiable
|
|
12
|
+
|
|
13
|
+
def self.inherited(subclass)
|
|
14
|
+
super
|
|
15
|
+
subclass.include(Emojifiable) unless subclass < Emojifiable
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
data/lib/antigravity/emojis.rb
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
module Antigravity
|
|
4
4
|
EMOJIS = {
|
|
5
5
|
gem: "💎",
|
|
6
|
-
agent: "
|
|
6
|
+
agent: "🕵️♂️",
|
|
7
7
|
prompt: "💬",
|
|
8
8
|
response: "🤖",
|
|
9
9
|
thinking: "🤔",
|
|
@@ -13,35 +13,60 @@ module Antigravity
|
|
|
13
13
|
sidecar: "🚗",
|
|
14
14
|
logger: "🪵",
|
|
15
15
|
skill: "📁",
|
|
16
|
+
message: "💬",
|
|
16
17
|
guard: "🛡️",
|
|
17
18
|
test: "🧪",
|
|
18
|
-
success: "✅"
|
|
19
|
+
success: "✅",
|
|
20
|
+
unknown: "🤷"
|
|
21
|
+
}.freeze
|
|
22
|
+
|
|
23
|
+
# Name fragments we recognise in the class hierarchy
|
|
24
|
+
EMOJI_CLASS_MAP = {
|
|
25
|
+
"Agent" => :agent,
|
|
26
|
+
"Tool" => :tool,
|
|
27
|
+
"Sidecar" => :sidecar,
|
|
28
|
+
"Runner" => :sidecar,
|
|
29
|
+
"Skill" => :skill,
|
|
30
|
+
"Message" => :message,
|
|
31
|
+
"Chunk" => :message,
|
|
32
|
+
"Guard" => :guard,
|
|
33
|
+
"Logger" => :logger
|
|
19
34
|
}.freeze
|
|
20
35
|
|
|
21
36
|
class << self
|
|
22
37
|
def emoji(key)
|
|
23
|
-
EMOJIS[key.to_sym] ||
|
|
38
|
+
EMOJIS[key.to_sym] || EMOJIS[:unknown]
|
|
24
39
|
end
|
|
25
40
|
|
|
26
41
|
def emoji_for(target)
|
|
27
|
-
key =
|
|
28
|
-
when Message, Chunk
|
|
29
|
-
target.respond_to?(:role) && target.role == :user ? :prompt : :response
|
|
30
|
-
when Symbol, String
|
|
31
|
-
target
|
|
32
|
-
else
|
|
33
|
-
klass = target.is_a?(Class) || target.is_a?(Module) ? target : target.class
|
|
34
|
-
matched_part = klass.name&.split("::")&.reverse&.find do |part|
|
|
35
|
-
%w[Agent Tool Sidecar Skill Message Guard Logger].include?(part)
|
|
36
|
-
end
|
|
37
|
-
matched_part ? matched_part.downcase.to_sym : :gem
|
|
38
|
-
end
|
|
39
|
-
|
|
42
|
+
key = resolve_emoji_key(target)
|
|
40
43
|
emoji(key)
|
|
41
44
|
end
|
|
45
|
+
|
|
46
|
+
private
|
|
47
|
+
|
|
48
|
+
def resolve_emoji_key(target)
|
|
49
|
+
# Message/Chunk: role-aware
|
|
50
|
+
if target.is_a?(Message) || (defined?(Chunk) && target.is_a?(Chunk))
|
|
51
|
+
return target.respond_to?(:role) && target.role == :user ? :prompt : :response
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# Direct symbol/string lookup
|
|
55
|
+
return target if target.is_a?(Symbol) || target.is_a?(String)
|
|
56
|
+
|
|
57
|
+
# Class hierarchy reflection
|
|
58
|
+
klass = target.is_a?(Class) || target.is_a?(Module) ? target : target.class
|
|
59
|
+
parts = klass.name&.split("::") || []
|
|
60
|
+
parts.reverse_each do |part|
|
|
61
|
+
return EMOJI_CLASS_MAP[part] if EMOJI_CLASS_MAP.key?(part)
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
:unknown
|
|
65
|
+
end
|
|
42
66
|
end
|
|
43
67
|
|
|
44
|
-
# Mixin providing polymorphic .emoji class and instance methods
|
|
68
|
+
# Mixin providing polymorphic .emoji class and #emoji instance methods.
|
|
69
|
+
# Auto-included by Antigravity::Base via inherited hook.
|
|
45
70
|
module Emojifiable
|
|
46
71
|
def emoji
|
|
47
72
|
Antigravity.emoji_for(self)
|
data/lib/antigravity/message.rb
CHANGED
data/lib/antigravity/sidecar.rb
CHANGED
|
@@ -6,9 +6,9 @@ require "fileutils"
|
|
|
6
6
|
|
|
7
7
|
module Antigravity
|
|
8
8
|
module Sidecar
|
|
9
|
-
#
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
# Abstract runner for non-blocking agent sidecars.
|
|
10
|
+
# Subclass and implement #process_event.
|
|
11
|
+
class Runner < Antigravity::Base
|
|
12
12
|
|
|
13
13
|
attr_reader :name, :queue, :worker_thread
|
|
14
14
|
|
|
@@ -52,7 +52,7 @@ module Antigravity
|
|
|
52
52
|
end
|
|
53
53
|
|
|
54
54
|
# Async Audit Logger Sidecar
|
|
55
|
-
class AuditLogger <
|
|
55
|
+
class AuditLogger < Runner
|
|
56
56
|
attr_reader :log_file
|
|
57
57
|
|
|
58
58
|
def initialize(log_file = "log/agent_audit.jsonl")
|
|
@@ -72,7 +72,7 @@ module Antigravity
|
|
|
72
72
|
end
|
|
73
73
|
|
|
74
74
|
# Async Vulnerability & Code Quality Scanner Sidecar
|
|
75
|
-
class VulnerabilityScanner <
|
|
75
|
+
class VulnerabilityScanner < Runner
|
|
76
76
|
attr_reader :scanned_events
|
|
77
77
|
|
|
78
78
|
def initialize
|
|
@@ -90,5 +90,7 @@ module Antigravity
|
|
|
90
90
|
@scanned_events << { tool: tool_name, params: params, verified: true }
|
|
91
91
|
end
|
|
92
92
|
end
|
|
93
|
+
# Backward-compatible alias
|
|
94
|
+
Base = Runner
|
|
93
95
|
end
|
|
94
96
|
end
|
data/lib/antigravity/skill.rb
CHANGED
data/lib/antigravity/tool.rb
CHANGED
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
module Antigravity
|
|
4
|
-
class Tool
|
|
5
|
-
include Emojifiable
|
|
6
|
-
|
|
4
|
+
class Tool < Base
|
|
7
5
|
class << self
|
|
8
6
|
def inherited(subclass)
|
|
7
|
+
super
|
|
9
8
|
subclass.extend(ClassMethods)
|
|
10
9
|
end
|
|
11
10
|
end
|
|
12
11
|
|
|
13
12
|
module ClassMethods
|
|
14
|
-
include Emojifiable::ClassMethods
|
|
15
|
-
|
|
16
13
|
def name(val = nil, desc: nil)
|
|
17
14
|
if val
|
|
18
15
|
@tool_name = val.to_s
|
data/lib/antigravity.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: antigravity-sdk
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Riccardo Carlesso
|
|
@@ -61,6 +61,7 @@ extra_rdoc_files: []
|
|
|
61
61
|
files:
|
|
62
62
|
- lib/antigravity.rb
|
|
63
63
|
- lib/antigravity/agent.rb
|
|
64
|
+
- lib/antigravity/base.rb
|
|
64
65
|
- lib/antigravity/client.rb
|
|
65
66
|
- lib/antigravity/config.rb
|
|
66
67
|
- lib/antigravity/emojis.rb
|