|
@@ -7489,6 +7489,35 @@ void HttpServer::HandleLlmSubmitToolResults(const httplib::Request& req, httplib
|
|
|
::smartbotic::llm::SubmitToolResultsRequest tool_request;
|
|
::smartbotic::llm::SubmitToolResultsRequest tool_request;
|
|
|
tool_request.set_session_id(session_id);
|
|
tool_request.set_session_id(session_id);
|
|
|
tool_request.set_user_id(auth_user->user_id);
|
|
tool_request.set_user_id(auth_user->user_id);
|
|
|
|
|
+ tool_request.set_workspace_id(session.workspace_id());
|
|
|
|
|
+ tool_request.set_model_id(session.model_id());
|
|
|
|
|
+
|
|
|
|
|
+ // Get workspace settings to find provider_id (same as HandleLlmStreamMessage)
|
|
|
|
|
+ if (!session.workspace_id().empty() && workspaceService_) {
|
|
|
|
|
+ auto ws_result = workspaceService_->GetWorkspace(session.workspace_id(), false);
|
|
|
|
|
+ if (ws_result.success && ws_result.workspace) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ if (ws_result.workspace->settings.contains("llm_provider_id")) {
|
|
|
|
|
+ std::string provider_id = ws_result.workspace->settings["llm_provider_id"].get<std::string>();
|
|
|
|
|
+ if (!provider_id.empty()) {
|
|
|
|
|
+ tool_request.set_provider_id(provider_id);
|
|
|
|
|
+ spdlog::debug("SubmitToolResults: Using provider_id '{}' from workspace settings", provider_id);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (...) {
|
|
|
|
|
+ // Ignore JSON errors
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Add available tools (filtered by permissions)
|
|
|
|
|
+ auto tools = toolService_->GetAvailableTools(*auth_user, session.workspace_id());
|
|
|
|
|
+ for (const auto& tool : tools) {
|
|
|
|
|
+ auto* t = tool_request.add_tools();
|
|
|
|
|
+ t->set_name(tool.name);
|
|
|
|
|
+ t->set_description(tool.description);
|
|
|
|
|
+ t->set_input_schema(tool.input_schema);
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
for (const auto& result : body["tool_results"]) {
|
|
for (const auto& result : body["tool_results"]) {
|
|
|
auto* tool_result = tool_request.add_tool_results();
|
|
auto* tool_result = tool_request.add_tool_results();
|