ruby_llm-agents 0.3.1 → 0.3.4
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/README.md +88 -0
- data/app/controllers/ruby_llm/agents/dashboard_controller.rb +68 -4
- data/app/models/ruby_llm/agents/execution/analytics.rb +114 -13
- data/app/models/ruby_llm/agents/execution/scopes.rb +10 -0
- data/app/models/ruby_llm/agents/execution.rb +26 -58
- data/app/views/layouts/rubyllm/agents/application.html.erb +103 -352
- data/app/views/rubyllm/agents/agents/_agent.html.erb +87 -0
- data/app/views/rubyllm/agents/agents/index.html.erb +2 -71
- data/app/views/rubyllm/agents/agents/show.html.erb +349 -416
- data/app/views/rubyllm/agents/dashboard/_action_center.html.erb +7 -7
- data/app/views/rubyllm/agents/dashboard/_agent_comparison.html.erb +46 -0
- data/app/views/rubyllm/agents/dashboard/_budgets_bar.html.erb +0 -90
- data/app/views/rubyllm/agents/dashboard/_execution_item.html.erb +54 -39
- data/app/views/rubyllm/agents/dashboard/_now_strip.html.erb +79 -5
- data/app/views/rubyllm/agents/dashboard/_top_errors.html.erb +49 -0
- data/app/views/rubyllm/agents/dashboard/index.html.erb +76 -151
- data/app/views/rubyllm/agents/executions/show.html.erb +256 -93
- data/app/views/rubyllm/agents/settings/show.html.erb +1 -1
- data/app/views/rubyllm/agents/shared/_breadcrumbs.html.erb +48 -0
- data/app/views/rubyllm/agents/shared/_nav_link.html.erb +27 -0
- data/config/routes.rb +2 -0
- data/lib/generators/ruby_llm_agents/templates/add_tool_calls_migration.rb.tt +28 -0
- data/lib/generators/ruby_llm_agents/templates/migration.rb.tt +7 -0
- data/lib/generators/ruby_llm_agents/upgrade_generator.rb +13 -0
- data/lib/ruby_llm/agents/base/caching.rb +43 -0
- data/lib/ruby_llm/agents/base/cost_calculation.rb +103 -0
- data/lib/ruby_llm/agents/base/dsl.rb +261 -0
- data/lib/ruby_llm/agents/base/execution.rb +206 -0
- data/lib/ruby_llm/agents/base/reliability_execution.rb +131 -0
- data/lib/ruby_llm/agents/base/response_building.rb +86 -0
- data/lib/ruby_llm/agents/base/tool_tracking.rb +57 -0
- data/lib/ruby_llm/agents/base.rb +19 -619
- data/lib/ruby_llm/agents/instrumentation.rb +36 -3
- data/lib/ruby_llm/agents/result.rb +235 -0
- data/lib/ruby_llm/agents/version.rb +1 -1
- data/lib/ruby_llm/agents.rb +1 -0
- metadata +15 -20
- data/app/channels/ruby_llm/agents/executions_channel.rb +0 -46
- data/app/javascript/ruby_llm/agents/controllers/filter_controller.js +0 -56
- data/app/javascript/ruby_llm/agents/controllers/index.js +0 -12
- data/app/javascript/ruby_llm/agents/controllers/refresh_controller.js +0 -83
- data/app/views/rubyllm/agents/dashboard/_now_strip_values.html.erb +0 -71
|
@@ -12,78 +12,9 @@
|
|
|
12
12
|
<p class="mt-1 text-sm text-gray-500 dark:text-gray-400">Create an agent by running <code class="bg-gray-100 dark:bg-gray-700 dark:text-gray-200 px-1 rounded">rails g ruby_llm_agents:agent YourAgentName</code></p>
|
|
13
13
|
</div>
|
|
14
14
|
<% else %>
|
|
15
|
-
<div class="space-y-4">
|
|
15
|
+
<div class="space-y-3 sm:space-y-4">
|
|
16
16
|
<% @agents.each do |agent| %>
|
|
17
|
-
<%=
|
|
18
|
-
<div class="p-5">
|
|
19
|
-
<!-- Header Row -->
|
|
20
|
-
<div class="flex items-start justify-between mb-3">
|
|
21
|
-
<div class="flex items-center space-x-3">
|
|
22
|
-
<h3 class="text-lg font-semibold text-gray-900 dark:text-gray-100">
|
|
23
|
-
<%= agent[:name].gsub(/Agent$/, '') %>
|
|
24
|
-
</h3>
|
|
25
|
-
<span class="text-sm text-gray-500 dark:text-gray-400">v<%= agent[:version] %></span>
|
|
26
|
-
<% if agent[:active] %>
|
|
27
|
-
<span class="inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-green-100 dark:bg-green-900/50 text-green-800 dark:text-green-300">
|
|
28
|
-
Active
|
|
29
|
-
</span>
|
|
30
|
-
<% else %>
|
|
31
|
-
<span class="inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-gray-100 dark:bg-gray-700 text-gray-600 dark:text-gray-400">
|
|
32
|
-
Deleted
|
|
33
|
-
</span>
|
|
34
|
-
<% end %>
|
|
35
|
-
</div>
|
|
36
|
-
<div class="text-right">
|
|
37
|
-
<p class="text-sm text-gray-500 dark:text-gray-400"><%= agent[:model] %></p>
|
|
38
|
-
</div>
|
|
39
|
-
</div>
|
|
40
|
-
|
|
41
|
-
<!-- Stats Row -->
|
|
42
|
-
<div class="flex items-center justify-between text-sm border-t border-gray-100 dark:border-gray-700 pt-3">
|
|
43
|
-
<div class="flex items-center space-x-6">
|
|
44
|
-
<!-- Executions -->
|
|
45
|
-
<div class="flex items-center text-gray-600 dark:text-gray-300">
|
|
46
|
-
<svg class="w-4 h-4 mr-1.5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
47
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 10V3L4 14h7v7l9-11h-7z" />
|
|
48
|
-
</svg>
|
|
49
|
-
<span><%= number_with_delimiter(agent[:execution_count]) %> executions</span>
|
|
50
|
-
</div>
|
|
51
|
-
|
|
52
|
-
<!-- Cost -->
|
|
53
|
-
<div class="flex items-center text-gray-600 dark:text-gray-300">
|
|
54
|
-
<svg class="w-4 h-4 mr-1.5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
55
|
-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z" />
|
|
56
|
-
</svg>
|
|
57
|
-
<span>$<%= number_with_precision(agent[:total_cost] || 0, precision: 4) %></span>
|
|
58
|
-
</div>
|
|
59
|
-
|
|
60
|
-
<!-- Success Rate -->
|
|
61
|
-
<div class="flex items-center">
|
|
62
|
-
<% success_rate = agent[:success_rate] || 0 %>
|
|
63
|
-
<% if success_rate >= 95 %>
|
|
64
|
-
<span class="w-2 h-2 rounded-full bg-green-500 mr-1.5"></span>
|
|
65
|
-
<span class="text-green-600 dark:text-green-400"><%= success_rate %>%</span>
|
|
66
|
-
<% elsif success_rate >= 80 %>
|
|
67
|
-
<span class="w-2 h-2 rounded-full bg-yellow-500 mr-1.5"></span>
|
|
68
|
-
<span class="text-yellow-600 dark:text-yellow-400"><%= success_rate %>%</span>
|
|
69
|
-
<% else %>
|
|
70
|
-
<span class="w-2 h-2 rounded-full bg-red-500 mr-1.5"></span>
|
|
71
|
-
<span class="text-red-600 dark:text-red-400"><%= success_rate %>%</span>
|
|
72
|
-
<% end %>
|
|
73
|
-
</div>
|
|
74
|
-
</div>
|
|
75
|
-
|
|
76
|
-
<!-- Last Executed -->
|
|
77
|
-
<div class="text-gray-400 dark:text-gray-500">
|
|
78
|
-
<% if agent[:last_executed] %>
|
|
79
|
-
<%= time_ago_in_words(agent[:last_executed]) %> ago
|
|
80
|
-
<% else %>
|
|
81
|
-
Never executed
|
|
82
|
-
<% end %>
|
|
83
|
-
</div>
|
|
84
|
-
</div>
|
|
85
|
-
</div>
|
|
86
|
-
<% end %>
|
|
17
|
+
<%= render partial: "rubyllm/agents/agents/agent", locals: { agent: agent } %>
|
|
87
18
|
<% end %>
|
|
88
19
|
</div>
|
|
89
20
|
<% end %>
|