Hansimov commited on
Commit
68fbb7f
1 Parent(s): 5d33608

:zap: [Enhance] Copy model options to new agent models select

Browse files
widgets/available_models_select_widget.js ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ export class AvailableModelsSelectWidget {
2
+ constructor({ widget_id = null, widget_title = null } = {}) {
3
+ this.widget_id = widget_id;
4
+ this.widget_title = widget_title || "Available Models";
5
+ }
6
+ spawn_in_parent(parent, position = "append") {
7
+ this.create_widget();
8
+ this.update_select_options();
9
+ if (position === "prepend") {
10
+ parent.prepend(this.widget);
11
+ } else {
12
+ parent.append(this.widget);
13
+ }
14
+ }
15
+ create_widget() {
16
+ this.widget_html = `
17
+ <select class="form-select" id="${this.widget_id}-select" title="${this.widget_title}"></select>
18
+ `;
19
+ this.widget = $(this.widget_html);
20
+ }
21
+ update_select_options() {
22
+ let available_models_select = $("#available-models-select");
23
+ let options = available_models_select.find("option");
24
+ this.widget.empty();
25
+ options.each((i, option) => {
26
+ this.widget.append($(option).clone());
27
+ });
28
+ }
29
+ }
widgets/new_agent_modal_widget.js CHANGED
@@ -1,4 +1,5 @@
1
  import { RangeNumberWidget } from "./range_number_widget.js";
 
2
 
3
  export class NewAgentModalWidget {
4
  constructor({ widget_id = null } = {}) {
@@ -19,6 +20,13 @@ export class NewAgentModalWidget {
19
  remove() {
20
  this.widget.remove();
21
  }
 
 
 
 
 
 
 
22
  create_temperature_widget() {
23
  this.temperature_widget = new RangeNumberWidget({
24
  widget_id: this.temperature_widget_id,
@@ -72,8 +80,7 @@ export class NewAgentModalWidget {
72
  <label>Description</label>
73
  </div>
74
  <!-- model -->
75
- <div class="form-floating mb-2">
76
- <select id="${this.model_widget_id}" class="form-select" type="text"></select>
77
  <label class="form-label">Model</label>
78
  </div>
79
  <!-- temperature -->
@@ -100,6 +107,7 @@ export class NewAgentModalWidget {
100
  </div>
101
  `;
102
  this.widget = $(this.widget_html);
 
103
  this.create_temperature_widget();
104
  this.create_max_output_tokens_widget();
105
  }
 
1
  import { RangeNumberWidget } from "./range_number_widget.js";
2
+ import { AvailableModelsSelectWidget } from "./available_models_select_widget.js";
3
 
4
  export class NewAgentModalWidget {
5
  constructor({ widget_id = null } = {}) {
 
20
  remove() {
21
  this.widget.remove();
22
  }
23
+ create_model_widget() {
24
+ this.model_widget = new AvailableModelsSelectWidget({
25
+ widget_id: this.model_widget_id,
26
+ });
27
+ let model_widget_parent = this.widget.find(`#${this.model_widget_id}`);
28
+ this.model_widget.spawn_in_parent(model_widget_parent, "prepend");
29
+ }
30
  create_temperature_widget() {
31
  this.temperature_widget = new RangeNumberWidget({
32
  widget_id: this.temperature_widget_id,
 
80
  <label>Description</label>
81
  </div>
82
  <!-- model -->
83
+ <div id="${this.model_widget_id}" class="form-floating mb-2">
 
84
  <label class="form-label">Model</label>
85
  </div>
86
  <!-- temperature -->
 
107
  </div>
108
  `;
109
  this.widget = $(this.widget_html);
110
+ this.create_model_widget();
111
  this.create_temperature_widget();
112
  this.create_max_output_tokens_widget();
113
  }