Skip to content
Merged
Show file tree
Hide file tree
Changes from 13 commits
Commits
Show all changes
15 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.*
import androidx.compose.material.icons.filled.AutoAwesome
import androidx.compose.material.icons.filled.GraphicEq
import androidx.compose.material.icons.filled.Lock
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@ import androidx.compose.material.icons.outlined.RestartAlt
import androidx.compose.material.icons.outlined.Visibility
import androidx.compose.material.icons.outlined.VisibilityOff
import androidx.compose.material.icons.outlined.Warning
import androidx.compose.material.icons.outlined.Build
import androidx.compose.material.icons.outlined.Add
import androidx.compose.material3.*
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
Expand Down Expand Up @@ -809,7 +811,7 @@ fun ToolSettingsSection() {
val application = context.applicationContext as Application
val toolViewModel = remember { ToolSettingsViewModel.getInstance(application) }
val toolState by toolViewModel.uiState.collectAsStateWithLifecycle()

SettingsSection(title = "Tool Calling") {
// Enable/Disable Toggle
Row(
Expand Down Expand Up @@ -839,10 +841,10 @@ fun ToolSettingsSection() {
),
)
}

if (toolState.toolCallingEnabled) {
HorizontalDivider(modifier = Modifier.padding(vertical = 8.dp))

// Registered Tools Count
Row(
modifier = Modifier
Expand Down Expand Up @@ -873,7 +875,7 @@ fun ToolSettingsSection() {
color = AppColors.primaryAccent,
)
}

// Tool List (if any)
if (toolState.registeredTools.isNotEmpty()) {
toolState.registeredTools.forEach { tool ->
Expand All @@ -891,9 +893,9 @@ fun ToolSettingsSection() {
}
}
}

HorizontalDivider(modifier = Modifier.padding(vertical = 8.dp))

// Action Buttons
Row(
modifier = Modifier.fillMaxWidth(),
Expand All @@ -915,7 +917,7 @@ fun ToolSettingsSection() {
Spacer(modifier = Modifier.width(4.dp))
Text(if (toolState.isLoading) "Loading..." else "Add Demo Tools")
}

if (toolState.registeredTools.isNotEmpty()) {
OutlinedButton(
onClick = { toolViewModel.clearAllTools() },
Expand All @@ -934,7 +936,7 @@ fun ToolSettingsSection() {
}
}
}

Spacer(modifier = Modifier.height(8.dp))
Text(
text = "Demo tools: get_weather (Open-Meteo API), get_current_time, calculate",
Expand All @@ -943,4 +945,4 @@ fun ToolSettingsSection() {
)
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import 'package:runanywhere_ai/features/models/model_selection_sheet.dart';
import 'package:runanywhere_ai/features/models/model_status_components.dart';
import 'package:runanywhere_ai/features/models/model_types.dart';
import 'package:runanywhere_ai/features/settings/tool_settings_view_model.dart';
import 'package:runanywhere_ai/features/structured_output/structured_output_view.dart';
import 'package:shared_preferences/shared_preferences.dart';

/// ChatInterfaceView (mirroring iOS ChatInterfaceView.swift)
Expand Down Expand Up @@ -452,7 +453,18 @@ class _ChatInterfaceViewState extends State<ChatInterfaceView> {
return Scaffold(
appBar: AppBar(
title: const Text('Chat'),
actions: [
actions: [
IconButton(
icon: const Icon(Icons.data_object),
onPressed: () {
Navigator.of(context).push<void>(
MaterialPageRoute<void>(
builder: (context) => const StructuredOutputView(),
),
);
},
tooltip: 'Structured Output Examples',
),
if (_messages.isNotEmpty)
IconButton(
icon: const Icon(Icons.delete_outline),
Expand Down
Loading