[gd_scene load_steps=6 format=3 uid="uid://c5d12f133cpv7"]

[ext_resource type="Script" path="res://addons/ai_assistant_hub/ai_chat.gd" id="1_v0kvm"]
[ext_resource type="Texture2D" uid="uid://beq5nk70uk8v4" path="res://addons/ai_assistant_hub/graphics/icons/edit_chat_icon.png" id="2_8urns"]
[ext_resource type="PackedScene" uid="uid://dxr0f1xqsje6b" path="res://addons/ai_assistant_hub/bot_portrait.tscn" id="3_lcoap"]
[ext_resource type="AudioStream" uid="uid://dk1yumltykf6x" path="res://addons/ai_assistant_hub/sounds/ai_replied.wav" id="4_7y76u"]
[ext_resource type="AudioStream" uid="uid://b2lftlbs848c4" path="res://addons/ai_assistant_hub/sounds/ai_error_cancel.wav" id="5_mmsii"]

[node name="AIChat" type="Control"]
clip_contents = true
custom_minimum_size = Vector2(0, 180)
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 3
script = ExtResource("1_v0kvm")

[node name="HTTPRequest" type="HTTPRequest" parent="."]
unique_name_in_owner = true

[node name="HBoxContainer" type="HBoxContainer" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2

[node name="ScrollContainer" type="ScrollContainer" parent="HBoxContainer"]
layout_mode = 2
horizontal_scroll_mode = 0

[node name="QuickPromptsPanel" type="VBoxContainer" parent="HBoxContainer/ScrollContainer"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3

[node name="VBoxContainer" type="VBoxContainer" parent="HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3

[node name="VSplitContainer" type="VSplitContainer" parent="HBoxContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_constants/separation = 7
theme_override_constants/autohide = 0

[node name="HBoxContainer" type="HBoxContainer" parent="HBoxContainer/VBoxContainer/VSplitContainer"]
layout_mode = 2
size_flags_vertical = 3

[node name="OutputWindow" type="RichTextLabel" parent="HBoxContainer/VBoxContainer/VSplitContainer/HBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
focus_mode = 2
bbcode_enabled = true
scroll_following = true
selection_enabled = true
deselect_on_focus_loss_enabled = false

[node name="MarginContainer" type="Control" parent="HBoxContainer/VBoxContainer/VSplitContainer/HBoxContainer"]
custom_minimum_size = Vector2(50, 0)
layout_mode = 2

[node name="EditHistory" type="Button" parent="HBoxContainer/VBoxContainer/VSplitContainer/HBoxContainer/MarginContainer"]
layout_mode = 1
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -48.0
offset_bottom = 48.0
grow_horizontal = 0
size_flags_vertical = 0
icon = ExtResource("2_8urns")
icon_alignment = 1

[node name="BotPortrait" parent="HBoxContainer/VBoxContainer/VSplitContainer/HBoxContainer/MarginContainer" instance=ExtResource("3_lcoap")]
unique_name_in_owner = true
layout_mode = 1
anchors_preset = 7
anchor_left = 0.5
anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
offset_left = -24.0
offset_top = -48.0
offset_right = 24.0
offset_bottom = 0.0
grow_horizontal = 2
grow_vertical = 0
mouse_filter = 2

[node name="HBoxContainer2" type="HBoxContainer" parent="HBoxContainer/VBoxContainer/VSplitContainer"]
layout_mode = 2

[node name="Label" type="Label" parent="HBoxContainer/VBoxContainer/VSplitContainer/HBoxContainer2"]
layout_mode = 2
theme_type_variation = &"HeaderLarge"
text = ">"

[node name="PromptTxt" type="TextEdit" parent="HBoxContainer/VBoxContainer/VSplitContainer/HBoxContainer2"]
unique_name_in_owner = true
custom_minimum_size = Vector2(0, 40)
layout_mode = 2
size_flags_horizontal = 3
placeholder_text = "Ask something, press ENTER to send.
(Tip: Use CTRL + ENTER or SHIFT + ENTER for adding a new line)"
wrap_mode = 1

[node name="HSeparator" type="HSeparator" parent="HBoxContainer/VBoxContainer"]
layout_mode = 2

[node name="HBoxContainer" type="HBoxContainer" parent="HBoxContainer/VBoxContainer"]
layout_mode = 2
size_flags_vertical = 4

[node name="TemperatureOverrideCheckbox" type="CheckBox" parent="HBoxContainer/VBoxContainer/HBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
text = "Override model's behavior."

[node name="TemperatureSliderContainer" type="HBoxContainer" parent="HBoxContainer/VBoxContainer/HBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3

[node name="Label" type="Label" parent="HBoxContainer/VBoxContainer/HBoxContainer/TemperatureSliderContainer"]
layout_mode = 2
text = "Precise"
vertical_alignment = 1

[node name="TemperatureSlider" type="HSlider" parent="HBoxContainer/VBoxContainer/HBoxContainer/TemperatureSliderContainer"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 4
max_value = 1.0
step = 0.001
ticks_on_borders = true

[node name="Label2" type="Label" parent="HBoxContainer/VBoxContainer/HBoxContainer/TemperatureSliderContainer"]
auto_translate_mode = 1
layout_mode = 2
text = "Creative"
vertical_alignment = 1

[node name="VSeparator" type="VSeparator" parent="HBoxContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2

[node name="Label3" type="Label" parent="HBoxContainer/VBoxContainer/HBoxContainer"]
auto_translate_mode = 1
layout_mode = 2
text = "Model"
vertical_alignment = 1

[node name="ModelOptionsBtn" type="OptionButton" parent="HBoxContainer/VBoxContainer/HBoxContainer"]
unique_name_in_owner = true
layout_mode = 2

[node name="ReplySound" type="AudioStreamPlayer" parent="."]
unique_name_in_owner = true
stream = ExtResource("4_7y76u")
pitch_scale = 1.0108

[node name="ErrorSound" type="AudioStreamPlayer" parent="."]
unique_name_in_owner = true
stream = ExtResource("5_mmsii")

[connection signal="request_completed" from="HTTPRequest" to="." method="_on_http_request_completed"]
[connection signal="pressed" from="HBoxContainer/VBoxContainer/VSplitContainer/HBoxContainer/MarginContainer/EditHistory" to="." method="_on_edit_history_pressed"]
[connection signal="toggled" from="HBoxContainer/VBoxContainer/HBoxContainer/TemperatureOverrideCheckbox" to="." method="_on_temperature_override_checkbox_toggled"]
[connection signal="value_changed" from="HBoxContainer/VBoxContainer/HBoxContainer/TemperatureSliderContainer/TemperatureSlider" to="." method="_on_temperature_slider_value_changed"]
[connection signal="item_selected" from="HBoxContainer/VBoxContainer/HBoxContainer/ModelOptionsBtn" to="." method="_on_model_options_btn_item_selected"]
