meta_workflows 0.8.22 → 0.8.23

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: f2efb90cfd9df2a71b549abc219efd1785d720daae879203bdcd1538c7280891
4
- data.tar.gz: 21722a1ffa8dc58f872ca99fe3976d4a5bfe33609755586e416da26d90aef6e4
3
+ metadata.gz: 697e8ea4740e9d9ed45cbe5f58988a7f2c60cf03cf9058b93393249377b08c5b
4
+ data.tar.gz: 4f19538406ed8c0b59bb8f81d1e3450a39d6249dfd88076c266c073e0fcb9b3e
5
5
  SHA512:
6
- metadata.gz: 0744a0c01b4c8749faba9e6b4fc376d7f20c8e955add654361358c055b2fcc6bff2439ae911ff8aa7a60365a614a808ca8e38bdb04852f93bb650fd6e4d143d6
7
- data.tar.gz: 183d0983398f7f72ad45569a39aaa94e9ec9afb98673fbf29305cf119e1f414f7a71de5302a6ac0e278f3ce950afa3303df5524197a5f1e3197515aa387af0e1
6
+ metadata.gz: d0feb63918822516e031947c8039f62b0b922de7ac1160c56e6296e9c9cf6a99de4375dccb5086ccd232a38c456c4cbad706b0661f27aa16caf8ffd296b68e54
7
+ data.tar.gz: f5c3df2d296acd2b3a8bbc8a084aaaf1eccdc0488a8ba8824efd34b0a9f5680b9237642b4666734220ac9bf4068b27a8ef1388eccaaed42c3b63759afbe3e19e
@@ -1,38 +1,38 @@
1
1
  <%# Lexi Chat Alpha Tray (Center Display) %>
2
- <div class="relative flex flex-col max-w-4xl mx-auto bg-white border border-gray-200 rounded-lg shadow-sm mt-8">
3
- <%# Header with Lexi logo and action icons %>
4
- <div class="flex-shrink-0 flex items-center justify-between p-4 border-b border-gray-200">
5
- <div class="flex items-center space-x-3">
6
- <%= image_tag("lexi_logo_color.png", alt: "Lexi Logo", class: "h-10 w-auto") %>
7
- <h2 class="text-lg font-semibold text-gray-900">Lexi Assistant</h2>
2
+ <div class="relative flex flex-col h-[95vh] bg-white px-4">
3
+ <%# Header with Lexi logo and action icons - spans full width %>
4
+ <div class="flex-shrink-0 flex items-center justify-between pb-2 border-b border-gray-200">
5
+ <div class="flex items-center space-x-2">
6
+ <%= image_tag("lexi_logo_color.png", alt: "Lexi Logo", class: "h-14 w-auto") %>
8
7
  </div>
9
8
  <div class="flex items-center gap-2">
10
9
  <button type="button" class="p-2 rounded-xl hover:bg-gray-100" aria-label="New Chat" disabled>
11
- <i class="fa-solid fa-plus text-lg text-gray-600"></i>
10
+ <i class="fa-solid fa-plus text-xl"></i>
12
11
  </button>
13
12
  <button type="button" class="p-2 rounded-xl hover:bg-gray-100" aria-label="Chat History" disabled>
14
- <i class="fa-solid fa-clock-rotate-left text-lg text-gray-600"></i>
13
+ <i class="fa-solid fa-clock-rotate-left text-xl"></i>
15
14
  </button>
16
15
  </div>
17
16
  </div>
18
17
 
19
- <%# Chat messages area %>
20
- <div class="flex-1 overflow-y-auto p-4 space-y-4 min-h-[300px] max-h-[500px]">
21
- <%= render partial: meta_loader, locals: {record: local_assigns[:record], step_progress: ["Generating draft course objectives...", "Talking to the LLM..."] } %>
22
- </div>
23
-
24
- <%# Input area and Lexi avatar %>
25
- <div class="flex-shrink-0 relative bg-gray-50 rounded-b-lg">
26
- <div class="flex items-end p-4 space-x-4">
27
- <!-- Lexi avatar on the left -->
28
- <div class="flex-shrink-0">
29
- <%= image_tag("lexi-expanded.png", alt: "Lexi Avatar", class: "h-20 w-auto") %>
18
+ <!-- Content area with chat and Lexi side by side -->
19
+ <div class="flex-1 flex min-h-0">
20
+ <!-- Lexi auto-width side column -->
21
+ <div class="flex-shrink-0 flex flex-col justify-end pb-4">
22
+ <%= image_tag("lexi-expanded.png", alt: "Lexi Avatar", class: "h-[375px] w-auto") %>
23
+ </div>
24
+
25
+ <!-- Main content area (chat + input) -->
26
+ <div class="flex-1 flex flex-col min-h-0">
27
+ <%# Chat messages area %>
28
+ <div class="flex-1 overflow-y-auto py-4 space-y-4 min-h-0">
29
+ <%= render partial: meta_loader, locals: {record: local_assigns[:record], step_progress: ["Generating draft course objectives...", "Talking to the LLM..."] } %>
30
30
  </div>
31
-
32
- <!-- Input area on the right -->
33
- <div class="flex-1 space-y-2">
31
+
32
+ <%# Input area %>
33
+ <div class="flex-shrink-0 pt-4 pb-10">
34
34
  <!-- Recording notice -->
35
- <p class="text-xs text-purple-600">This chat is being recorded.</p>
35
+ <p class="text-left text-xs text-purple-800 mb-2">This chat is being recorded.</p>
36
36
 
37
37
  <!-- Input form -->
38
38
  <div class="w-full">
@@ -21,11 +21,11 @@
21
21
  </div>
22
22
 
23
23
  <%# Lexi avatar and input area pinned to bottom %>
24
- <div class="flex-1 relative bg-white min-h-[415px]">
24
+ <div class="relative bg-white h-[335px]">
25
25
  <!-- Bottom section with recording notice and input area -->
26
26
  <div class="absolute bottom-15 left-0 right-0 flex flex-col space-y-2 z-10">
27
27
  <!-- Recording notice -->
28
- <p class="text-left text-xs text-purple-600">This chat is being recorded.</p>
28
+ <p class="text-right text-xs text-purple-800 pr-4">This chat is being recorded.</p>
29
29
 
30
30
  <!-- Input area -->
31
31
  <div class="w-full">
@@ -34,7 +34,7 @@
34
34
  </div>
35
35
  </div>
36
36
 
37
- <!-- Lexi image positioned absolutely to the right -->
38
- <%= image_tag("lexi-expanded.png", alt: "Lexi Avatar", class: "absolute bottom-10 right-0 h-[375px] w-auto pointer-events-none") %>
37
+ <!-- Lexi image positioned absolutely to the left -->
38
+ <%= image_tag("lexi-expanded.png", alt: "Lexi Avatar", class: "absolute bottom-10 left-0 h-[300px] w-auto pointer-events-none") %>
39
39
  </div>
40
40
  </div>
@@ -8,7 +8,7 @@
8
8
  <div class="flex flex-col max-h-[200px] border border-gray-300 rounded-lg bg-white/80 p-2">
9
9
  <!-- Input area with icons -->
10
10
  <div class="flex-1 relative">
11
- <%= form.text_area :message, rows: 1, placeholder: random_chat_placeholder, disabled: local_assigns[:responding] || !local_assigns[:response_enabled], class: "w-full min-h-[50px] border-0 resize-none focus:outline-none focus:ring-0 bg-transparent text-base overflow-y-auto" %>
11
+ <%= form.text_area :message, rows: 1, placeholder: random_chat_placeholder, disabled: local_assigns[:responding] || !local_assigns[:response_enabled], class: "w-full min-h-[35px] border-0 resize-none focus:outline-none focus:ring-0 bg-transparent text-base overflow-y-auto" %>
12
12
  </div>
13
13
 
14
14
  <div class="flex justify-between">
@@ -30,7 +30,7 @@
30
30
  <i class="fa-solid fa-arrow-up text-lg"></i>
31
31
  </button>
32
32
  <% else %>
33
- <%= form.button type: "submit", class: "w-12 h-12 rounded-full flex items-center justify-center text-white bg-purple-600 transition-colors focus:outline-none focus:ring-2 focus:ring-purple-500 focus:ring-offset-2" do %>
33
+ <%= form.button type: "submit", class: "w-12 h-12 rounded-full flex items-center justify-center sm-btn sm-btn-primary" do %>
34
34
  <i class="fa-solid fa-arrow-up text-lg"></i>
35
35
  <% end %>
36
36
  <% end %>
@@ -38,13 +38,16 @@
38
38
  </div>
39
39
  </div>
40
40
 
41
- <% unless local_assigns[:step_has_repetitions] %>
42
- <div class="flex justify-end">
41
+ <div class="flex justify-end">
42
+ <% if local_assigns[:step_has_repetitions] %>
43
+ <!-- Empty placeholder to prevent layout jank -->
44
+ <div class="text-xs mb-2 h-4" aria-hidden="true"></div>
45
+ <% else %>
43
46
  <%= form.button type: "submit", name: "advance", value: "true", class: "text-xs mb-2 #{local_assigns[:responding] ? 'opacity-50 cursor-not-allowed' : ''}", disabled: local_assigns[:responding] do %>
44
47
  <i class="fa-light fa-arrow-right"></i> Next
45
48
  <% end %>
46
- </div>
47
- <% end %>
49
+ <% end %>
50
+ </div>
48
51
  </div>
49
52
  </fieldset>
50
53
  <% end %>
@@ -11,7 +11,7 @@
11
11
  <% if message.role == 'user' %>
12
12
  <!-- User message bubble (right-aligned, amber background) -->
13
13
  <div class="flex justify-end">
14
- <div class="max-w-[80%] bg-amber-100 rounded-xl px-4 py-2">
14
+ <div class="max-w-[80%] bg-amber-100 rounded-xl px-6 py-3">
15
15
  <div class="text-sm">
16
16
  <%= simple_format(message.content) %>
17
17
  </div>
@@ -19,16 +19,11 @@
19
19
  </div>
20
20
 
21
21
  <% elsif message.role == 'assistant' %>
22
- <!-- Lexi message bubble (left-aligned with avatar) -->
23
- <div class="flex items-start space-x-3">
24
- <!-- Lexi Avatar -->
25
- <div class="flex-shrink-0">
26
- <%= image_tag 'lexi-chaticon.png', alt: 'Lexi', class: 'w-auto h-10' %>
27
- </div>
28
-
22
+ <!-- Lexi message bubble (left-aligned) -->
23
+ <div class="flex justify-start">
29
24
  <!-- Message Bubble -->
30
- <div class="max-w-[80%] bg-slate-100 rounded-xl px-4 py-2">
31
- <div class="prose prose-sm max-w-none text-sm">
25
+ <div class="max-w-[80%] bg-slate-100 rounded-xl px-6 py-3">
26
+ <div class="prose prose-sm max-w-none">
32
27
  <%= markdown(message.content) %>
33
28
  </div>
34
29
  </div>
@@ -38,15 +33,10 @@
38
33
 
39
34
  <!-- Show streaming response -->
40
35
  <% if is_streaming %>
41
- <div class="flex items-start space-x-3">
42
- <!-- Lexi Avatar -->
43
- <div class="flex-shrink-0">
44
- <%= image_tag 'lexi-chaticon.png', alt: 'Lexi', class: 'w-auto h-10' %>
45
- </div>
46
-
36
+ <div class="flex justify-start">
47
37
  <!-- Streaming Message Bubble -->
48
- <div class="max-w-[80%] bg-slate-100 rounded-xl px-4 py-2">
49
- <div class="prose prose-sm max-w-none text-sm">
38
+ <div class="max-w-[80%] bg-slate-100 rounded-xl px-6 py-3">
39
+ <div class="prose prose-sm max-w-none">
50
40
  <%= markdown(full_response) %>
51
41
  </div>
52
42
  </div>
@@ -3,7 +3,7 @@
3
3
  module MetaWorkflows
4
4
  MAJOR = 0
5
5
  MINOR = 8
6
- PATCH = 22 # this is automatically incremented by the build process
6
+ PATCH = 23 # this is automatically incremented by the build process
7
7
 
8
8
  VERSION = "#{MetaWorkflows::MAJOR}.#{MetaWorkflows::MINOR}.#{MetaWorkflows::PATCH}".freeze
9
9
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: meta_workflows
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.22
4
+ version: 0.8.23
5
5
  platform: ruby
6
6
  authors:
7
7
  - Leonid Medovyy