@@ -34,9 +34,9 @@ <h3>Setup Required</h3>
3434 </ form >
3535 </ div >
3636 {% else %}
37+ {# ── Model & Instructions ── #}
3738 < div class ="setupSection ">
38- < h3 > Save App Configuration</ h3 >
39-
39+ < h3 > Model & Instructions</ h3 >
4040 < form action ="{{ url_for('save_app_config') }} " method ="POST ">
4141 < div >
4242 < label for ="model-select "> Select Model:</ label >
@@ -47,37 +47,30 @@ <h3>Save App Configuration</h3>
4747 {% endfor %}
4848 {% else %}
4949 < option value ="" disabled > Could not load models</ option >
50- {# Optionally include a default fallback if loading fails #}
5150 {% if current_model %}
5251 < option value ="{{ current_model }} " selected > {{ current_model }} (current)</ option >
5352 {% else %}
54- < option value ="gpt-4o " selected > gpt-4o (default)</ option > {# Default fallback #}
53+ < option value ="gpt-4o " selected > gpt-4o (default)</ option >
5554 {% endif %}
5655 {% endif %}
5756 </ select >
5857 </ div >
59-
60- < div style =" margin-top: 15px; " >
58+
59+ < div >
6160 < label for ="instructions-input "> System Prompt:</ label >
62- < textarea
63- name ="instructions "
64- id ="instructions-input "
65- class ="input "
66- rows ="4 "
61+ < textarea
62+ name ="instructions "
63+ id ="instructions-input "
64+ class ="input "
65+ rows ="4 "
6766 placeholder ="e.g., You are a helpful assistant. "
6867 style ="width: 100%; resize: none; "
6968 > {% if current_instructions %}{{ current_instructions }}{% else %}You are a helpful assistant.{% endif %}</ textarea >
7069 </ div >
7170
72- < div style ="margin-top: 15px; ">
73- < label >
74- < input type ="checkbox " name ="show_tool_call_detail " value ="true " {% if current_show_tool_call_detail %}checked{% endif %} >
75- Show tool call detail in responses
76- </ label >
77- </ div >
78-
79- < p class ="setupMessage " style ="margin-top: 15px; "> Select tools for your assistant:</ p >
80- < div >
71+ {# ── Tools ── #}
72+ < fieldset class ="setupFieldset ">
73+ < legend > Tools</ legend >
8174 < label >
8275 < input type ="checkbox " name ="tool_types " value ="code_interpreter " {% if "code_interpreter" in current_tools %}checked{% endif %}>
8376 Code Interpreter
@@ -94,29 +87,38 @@ <h3>Save App Configuration</h3>
9487 < input type ="checkbox " name ="tool_types " value ="mcp " {% if "mcp" in current_tools %}checked{% endif %}>
9588 MCP Tools
9689 </ label >
97- </ div >
90+ </ fieldset >
91+
92+ {# ── Display ── #}
93+ < fieldset class ="setupFieldset ">
94+ < legend > Display</ legend >
95+ < label >
96+ < input type ="checkbox " name ="show_tool_call_detail " value ="true " {% if current_show_tool_call_detail %}checked{% endif %} >
97+ Show tool call detail in responses
98+ </ label >
99+ </ fieldset >
100+
98101 < div class ="centered-button-container ">
99- < button
100- type ="submit "
101- class ="button "
102- >
103- Save Configuration
104- </ button >
102+ < button type ="submit " class ="button "> Save Configuration</ button >
105103 </ div >
106104 </ form >
107105 </ div >
106+
107+ {# ── File Management ── #}
108108 {% if "file_search" in current_tools %}
109- < div class ="setupSection " style =" margin-top: 20px; " >
110- {% include 'components/file-viewer.html' %}
109+ < div class ="setupSection ">
110+ {% include 'components/file-viewer.html' %}
111111 </ div >
112112 {% endif %}
113+
114+ {# ── Custom Functions & MCP Servers ── #}
113115 {% if "function" in current_tools or "mcp" in current_tools %}
114116 < form action ="{{ url_for('save_app_config') }} " method ="POST " id ="tool-config-form ">
115117 < input type ="hidden " name ="action " value ="regenerate_registry ">
116118 {% endif %}
117119 {% if "function" in current_tools %}
118- < div class ="setupSection " style =" margin-top: 20px; " >
119- < h3 > Register Custom Functions</ h3 >
120+ < div class ="setupSection ">
121+ < h3 > Custom Functions</ h3 >
120122 < p class ="setupMessage "> Provide function entries to include in < code > tool.config.json</ code > . Use module import path for functions and a template path relative to the < code > templates/</ code > directory (e.g., < code > components/weather-widget.html</ code > ). If you paste a path beginning with < code > templates/</ code > , it will be normalized automatically.</ p >
121123
122124 < div id ="registry-rows " style ="align-self: flex-start; ">
@@ -134,15 +136,14 @@ <h3>Register Custom Functions</h3>
134136 {% endif %}
135137 </ div >
136138
137- < div style ="display:flex; gap: 10px; align-self: flex-start;" ">
139+ < div style ="align-self: flex-start; ">
138140 < button type ="button " class ="button " hx-get ="{{ url_for('new_registry_row') }} " hx-target ="#registry-rows " hx-swap ="beforeend " hx-include ="#registry-rows input[name='reg_function_names'], #registry-rows input[name='reg_import_paths'], #registry-rows input[name='reg_template_paths'] "> Add Function</ button >
139141 </ div >
140142 </ div >
141-
142143 {% endif %}
143144 {% if "mcp" in current_tools %}
144- < div class ="setupSection " style =" margin-top: 20px; " >
145- < h3 > Register MCP Servers</ h3 >
145+ < div class ="setupSection ">
146+ < h3 > MCP Servers</ h3 >
146147 < p class ="setupMessage "> Add MCP servers to include in < code > tool.config.json</ code > . Provide a label and either a server URL or a connector ID.</ p >
147148
148149 < div id ="mcp-rows " style ="align-self: flex-start; ">
@@ -164,7 +165,7 @@ <h3>Register MCP Servers</h3>
164165 {% endif %}
165166 </ div >
166167
167- < div style ="display:flex; gap: 10px; align-self: flex-start; ">
168+ < div style ="align-self: flex-start; ">
168169 < button type ="button " class ="button " hx-get ="{{ url_for('new_mcp_row') }} " hx-target ="#mcp-rows " hx-swap ="beforeend " hx-include ="#mcp-rows input[name='mcp_labels'], #mcp-rows input[name='mcp_server_urls'], #mcp-rows input[name='mcp_connector_ids'], #mcp-rows input[name='mcp_authorizations'], #mcp-rows textarea[name='mcp_headers_jsons'], #mcp-rows input[name='mcp_require_approvals'] "> Add MCP Server</ button >
169170 </ div >
170171 </ div >
0 commit comments