Skip to content

Update GetEngineUsageReactor.java#417

Merged
ryanweiler92 merged 5 commits intodevfrom
331-getEngineUsage
May 8, 2025
Merged

Update GetEngineUsageReactor.java#417
ryanweiler92 merged 5 commits intodevfrom
331-getEngineUsage

Conversation

@EJV20
Copy link
Copy Markdown
Contributor

@EJV20 EJV20 commented Feb 3, 2025

adding parameter info into the usage section for functions

@EJV20 EJV20 requested a review from themaherkhalil February 3, 2025 15:25
@github-actions
Copy link
Copy Markdown

github-actions bot commented Feb 3, 2025

@CodiumAI-Agent /describe

@QodoAI-Agent
Copy link
Copy Markdown

Title

Update GetEngineUsageReactor.java


User description

adding parameter info into the usage section for functions


PR Type

Enhancement


Description

  • Added detailed parameter information for function usage.

  • Enhanced getFunctionUsage to include parameter metadata.

  • Updated fillMap to support parameter info inclusion.

  • Improved code examples for Python and Java usage.


Changes walkthrough 📝

Relevant files
Enhancement
GetEngineUsageReactor.java
Add parameter metadata and enhance usage examples               

src/prerna/reactor/utils/GetEngineUsageReactor.java

  • Added logic to retrieve and process function parameters.
  • Enhanced getFunctionUsage to include parameter metadata.
  • Modified fillMap to support parameter info as a new field.
  • Updated code examples for Python and Java to include parameter
    mapping.
  • +76/-3   

    Need help?
  • Type /help how to ... in the comments thread for any questions about PR-Agent usage.
  • Check out the documentation for more information.
  • @github-actions
    Copy link
    Copy Markdown

    github-actions bot commented Feb 3, 2025

    @CodiumAI-Agent /review

    @QodoAI-Agent
    Copy link
    Copy Markdown

    PR Reviewer Guide 🔍

    Here are some key observations to aid the review process:

    ⏱️ Estimated effort to review: 4 🔵🔵🔵🔵⚪
    🧪 No relevant tests
    🔒 No security concerns identified
    ⚡ Recommended focus areas for review

    Possible NullPointerException

    The method getFunctionUsage assumes that Utility.getFunctionEngine(engineId) will always return a non-null IFunctionEngine. If it returns null, this could lead to a NullPointerException when calling methods like getParameters() or getRequiredParameters().

    private List<Map<String, Object>> getFunctionUsage(String engineId) {
    	List<Map<String, Object>> usage = new ArrayList<>();
    	IFunctionEngine ife = Utility.getFunctionEngine(engineId);
    	List<FunctionParameter> fps = ife.getParameters();
    	if (fps == null) {
    		fps = new ArrayList<>();
    	}
    	List<Map<String, Object>> paramInfo = new ArrayList<>();
    	List<String> requiredParams = ife.getRequiredParameters();
    	if (requiredParams == null) {
    		requiredParams = new ArrayList<>();
    	}
    Inefficient String Concatenation

    The code uses String concatenation in a loop to build the mapParams string. This could lead to performance issues due to the immutability of String. Consider using a StringBuilder for better performance.

    String mapParams = "";
    for (FunctionParameter fp : fps) {
    	Map<String, Object> pinfo = new HashMap<>();
    	String name = fp.getParameterName();
    	String type = fp.getParameterType();
    	String description = fp.getParameterDescription();
    
    	if (requiredParams.contains(name)) {
    		pinfo.put("required", true);
    	} else {
    		pinfo.put("required", false);
    	}
    	pinfo.put("name", name);
    	pinfo.put("type", type);
    	pinfo.put("description", description);
    
    
    	paramInfo.add(pinfo);
    	if (first) {
    		mapParams = mapParams + "{";
    		first = false;
    	} else {
    		mapParams = mapParams + ", ";
    	}
    
    	mapParams = mapParams + "\"" + name + "\":";
    
    	if (type.equalsIgnoreCase("string")) {
    		mapParams = mapParams + "\"string\"";
    	} else {
    		mapParams = mapParams + type;
    	}
    
    }
    
    if (fps.size() == 0) {
    	mapParams = "";
    } else {
    	mapParams = mapParams + "}";
    Redundant Parameter Initialization

    The initialization of fps and requiredParams to empty lists when null could be redundant if ife.getParameters() and ife.getRequiredParameters() are guaranteed to return non-null values. This should be verified.

    List<FunctionParameter> fps = ife.getParameters();
    if (fps == null) {
    	fps = new ArrayList<>();
    }
    List<Map<String, Object>> paramInfo = new ArrayList<>();
    List<String> requiredParams = ife.getRequiredParameters();
    if (requiredParams == null) {
    	requiredParams = new ArrayList<>();

    @github-actions
    Copy link
    Copy Markdown

    github-actions bot commented Feb 3, 2025

    @CodiumAI-Agent /improve

    @QodoAI-Agent
    Copy link
    Copy Markdown

    PR Code Suggestions ✨

    CategorySuggestion                                                                                                                                    Score
    Possible issue
    Add null check for ife object

    Add a null check for ife after calling Utility.getFunctionEngine(engineId) to
    prevent potential NullPointerException if the method returns null.

    src/prerna/reactor/utils/GetEngineUsageReactor.java [335-336]

     IFunctionEngine ife = Utility.getFunctionEngine(engineId);
    +if (ife == null) {
    +    return usage; // or handle appropriately
    +}
     List<FunctionParameter> fps = ife.getParameters();
    Suggestion importance[1-10]: 9

    Why: Adding a null check for ife is crucial to prevent a potential NullPointerException if Utility.getFunctionEngine(engineId) returns null. This suggestion addresses a critical issue that could lead to runtime errors.

    9
    Add null checks for FunctionParameter fields

    Ensure that fp.getParameterName(), fp.getParameterType(), and
    fp.getParameterDescription() are not null before using them to avoid potential
    NullPointerException.

    src/prerna/reactor/utils/GetEngineUsageReactor.java [350-352]

    -String name = fp.getParameterName();
    -String type = fp.getParameterType();
    -String description = fp.getParameterDescription();
    +String name = fp.getParameterName() != null ? fp.getParameterName() : "";
    +String type = fp.getParameterType() != null ? fp.getParameterType() : "";
    +String description = fp.getParameterDescription() != null ? fp.getParameterDescription() : "";
    Suggestion importance[1-10]: 8

    Why: Ensuring that fp.getParameterName(), fp.getParameterType(), and fp.getParameterDescription() are not null before usage is important to avoid potential NullPointerException. This suggestion improves code robustness.

    8
    General
    Validate type for supported values

    Validate the type variable in the mapParams construction loop to ensure it only
    contains supported data types, avoiding potential runtime errors.

    src/prerna/reactor/utils/GetEngineUsageReactor.java [374-377]

     if (type.equalsIgnoreCase("string")) {
         mapParams = mapParams + "\"string\"";
    +} else if (type.equalsIgnoreCase("int") || type.equalsIgnoreCase("float")) {
    +    mapParams = mapParams + type;
     } else {
    -    mapParams = mapParams + type;
    +    mapParams = mapParams + "\"unsupported\""; // or handle appropriately
     }
    Suggestion importance[1-10]: 7

    Why: Validating the type variable ensures that only supported data types are used, preventing potential runtime errors. This suggestion enhances the reliability of the mapParams construction logic.

    7
    Use immutable lists for null initialization

    Avoid using mutable ArrayList for paramInfo and requiredParams initialization when
    null; use Collections.emptyList() for better immutability and performance.

    src/prerna/reactor/utils/GetEngineUsageReactor.java [337-343]

     if (fps == null) {
    -    fps = new ArrayList<>();
    +    fps = Collections.emptyList();
     }
     ...
     if (requiredParams == null) {
    -    requiredParams = new ArrayList<>();
    +    requiredParams = Collections.emptyList();
     }
    Suggestion importance[1-10]: 6

    Why: Using Collections.emptyList() instead of mutable ArrayList for null initialization improves immutability and performance. While not critical, this suggestion enhances code quality and maintainability.

    6

    @ryanweiler92 ryanweiler92 requested review from ryanweiler92 and removed request for themaherkhalil May 7, 2025 15:08
    @ryanweiler92 ryanweiler92 merged commit 8a2f9c4 into dev May 8, 2025
    3 checks passed
    @ryanweiler92 ryanweiler92 deleted the 331-getEngineUsage branch May 8, 2025 17:56
    @github-actions
    Copy link
    Copy Markdown

    github-actions bot commented May 8, 2025

    @CodiumAI-Agent /update_changelog

    @QodoAI-Agent
    Copy link
    Copy Markdown

    Changelog updates: 🔄

    2025-05-08 #417

    Changed

    • Add function parameter information to engine usage outputs in GetEngineUsageReactor.

    to commit the new content to the CHANGELOG.md file, please type:
    '/update_changelog --pr_update_changelog.push_changelog_changes=true'

    manamittal added a commit that referenced this pull request May 20, 2025
    * fix(python): handle eval when it is a single line execution but there is string input with space (#756)
    
    * Update Dockerfile.tomcat (#757)
    
    * fix: tomcat builder setting env var
    
    * fix: updating tomcat to 9.0.104
    
    * Update Dockerfile.ubuntu22.04
    
    * Update Dockerfile.ubuntu22.04
    
    * Update Dockerfile.ubuntu22.04
    
    * feat: creating KubernetesModelScaler class (#763)
    
    * Update Dockerfile.ubuntu22.04
    
    * feat: adding ability to attach a file to a vector db source (#736)
    
    * Added AttachSourceToVectorDbReactor for uploading pdf file to an existing csv file and modified VectorFileDownloadReactor
    
    * fix: proper return for the download and matching the reactor name
    
    * fix: error for downloading single file vs multiple; error for copyToDirectory instead of copyFile
    
    * chore: renaming so reactor matches VectorFileDownload
    
    ---------
    
    Co-authored-by: Maher Khalil <themaherkhalil@gmail.com>
    
    * Update Dockerfile.ubuntu22.04
    
    * Update ubuntu2204.yml
    
    * Update ubuntu2204.yml
    
    * Update ubuntu2204_cuda.yml
    
    * Update Dockerfile.nvidia.cuda.12.5.1.ubuntu22.04
    
    * Update ubuntu2204_cuda.yml
    
    * Update ubuntu2204.yml
    
    * feat: exposing tools calling through models (#764)
    
    * 587 unit test for prernadsutil (#654)
    
    * test(unit): unit tests for the prerna.util.ds package
    
    * test(unit): unit tests for the prerna.util.ds.flatfile package
    
    * test(unit): removed reflections, added paraquet tests
    
    * test(unit): unit tests for the prerna.util.ds package
    
    * test(unit): unit tests for the prerna.util.ds.flatfile package
    
    * test(unit): removed reflections, added paraquet tests
    
    * Update ubuntu2204.yml
    
    * Update ubuntu2204.yml
    
    * Update ubuntu2204.yml
    
    * fix: update pipeline docker buildx version
    
    * fix: ignore buildx
    
    * fix: adjusting pipeline for cuda
    
    * feat: switching dynamic sas to default false (#766)
    
    * fix: changes to account for version 2.0.0 of pyjarowinkler (#769)
    
    * chore: using 'Py' instead of 'py' to be consistent (#770)
    
    * feat: full ast parsing of code to return evaluation of the last expression (#771)
    
    * Python Deterministic Token Trimming for Message Truncation (#765)
    
    * feat: deterministic-token-trimming
    
    * feat: modifying logic such that system prompt is second to last message for truncation
    
    ---------
    
    Co-authored-by: Maher Khalil <themaherkhalil@gmail.com>
    
    * fix: added date added column to enginepermission table (#768)
    
    * fix: add docker-in-docker container to run on sef-hosted runner (#773)
    
    Co-authored-by: Raul Esquivel <resmas.work@gmail.com>
    
    * fix: properly passing in the parameters from kwargs/smss into model limits calculation (#774)
    
    * fix: removing legacy param from arguments (#777)
    
    * fix: Fix docker cache build issue (#778)
    
    * adding no cache
    
    * adding no cache
    
    * feat: Adding Semantic Text Splitting & Token Text Splitting (#720)
    
    * [696] - build - Add chonky semantic text splitting - Added the function for chonky semantic text splitting and integrated with existing flow.
    
    * [696] - build - Add chonky semantic text splitting - Updated the code
    
    * [696] - build - Add chonky semantic text splitting - Updated the code comments
    
    * feat: adding reactor support through java
    
    * feat: updating pyproject.toml with chonky package
    
    * feat: check for default chunking method in smss
    
    * [696] - feat - Add chonku semantic text splitting - Resolved the conflicts
    
    * [696] - feat - Add chonky semantic text splitting - Organized the code.
    
    * feat: adding chunking by tokens and setting as default
    
    * updating comments on chunking strategies
    
    ---------
    
    Co-authored-by: Weiler, Ryan <ryanweiler92@gmail.com>
    Co-authored-by: kunal0137 <kunal0137@gmail.com>
    
    * feat: allowing for tools message in full prompt (#780)
    
    * UPDATE ::: Add docker in docker Dockerfiler (#784)
    
    * add docker in docker Dockerfile
    
    * Update Dockerfile.dind
    
    Remove python and tomcat arguments from Dockerfile
    
    * fix: remove-paddle-ocr (#786)
    
    * [#595] test(unit): adds unit test for prerna.engine.impl.model.kserve
    
    Co-authored-by: Ryan Weiler <ryanweiler92@gmail.com>
    
    * feat: Tag semoss image (#789)
    
    * adding changes for non-release docker build
    
    * adding non-release build logic to cuda-semoss builder
    
    * updating push branches
    
    * fix: branch names on docker builds
    
    * fix: branch names on docker builds cuda
    
    * fix: adding push condition - change to pyproject toml file; adding event input vars to env vars (#790)
    
    * fix: python builder toml file change (#792)
    
    * fix: Catch errors when calling pixels from Python (#787)
    
    Co-authored-by: Weiler, Ryan <ryanweiler92@gmail.com>
    
    * Creating db links between engines and default apps (#693)
    
    * create db links between engine and default app
    
    * Rename column APPID to TOOL_APP
    
    * feat: add database_tool_app to getUserEngineList
    
    ---------
    
    Co-authored-by: Weiler, Ryan <ryanweiler92@gmail.com>
    
    * Adding sort options to the myengines reactor (#479)
    
    * added sort feature to MyEnginesReactor and genericized reactor imports
    
    * formatting
    
    * overloading method
    
    * validate sortList
    
    ---------
    
    Co-authored-by: Ryan Weiler <ryanweiler92@gmail.com>
    
    * feat: cleaning up unused imports in MyEngine reactor (#793)
    
    * feat: Create Enum projectTemplate and update CreateAppFromTemplateReactor to accept existing appID for cloning applications (#621)
    
    Co-authored-by: kunal0137 <kunal0137@gmail.com>
    
    * Update GetEngineUsageReactor.java (#417)
    
    Co-authored-by: Maher Khalil <themaherkhalil@gmail.com>
    Co-authored-by: Ryan Weiler <ryanweiler92@gmail.com>
    
    * Issue 596: Adds Unit Tests for prerna/engine/impl/model/responses and workers (#727)
    
    * [#596] test(unit): adds unit tests
    
    * fix: implements ai-agents suggestions
    
    ---------
    
    Co-authored-by: Jeff Vitunac <jvitunac@gmail.com>
    Co-authored-by: Ryan Weiler <ryanweiler92@gmail.com>
    
    * 609 implement native blob storage for azure gcp and aws (#674)
    
    * Initial commit : implementation for azure blob storage
    
    * added dependency for azure in pom.xml
    
    * update logic to fetch the metadata from list details
    
    * changed functionality from listing containers to listing files within a selected container
    
    * initial commit for google cloud storage implementation
    
    * added field contant in enum class and removed unused method
    
    * add methods to parse comma-separated local and cloud paths
    
    * add methods to parse comma-separated local and cloud paths
    
    * implementation for aws s3 bucket
    
    * normalize container prefix path
    
    * merged all: implementation for azure, aws and gcp
    
    * refactor(storage): replace manual path normalization with normalizePath from Utility class
    
    ---------
    
    Co-authored-by: pvijayaraghavareddy <pvijayaraghavareddy@WORKSPA-6QV71G7.us.deloitte.com>
    Co-authored-by: Parth <parthpatel3@deloitte.com>
    Co-authored-by: Ryan Weiler <ryanweiler92@gmail.com>
    
    * Get Node Pool Information for Remote Models (#806)
    
    * 590 unit test for prernaengineimpl (#808)
    
    * test(unit): update to filesystems hijacking for testing files
    
    * test: start of unit tests for abstract database engine
    
    * test(unit): added unit test for prerna.engine.impl
    
    * test(unit): finsihed tests for prerna.engine.impl
    
    * test(unit): adding back unused assignment
    
    ---------
    
    Co-authored-by: Ryan Weiler <ryanweiler92@gmail.com>
    
    * Creating WordCountTokenizer Class (#802)
    
    * feat: creating word count tokenizer class && falling back to word count tokenizer if tiktok fails
    
    * feat: updating comment
    
    * feat: setting default chunking method as recursive (#810)
    
    * Unit tests fixes and Unit test Class file location updates (#812)
    
    * test(unit): moved tests to correct packages
    
    * test(unit): fixed a couple of unit tests
    
    * VectorDatabaseQueryReactor: output divider value for word doc chunks always 1 (#804)
    
    * Code implementation for #733
    
    * feat: Added code to resolve Divider page issue
    
    * Console output replaced by LOGGERs as per review comments
    
    * feat: replaced Console with Loggers
    
    ---------
    
    Co-authored-by: Varaham <katchabi50@gmail.com>
    Co-authored-by: Ryan Weiler <ryanweiler92@gmail.com>
    
    * GetCurrentUserReactor (#818)
    
    Adding GetCurrentUserReactor to return user info including if user is an admin.
    
    * Python User Class (#819)
    
    * fix: trimming properties read from smss; fix: logging commands before executing (#821)
    
    * Updating getNodePoolsInfo() to parse and return zk info and models active actual (#822)
    
    * feat: update get node pool information for zk info and models active actual
    
    * feat: get remote model configs
    
    * Add unit tests for package prerna\engine\impl\vector (#728)
    
    * Create ChromaVectorDatabaseEngineUnitTests.java
    
    * completed tests for ChromaVectorDatabaseEngine class
    
    * [#604] test(unit): Created ChromaVectorDatabaseEngine unit tests
    
    * [604] tests(unit) : Completed test cases for ChromaVectorDatabaseEngine; update File operations to nio operations in ChromaVectorDatabaseEngine.java
    
    * [#604] tests(unit): added unit tests for all vector database engines and util classes in the prerna\engine\impl\vector package
    
    * [604] test(unit): replaced creating file paths with string literals with java.nio Paths.resolve/Paths.get methods
    
    ---------
    
    Co-authored-by: Maher Khalil <themaherkhalil@gmail.com>
    Co-authored-by: Ryan Weiler <ryanweiler92@gmail.com>
    
    * feat: adding to the return of getenginemetadata (#813)
    
    * feat: adding to the return of getenginemetadata
    
    * fix: removing throws
    
    ---------
    
    Co-authored-by: Arash Afghahi <48933336+AAfghahi@users.noreply.github.com>
    Co-authored-by: Ryan Weiler <ryanweiler92@gmail.com>
    
    * 718 create a single reactor to search both engines and apps (#794)
    
    * feat(engineProject): Initial commit
    
    * chore: 718 create a single reactor to search both engines and apps
    
    * chore: 718 create a single reactor to search both engines and apps
    
    ---------
    
    Co-authored-by: Ryan Weiler <ryanweiler92@gmail.com>
    Co-authored-by: Vijayaraghavareddy <pvijayaraghavareddy@deloitte.com>
    
    * feat: update openai wrapper to handle multiple images (#832)
    
    * feat: adding user room map (#840)
    
    * feat: hiding side menu bar for non admins (#833)
    
    * Side menu changes
    
    * Review Comments fixed
    
    * Flag is renamed in  Constants.java
    
    * Review Comment fixed in Utility.java
    
    * fix: cleaning up defaults and comments
    
    ---------
    
    Co-authored-by: kunal0137 <kunal0137@gmail.com>
    
    ---------
    
    Co-authored-by: Maher Khalil <themaherkhalil@gmail.com>
    Co-authored-by: kunal0137 <kunal0137@gmail.com>
    Co-authored-by: Ryan Weiler <ryanweiler92@gmail.com>
    Co-authored-by: ManjariYadav2310 <manjayadav@deloitte.com>
    Co-authored-by: dpartika <dpartika@deloitte.com>
    Co-authored-by: Raul Esquivel <resmas.work@gmail.com>
    Co-authored-by: Pasupathi Muniyappan <pasupathi.muniyappan@kanini.com>
    Co-authored-by: resmas-tx <131498457+resmas-tx@users.noreply.github.com>
    Co-authored-by: AndrewRodddd <62724891+AndrewRodddd@users.noreply.github.com>
    Co-authored-by: radkalyan <107957324+radkalyan@users.noreply.github.com>
    Co-authored-by: samarthKharote <samarth.kharote@kanini.com>
    Co-authored-by: Shubham Mahure <shubham.mahure@kanini.com>
    Co-authored-by: rithvik-doshi <81876806+rithvik-doshi@users.noreply.github.com>
    Co-authored-by: Mogillapalli Manoj kumar <86736340+Khumar23@users.noreply.github.com>
    Co-authored-by: Jeff Vitunac <jvitunac@gmail.com>
    Co-authored-by: pvijayaraghavareddy <pvijayaraghavareddy@WORKSPA-6QV71G7.us.deloitte.com>
    Co-authored-by: Parth <parthpatel3@deloitte.com>
    Co-authored-by: KT Space <119169984+Varaham@users.noreply.github.com>
    Co-authored-by: Varaham <katchabi50@gmail.com>
    Co-authored-by: ericgonzal8 <ericgonzalez8@deloitte.com>
    Co-authored-by: Arash Afghahi <48933336+AAfghahi@users.noreply.github.com>
    Co-authored-by: Vijayaraghavareddy <pvijayaraghavareddy@deloitte.com>
    Co-authored-by: ammb-123 <ammb@deloitte.com>
    AnasSaleh-98 added a commit that referenced this pull request Sep 2, 2025
    AnasSaleh-98 added a commit that referenced this pull request Sep 3, 2025
    AnasSaleh-98 added a commit that referenced this pull request Sep 8, 2025
    AnasSaleh-98 added a commit that referenced this pull request Sep 17, 2025
    AnasSaleh-98 added a commit that referenced this pull request Sep 18, 2025
    AnasSaleh-98 added a commit that referenced this pull request Sep 25, 2025
    AnasSaleh-98 added a commit that referenced this pull request Sep 30, 2025
    AnasSaleh-98 added a commit that referenced this pull request Oct 2, 2025
    Na-daT pushed a commit that referenced this pull request Oct 14, 2025
    themaherkhalil added a commit that referenced this pull request Nov 21, 2025
    * [#417] feat: added playwright reactors
    
    * [#417] feat: updated playwright reactors
    
    * [#417] feat: updated playwright reactors
    
    * [#417] feat: added variable record with isPassword field
    
    * [#417] feat: fixed playwright variables not retrieved when text is empty
    
    * [#417] feat: added replayStep reactor
    
    * [#417] fix: fix replayStep loop
    
    * feat: list all recording
    
    * [#417] feat: Added click, navigate, wait, scroll to replayStep reactor
    
    * feat: ProbeElement Reactor
    
    Signed-off-by: RawanAbdelkhalek <66391994+RawanAbdelkhalek@users.noreply.github.com>
    
    * [#465] feat: Added cropped screenshot and LLM Context reactor
    
    * [#465] feat: Return probe in action list in ReplayStepReactor
    
    * [#417] fix: fixed isLastPage + always add naviage step in separate array
    
    * fix(playwright): replace the text value when deleting instead of appending
    
    * [#417] fix: fixed executeAll logic
    
    * [#465] Return probe data in action list for Type steps
    
    * fix(playwright): int check for strings in probeReactor
    
    * feat: Add playwright utils
    
    * feat: HTML Extraction & LLM Step Generation
    
    * [1235] - feat - Add JSON structured support for Anthropic and Bedrock Clients. (#1259)
    
    * [1235] - feat - Added the support for JSON structured responses for Anthropic and Bedrock Clients.
    
    * [1235] - feat - standardized the code.
    
    * [1235] - feat - included the script to standardize the response of bedrock and anthropic clients for JSON structured.
    
    * [1239] - feat - Added the new message format support for AzureOpenAiChatCompletion and AzureOpenAIResponses through OpenAiClientV2 class. (#1267)
    
    Co-authored-by: Ryan Weiler <ryanweiler92@gmail.com>
    
    * feat: update model urls (#1271)
    
    * fix: modification for processing java to python string (#1270)
    
    * Reduce Clauses in Bool OpenSearch (#1268)
    
    * fix: reduce clauses in bool
    
    * fix: terms
    
    * fix: comparator
    
    * fix: pixeldatatype
    
    * fix: casting to number to get long value (#1276)
    
    * fix-casting-modellogs-2 (#1277)
    
    * feat: exposing ability to generate mcp for just a single tool that gets appended (instead of replacing) the current mcp json (#1280)
    
    * feat: exposing ability to generate mcp for just a single tool that gets appended (instead of replacing) the current mcp json
    
    * fix: proper error messages for the expected file
    
    * feat: exposing admin reactor to view RDF contents (#1274)
    
    * added code for masking Sensitive data in RDF Map prop file
    
    * feat: added code for masking RDF Map sensitive  data
    
    * chore: moving methods to DIHelper directly instead of Utility
    
    * chore: renaming reactor and adding description
    
    ---------
    
    Co-authored-by: Varaham <katchabi50@gmail.com>
    Co-authored-by: Maher Khalil <themaherkhalil@gmail.com>
    
    * [1266] - feat - Support beta headers for the Python Anthropic Client (#1281)
    
    * [1266] - feat - Added the support to Anthropic client for the beta headers to support the large documents.
    
    * [1266] - feat - Updated the code.
    
    * feat: handle betas with streaming legacy messages
    
    ---------
    
    Co-authored-by: Ryan Weiler <ryanweiler92@gmail.com>
    
    * Don't require beta headers param for anthropic models (#1282)
    
    * feat: don't require beta headers param for anthropic models
    
    * feat: update use_beta_header typing
    
    * feat: adding log4j2.xml and new appenders to log into audit database (#1208)
    
    * feat: creation of the audit logs db on startup to hold both the server logs and the engine method logs performed through PipelineInvocationHandler
    
    * feat: enabling log4j2.xml at the engine level within the assets folder to separate out logs. Example could be
    
    <?xml version="1.0" encoding="UTF-8"?>
    <Configuration xmlns:xi="http://www.w3.org/2001/XInclude" xmlns="https://logging.apache.org/xml/ns"
    	status="INFO"
    	packages="prerna.logging"
    	monitorInterval="30">
    	<Appenders>
    		<!-- Console Appender -->
    		<Console name="Console" target="SYSTEM_OUT">
    			<PatternLayout>
    				<!-- <Pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss} %c{1.}:%L [user=%X{userId}] [session=%X{sessionId}] [ip=%X{clientIP}] %m%n</Pattern> -->
    				<Pattern>CUSTOM_ENGINE [%-5level] %d{yyyy-MM-dd HH:mm:ss} %c{1.}:%L [user=%X{userId}] %m%n</Pattern>
    			</PatternLayout>
    		</Console>
    
    		<!-- Database Appender -->
            <ServerLogsJDBCAppender name="ServerLogsJDBCAppender" batchSize="1" ignoreExceptions="false">
            	<PatternLayout>
    				<Pattern>CUSTOM_ENGINE [%-5level] %d{yyyy-MM-dd HH:mm:ss} %c{1.}:%L [user=%X{userId}] [session=%X{sessionId}] [ip=%X{clientIP}] [reqId=%X{requestId}] %m%n</Pattern>
    			</PatternLayout>
            </ServerLogsJDBCAppender>
            <AuditLogsJDBCAppender name="AuditLogsJDBCAppender" batchSize="1" ignoreExceptions="false" engineId="11629219-1fbf-4b52-af2a-04b509b2f111">
           		<PatternLayout>
    				<Pattern>CUSTOM_ENGINE [%-5level] %d{yyyy-MM-dd HH:mm:ss} %c{1.}:%L [user=%X{userId}] [session=%X{sessionId}] [ip=%X{clientIP}] [reqId=%X{requestId}] %m%n</Pattern>
    			</PatternLayout>
            </AuditLogsJDBCAppender>
    	</Appenders>
    	<Loggers>
    		<AsyncLogger name="EngineLogger" level="INFO" additivity="false" includeLocation="false">
    			<AppenderRef ref="AuditLogsJDBCAppender" />
    			<AppenderRef ref="Console" />
    			<AppenderRef ref="ServerLogsJDBCAppender" />
    		</AsyncLogger>
    		<AsyncRoot level="WARN" includeLocation="false">
    			<AppenderRef ref="Console" />
    		</AsyncRoot>
    	</Loggers>
    </Configuration>
    
    ---------
    
    Co-authored-by: US\pkapaleeswaran <pkapaleeswaran@deloitte.com>
    Co-authored-by: Maher Khalil <themaherkhalil@gmail.com>
    Co-authored-by: Magudapathy <pmagudapathy@deloitte.com>
    
    * feat: exposing admin only checks on guardrails (#1286)
    
    * feat: exposing admin only checks on guardrails
    
    * chore: adding admin values for guardrails in rdf_map
    
    * chore: adding secrets for guardrails
    
    * feat: mcp notebook will now replace the python function in the driver python file if there is an existing mcp tool that has that cell id in its meta (#1288)
    
    * Fix upload issue with proper cleanup from DIHelper (#1272)
    
    * fix: fix database file lock issue
    
    * fix: removing engine from DIHelper
    
    * fix: applying fix on upload of projects, removing db logic
    
    ---------
    
    Co-authored-by: Maher Khalil <themaherkhalil@gmail.com>
    
    * fix-remove-microservice-url in RDF (#1291)
    
    * fix: switch from athena simba jar to aws jar (#1293)
    
    * chore: switching code creation to text block instead of concatenations (#1294)
    
    * fix: adding plugin to remove log4j from athena fat jar (#1297)
    
    * fix: eclipse runs with a specific class loader, need changes to ensure it works for development (#1298)
    
    * Upgrading Python Packages (#1295)
    
    * feat: upgrading faiss-cpu && numpy
    
    * feat: upgrading openai, anthropic, googlegenai, pydantic adding langextract
    
    ---------
    
    Co-authored-by: Maher Khalil <themaherkhalil@gmail.com>
    
    * chore: removing deprecated plugin lookup attribute (#1299)
    
    * chore: remove aws v1 sdk (#1300)
    
    * chore: removing old aws jars and s3 custom reactors - use storage reactors instead
    
    * chore: ignoring dependency-reduced-pom.xml
    
    * fix: delete classes associated with aws v1 code that was removed (#1302)
    
    * fix throw query errors (#1304)
    
    * feat: adding logic for custom groups, formatting security util code, try-catch-finally to try-with-resource (#1220)
    
    
    ---------
    
    Co-authored-by: Anurag Jain <anurag91jain@gmail.com>
    Co-authored-by: Maher Khalil <themaherkhalil@gmail.com>
    
    * chore: switching to try-with-resource (#1305)
    
    * feat: google ocr,  aws textract, pom dependency updates (#1189)
    
    * feat: exposing new OCR routines that can be integrated with vector databases
    
    * feat: removing com.microsoft.azure jars (legacy v1) for com.azure jars
    
    * chore: removing slf4j logger factory for log4j log manager
    
    * feat: deprecating CreateRestFunctionEngineReactor for CreateFunctionEngineReactor
    
    * chore: with introduction of new jars and dependencies growing, modified plugin to require 100% dependency convergence. generate report by running:
     
    mvn project-info-reports:dependency-convergence
    
    ---------
    
    Co-authored-by: kavks <Kavks@deloitte.com>
    Co-authored-by: Maher Khalil <themaherkhalil@gmail.com>
    
    * chore: exposing mvn site to get dependency list and dependency coverage (#1306)
    
    * chore: updating jars, switching scheduler to hikari from c3p0 (#1307)
    
    * [1232] - feat - Add Bedrock support through Anthropic's SDK (#1285)
    
    * [1232] - feat - added the bedrock support through anthropic's sdk.
    
    * [1232] - feat - Standardize the code.
    
    * feat: instantiate anthropic  bedrock client in anthropic class instead of google
    
    * feat: removing ref to bedrock client in google client class
    
    ---------
    
    Co-authored-by: Ryan Weiler <ryanweiler92@gmail.com>
    
    * fix: installing gliner (#1311)
    
    * Mesage table structure rework message (#1195)
    
    * fix: add transaction id column
    
    * fix: message table structure for new messages
    
    * fix: compilation
    
    * fix: update old rooms
    
    * fix: other entry points
    
    * fix: theoretically good
    
    * fix: updation
    
    * fix: extra uuid
    
    * fix: other things
    
    * fix: using message id from AbstractMessage
    
    * fix: imports
    
    * fix: migrate ids and overload doRecordMessage
    
    ---------
    
    Co-authored-by: Tejas Lokeshrao <tlokeshrao@deloitte.com>
    Co-authored-by: rithvik-doshi <81876806+rithvik-doshi@users.noreply.github.com>
    Co-authored-by: Maher Khalil <themaherkhalil@gmail.com>
    
    * feat: switching to new mcp_driver notebook and mcp_driver.py from smss_driver and smss_driver.py (#1309)
    
    * feat: switching from UUID to GUID.v7() (#1314)
    
    * OpenAI transcription function engine (#1284)
    
    * feat: openai transcription function engine
    
    * feat: wip
    
    * feat: OpenAI Transcribe Function Engine
    
    * Cot playground (#1290)
    
    * fix: create step class
    
    * feat: add cotroomreactor outline
    
    * chore: separating playground items
    
    * feat: adding initial cot room
    
    * feat: update updateroomoptionsreactor with other version
    
    * fix: multiple vec db
    
    * fix: correct keyargs
    
    * feat: update room in memory with options
    
    * feat: tools in room options
    
    * fix: pushing cot changes
    
    * fix: check type on python to handle list strs
    
    * fix: proper json return for complex data type
    
    * feat: add step class and adjust cot templates accordingly
    
    * fix: small comment for util
    
    * fix: partial refactor of step class
    
    * feat: finish refactor of step class
    
    * fix: move success criteria to seperate class and consolidate builders
    
    * feat: add prompts to utils
    
    * reverting prompt structure
    
    * fix: triple quote strings incase they have quotes
    
    * feat: create triage reactor
    
    * feat: modify output configuration
    
    * fix: import file
    
    ---------
    
    Co-authored-by: Scott <seascott@deloitte.com>
    Co-authored-by: Maher Khalil <themaherkhalil@gmail.com>
    
    * fix: using the same parent id for multiple tool inputs (#1315)
    
    * feat: using tool names as enums for cot (#1316)
    
    * fix: using anyOf and sending proper map to python (#1317)
    
    * feat(function): updated to only process files checked for dependencies (#1313)
    
    * feat(function): updated to only go through files which it has checked for dependencies
    
    * feat(function): made minor changes
    
    * chore: formatting code
    
    ---------
    
    Co-authored-by: Kumari <skumari40@deloitte.com>
    Co-authored-by: Maher Khalil <themaherkhalil@gmail.com>
    
    * feat: openai image models compatible with semoss mssg format (#1318)
    
    * model logs search (#1133)
    
    * fix: model logs search
    
    * fix: remove unused imports
    
    * fix: remove print
    
    * fix: casing
    
    * fix: cast to clob
    
    * varchar
    
    * fix: qs minus lower
    
    * fix: qs
    
    * fix: active rooms
    
    * fix: more in return
    
    * we did it
    
    * chain inner selectors instead
    
    * Update ModelInferenceLogsUtils.java
    
    Remove print
    
    * feat: adding search room reactor
    
    * fix: merge issues
    
    * fix: expand to cover more db options
    
    * remove extra selector
    
    * get rid of other stuff too
    
    * remove unused imports
    
    * comment
    
    ---------
    
    Co-authored-by: Van Buren <tevanburen@deloitte.com>
    Co-authored-by: Rithvik Doshi <doshirithvik@gmail.com>
    Co-authored-by: rithvik-doshi <81876806+rithvik-doshi@users.noreply.github.com>
    Co-authored-by: kunal0137 <kunal0137@gmail.com>
    Co-authored-by: Maher Khalil <themaherkhalil@gmail.com>
    
    * chore: adding codeowners file (#1319)
    
    * chore: moving function logic to query util class, deprecating UpdateQueryStruct (#1321)
    
    * feat: exposing methods on interface instead of casting IModelEngine to AbstractModelEngine (#1324)
    
    * fix: adding PyUtils.pyEnabled() check to InsightUtility before attempting removeInsightGlobals() (#1322)
    
    Co-authored-by: kunal0137 <kunal0137@gmail.com>
    Co-authored-by: Maher Khalil <themaherkhalil@gmail.com>
    
    * fix: correcting timestamp used for token usage query (#1328)
    
    * update databricks jar for arrow changes (#1329)
    
    update databricks jar for arrow changes
    
    * chore: push log4j plugins into resources folder for eclipse to pickup during development (#1330)
    
    * fix: handle types in python syntax (#1331)
    
    * chore: ignore log4j plugin (#1332)
    
    * Handle tool_choice param in Python AI provider clients (#1323)
    
    * feat: google gen ai tool_choice
    
    * feat: support anthropic tool_choice
    
    * feat: google gen ai - dont pass tool config if tools empty
    
    * feat: bedrock tool_choice support
    
    * fix: mcp generation, tools with complex types using openai, calls to google without tools (#1334)
    
    * fix: properly creating the mcp json types and adding in output schema
    
    * fix: accounting for complex mcp types to openai types
    
    * fix: messages breaking when [] array of tools being passed
    
    * fix: removing outputSchema since it seems to not be supported yet by some mcp clients
    
    * feat: new create guardrail engine, consolidating repeated code to UploadUtilities (#1335)
    
    * feat: audit database is now a temp engine instead of direct connection (#1336)
    
    * feat: if the proxy is ever invoked, we will always log even if no input/output reactors (#1337)
    
    * feat: switch from uuid to guidv7 (#1338)
    
    * feat: log4j plugin to mask confidential information, pom update for log4j plugin to recompile even if cached on system (#1341)
    
    * feat: Masking confidential information in the console logs and the rolling appender log files by using log4j2.LogEventPatternConverter
    
    * feat: force compilation of log4j plugin, exposing additional regex pattern matches, moving values to mask into central location
    
    ---------
    
    Co-authored-by: Magudapathy <pmagudapathy@deloitte.com>
    Co-authored-by: Maher Khalil <themaherkhalil@gmail.com>
    
    * fix: remove inner avro from hadoop jar (#1345)
    
    * fix: shade jar properly excludes conflicts from hadoop and athena (#1350)
    
    * feat: reporting from audit logs (#1287)
    
    * feat: adding in initial logic for reporting from audit logs
    
    * feat: Changes made for fetching Timeline audit log data
    
    * feat: modifying sql interpreter to push to query util for syntax generation of functions, changing name of AuditLog to AuditLogReport
    
    * chore: clearer else if logic on getting the message data if Object vs Map message
    
    * fix: query logic handles null/empty and does all filters as additions, returning all logs even if response/request is empty
    
    ---------
    
    Co-authored-by: Magudapathy <pmagudapathy@deloitte.com>
    
    * Add step to install playwright dependencies (#1355)
    
    Co-authored-by: kunal0137 <kunal0137@gmail.com>
    
    * fix: better handling of classpath to compile java (#1358)
    
    * fix: better handling of classpath to compile java
    
    * fix: using StandardCharsets instead of string utf-8
    
    * fix: removing tools from param map if empty (#1361)
    
    * fix: replace old smss_driver.py file name to new mcp_driver.py file name (#1364)
    
    * fix: replace old smss_driver.py file name to new mcp_driver.py file name
    
    * fix: wrapping concat strings in quotes for proper replacement
    
    * chore: switch from string utf-8 to StandardCharsets.UTF_8 (#1365)
    
    * Update anthropic_text_client.py (#1367)
    
    * feat: improved streaming from python models to tomcat (#1366)
    
    * feat: exposing new smss_stream_func in handle python to send back different operation type for streaming chunks from python models
    to tomcat. consolidating methods into MCPUtility for processing tools
    
    * chore: fixing typo in comment
    
    * fix: making the PixelJobManager streaming thread safe
    
    * chore: switch streaming logs to debug (#1368)
    
    * fix: aggregating tools in semoss format, handling empty arguments (#1369)
    
    * chore: removing import that is not used (#1370)
    
    * chore: adding commented out method to set smss_stream when running code outside of gaas_tcp_server_handler (#1371)
    
    * fix: resolving error with importing logger which was removed (#1372)
    
    * fix-mcp-utility-functionName (#1374)
    
    * fix: adding pom.properties into shaded meta-inf resolving version error on containers (#1378)
    
    * Retrieve existing message feedback (#1118)
    
    * refactoring message feedback init
    
    * fix illegal start of exp
    
    * simplify query
    
    * pass feedback when getting messages
    
    * extract method
    
    * changing back to messageid and shifting loading feedback to setMessages
    
    * getting elsa feedback almost works
    
    * refactor
    
    * clean up prints
    
    * to string
    
    * refactoring and standard return
    
    * only add feedback if there's something to add
    
    * moving to message utils
    
    * Update BaseFeedback.java
    
    * tried to clean up a bit
    
    * renamed
    
    * unused imports
    
    * unused import
    
    * feat: refactor slightly to avoid breaking error
    
    * fix(refactor): remove ifeedback
    
    * refactor: rename to MessageFeedback
    
    * move parseMessage calls to account for cached vals or unnecessary calls
    
    * only parse again after migration
    
    * remove unnecessary parseMessages
    
    * fix: failing when messageIds null or empty
    
    * fix: update message json
    
    * fix: start flushing messages to room table, add feedback directly to room in room hash + more fixes to feedback
    
    * refactor: unused import
    
    * switch to semoss date
    
    * remove unused deps
    
    * Update Room.java
    
    Remove comment
    
    ---------
    
    Co-authored-by: Maher Khalil <themaherkhalil@gmail.com>
    Co-authored-by: kunal0137 <kunal0137@gmail.com>
    Co-authored-by: Tejas Lokeshrao <tlokeshrao@deloitte.com>
    
    * Workspace user perm (#1356)
    
    * fix: workspace permissions when shared
    
    * fix: workspace sharing
    
    * fix: move duplicated monolith endpoint call to Security helper
    
    * fix: workspace ownership
    
    * fix: permission not permissions
    
    * fix: logic error
    
    * fix: move existing dependencies over when shared
    
    * fix: comment for helper
    
    * fix: remove unused method
    
    * fix: unused import
    
    * fix: remove unused method param
    
    * fix: remove param from javadoc comment
    
    * fix: authorization check prior to dependency deletion
    
    * fix: editors on project can remove dependencies since they can add them
    
    ---------
    
    Co-authored-by: kunal0137 <kunal0137@gmail.com>
    
    * Adjust COT plan id and limit tool choice options (#1382)
    
    * fix: BE created plan id;  added COT ornament
    
    * fix: removing some tool choice options
    
    * feat: add step name to schema and correct required fields
    
    ---------
    
    Co-authored-by: Scott <seascott@deloitte.com>
    
    * fix: using the new utils (#1383)
    
    * feat: adding confirm cot reactor (#1384)
    
    * [1342] - feat - Tool Choice for OpenAI Chat-Completion and Responses client (#1351)
    
    * [1342] - feat - Added Tool Choice for OpenAI Chat-Completion and Responses client.
    
    * [1342] - feat - Updated the code.
    
    ---------
    
    Co-authored-by: Ryan Weiler <ryanweiler92@gmail.com>
    
    * feat: exposing api_endpoint parameter (#1385)
    
    * Unit testing updates (#1303)
    
    * test: fixed unit tests
    
    * test: fixed issue found while fixing unit tests
    
    * test: fixing tests after merging latest dev
    
    * test: removing mockito inline resource
    
    * test: mvn test now runs unit tests with coverage
    
    * chore: fix whitespace showing entire file as diff
    
    ---------
    
    Co-authored-by: Maher Khalil <themaherkhalil@gmail.com>
    
    * chore: removing legacy tests (#1389)
    
    * feat: proper streaming (content and tools) with new OpenAI client (#1391)
    
    * feat: extending streaming for chat completions on openai_client_v2, passing cpw into NativePySocketClient to call shutdown on disconnect to release port lock
    
    * chore: using correct gson import
    
    * chore: unit test fixes (#1390)
    
    Co-authored-by: Ryan Weiler <ryanweiler92@gmail.com>
    Co-authored-by: Maher Khalil <themaherkhalil@gmail.com>
    
    * fix: passing in correct tool_choice args across models (#1393)
    
    * feat: allowing tools to be added to AskCOT
    
    ---------
    
    Co-authored-by: Kunal Patel <kunal0137@gmail.com>
    Co-authored-by: Scott <seascott@deloitte.com>
    
    * test(unit): unit tests for prerna.algorithm.learning packages (#659)
    
    * test(unit): unit tests for prerna.algorithm.learning packages
    
    * Merge branch 'dev' into 569-unit-test-for-prernaalgorithmlearning
    
    ---------
    
    Co-authored-by: Adolfo Perera <adoperera@deloitte.com>
    
    * test: added unit tests for engine.impl.owl (#1399)
    
    * test: added tests for auth utils (#1400)
    
    * test: fixed tests broken on mac (#1401)
    
    Co-authored-by: Adolfo Perera <adoperera@deloitte.com>
    Co-authored-by: Ryan Weiler <ryanweiler92@gmail.com>
    
    * 575 cache unit test (#1405)
    
    * pushing tinker test progress
    
    * test(unit): testing against real files in memory
    
    * tinkerUtilitiesTests needs review
    
    * iCache tests
    
    * file rename
    
    * adding test setup for IGraphUtilitiesUnitTests
    
    * adding iGraphUtilitiesUnitTests
    
    * adding tinkerEngineUnitTests
    
    * adding code coverage tests for TinkerEngine
    
    * adding test coverage for JanusEngine
    
    * adding error message to commented out  test code
    
    * adding unit tests for CachePropFileFrameObject
    
    * update tinkerEngine Unit tests to use tempDir
    
    * updating tempDir for Janus tests
    
    * adding code coverage for Icache class
    
    * adding icache unit tests
    
    * test(engine): fixing tests broken from dev merge
    
    * test(cacheUtils): fixing testDeleteCache with new changes
    
    * test(cache): testing caching insight and creating zip files
    
    * test(cache): adding unit test for readInsightCache
    
    * chore(tinkerUtils): removing unused imports
    
    * test(tinker): updating tinkerEngine tests with temp folder setup
    
    * test: removing flakey test
    
    * test(tinker): reverting src change for filepaths in unit tests
    
    ---------
    
    Co-authored-by: Jeff Vitunac <jvitunac@gmail.com>
    Co-authored-by: Ryan Weiler <ryanweiler92@gmail.com>
    
    * fix: checking if room is already closed to stop accessing that chat history, switching to cache builder so chat histories clear over time (#1406)
    
    * chore: Version works for local development, remove Hashtable/Vector for ConcurrentHashMap and collections synchronizedList  (#1407)
    
    * fix: get version map info when running in local development
    
    * chore: remove hashtable/vector for concurrenthashmap and collections synchronizedlist
    
    * chore: removing invalid comments after refactoring
    
    * fix: resolving codium suggestions
    
    * feat: allowing anthropic tool streaming (#1408)
    
    * Extra workspace features (#1388)
    
    * fix: make sharing a one way change and only use workspace owner for permissions when workspace is not shared
    
    * fix: get workspaces gets number of users and permission
    
    * fix: num colabs and permission on list workspaces
    
    * fix: add default values for private workspaces
    
    * fix: permissions
    
    * fix: remove comments
    
    * fix: switch params and add project types but don't actually pass it
    
    * fix: allow users to remove themselves from engine and project permissions table (#1404)
    
    * fix: cleaning up projectID vs projectType filter
    
    ---------
    
    Co-authored-by: kunal0137 <kunal0137@gmail.com>
    Co-authored-by: Van Buren <tevanburen@deloitte.com>
    
    * fix: tool json cleanup and additional _meta added (#1434)
    
    * fix: tool json cleanup and additional _meta added
    
    * fix: using details map within toolstep json
    
    * fix: helper to run python methods (#1375)
    
    * fix: workspace permissions when shared
    
    * fix: workspace sharing
    
    * fix: move duplicated monolith endpoint call to Security helper
    
    * fix: workspace ownership
    
    * fix: permission not permissions
    
    * fix: logic error
    
    * fix: helper to run python methods
    
    * fix: saving progress
    
    * fix: move existing dependencies over when shared
    
    * fix: comment for helper
    
    * fix: run py modules
    
    * fix: unneeded imports
    
    * fix: remove unused method
    
    * fix: remove unused method
    
    * fix: unused import
    
    * Update SecurityProjectUtils.java
    
    no
    
    * Update SecurityProjectUtils.java
    
    * Update SecurityProjectUtils.java
    
    * fix: space instead of project
    
    ---------
    
    Co-authored-by: kunal0137 <kunal0137@gmail.com>
    Co-authored-by: rithvik-doshi <81876806+rithvik-doshi@users.noreply.github.com>
    
    * Py reactor helper (#1437)
    
    * fix: workspace permissions when shared
    
    * fix: workspace sharing
    
    * fix: move duplicated monolith endpoint call to Security helper
    
    * fix: workspace ownership
    
    * fix: permission not permissions
    
    * fix: logic error
    
    * fix: helper to run python methods
    
    * fix: saving progress
    
    * fix: move existing dependencies over when shared
    
    * fix: comment for helper
    
    * fix: run py modules
    
    * fix: unneeded imports
    
    * fix: remove unused method
    
    * fix: remove unused method
    
    * fix: unused import
    
    * Update SecurityProjectUtils.java
    
    no
    
    * Update SecurityProjectUtils.java
    
    * Update SecurityProjectUtils.java
    
    * fix: space instead of project
    
    * fix: unique module name
    
    * fix: unused import
    
    * fix: codium suggestion
    
    * fix: codium 2
    
    ---------
    
    Co-authored-by: kunal0137 <kunal0137@gmail.com>
    Co-authored-by: rithvik-doshi <81876806+rithvik-doshi@users.noreply.github.com>
    
    * fix: tool response coming as dict/map instead of string (#1442)
    
    * fix: adding json loads to send / keep semoss message history with arguments as a map
    
    * fix: sending arguments as dict, handling arguments in AskToolEngineResponse if map or string
    
    * fix: validate user login when using basic auth (#1439)
    
    Co-authored-by: tlokeshrao <tlokeshrao@deloitte.com>
    
    * test: UserRegistrationEmailService Unit tests (#1443)
    
    * 580 ds export tests (#1436)
    
    * chore(code): removing unused imports
    
    * test(exportGraph): adding unit tests for ds.export.graph
    
    * refactor(ds.export): using connectionUtils to close connections
    
    * test(ds.export): adding tests for rdbms and tinker graph exports
    
    * test(ds.export): adding test for hasNextEdge
    
    ---------
    
    Co-authored-by: Ryan Weiler <ryanweiler92@gmail.com>
    
    * 592 unit test for prernaengine.imp.lfunction (#1438)
    
    * test: adding unit tests for engine.impl.function package
    
    * test: updated function tests after semoss update. Removed SentimentFunctionEngineUnitTests and  AWSTextractFunctionEngineUnitTests.
    
    * test: cleaning up unsused imports; completing tests for 'StreamRESTFunctionEngineUnitTests'
    
    ---------
    
    Co-authored-by: Ryan Weiler <ryanweiler92@gmail.com>
    
    * fix: not always adding tool_choice (#1445)
    
    * fix: not always adding tool_choice
    
    * fix: trimming input string once
    
    * 1413 sec pass reset util (#1446)
    
    * test(securityPasswordResetUtils): adding tests for securityPasswordResetUtils
    
    * test(secPasswordReset): adding coverage tests for error messages
    
    * test(SecurityUtils): adding test util to setup temp folder with security database setup and tear down.
    
    ---------
    
    Co-authored-by: Ryan Weiler <ryanweiler92@gmail.com>
    
    * feat: exposing multiple reactor utility methods, cleanup on nounstore method names (#1451)
    
    * chore: adding multiple utility methods to make it easier to pull values from the nounstore
    
    * chore: renaming methods in NounStore to be more clear and fixing references in other methods
    
    * fix: cleaning up javadoc
    
    * 571 security token utils (#1448)
    
    * refactor(SecurityTokenUtils): using connectionUtils to close the connection
    
    * test(SecurityTokenUtils): adding unit tests for SecurityTokenUtilsUnitTests
    
    ---------
    
    Co-authored-by: Maher Khalil <themaherkhalil@gmail.com>
    
    * fix: adding try exception for json.loads incase tools stop loading and json is not complete (#1452)
    
    * chore: switching to utility methods (#1453)
    
    * fix: code changes to prevent editing teams to have same type and id (#1308)
    
    * fix: code changes to prevent editing teams to have same type and id
    
    * fix: removed unused method and changed logic to have same group type
    
    * fix: changes made to allow only description edit
    
    * fix: use equals() for groupType comparison in deleteGroupAndPropagate
    
    * chore: improved syntax for closing wrapper iterator
    
    ---------
    
    Co-authored-by: Maher Khalil <themaherkhalil@gmail.com>
    
    * feat: google calendar connectors (#1073)
    
    ---------
    
    Co-authored-by: Maher Khalil <themaherkhalil@gmail.com>
    
    * test: added SecurityUserUtils unit test class (#1449)
    
    Co-authored-by: Maher Khalil <themaherkhalil@gmail.com>
    
    * chore: adding deprecated method for some custom reactors (#1456)
    
    * chore: adding deprecated method (#1463)
    
    * feat: logic to predict tools outside of cot message branch; fixes for openai message building (#1464)
    
    * feat: updating llm to use new message builders (#1354)
    
    * feat: updating llm to use new message builders
    
    * chore: deprecating model rest engines; feat: converting full prompt for message jsons
    
    * fix: writing result of full prompt to db
    
    * chore: added support for the new parameters in python.
    
    fix: normalized the LLM response as string format when we pass tools as empty.
    
    * feat: updating python bindings
    
    * feat: update python usage
    
    * feat: langchain updates
    
    * feat: fix command param for py bindings
    
    * feat: handle full prompt when no command or question
    
    * fix: converting tools in full prompt from openai
    
    * fix: adding messages as message json
    
    ---------
    
    Co-authored-by: pasupathimuniyappan <pasupathi.muniyappan@kanini.com>
    Co-authored-by: Maher Khalil <themaherkhalil@gmail.com>
    Co-authored-by: Ryan Weiler <ryanweiler92@gmail.com>
    
    * feat: exposing single reactor to execute query against a database (#959)
    
    * [#371] build: created generic sql query reactor
    
    * [#371] fix: defaulted commit to false and added validation checks in SqlQueryReactor
    
    * [#371] fix: add task optimization for select queries in SqlQueryReactor
    
    * feat: get database category reactor (#371)
    
    - limit sql query fetch to 50 rows
    - create getDatabaseCategory to identify sql or noSQL db
    
    * fix: inner reactors have their own independent noun stores, consolidating some methods
    
    * chore: reverting back reactor factory changes
    
    ---------
    
    Co-authored-by: Ibrahim El Nemr <70034333+ibrahimelnemr@users.noreply.github.com>
    Co-authored-by: Maher Khalil <themaherkhalil@gmail.com>
    
    * feat: new reactor to loop through every page of a pdf and convert to an image (#1467)
    
    * fix: only returning the file names created (#1468)
    
    * fix: using this_content_block instead of tool_call (#1470)
    
    * modern way of get room options (#1469)
    
    * fix: modern way of get room options
    
    * fix: handle null
    
    * fix: fix test
    
    * Fix load module (#1462)
    
    * fix: load module looks at right folder
    
    * chore: adding execution insight to track which insight/user ran the command, args as Object to handle proper translation to python object syntax
    
    * chore: adding py in appFolder init
    
    ---------
    
    Co-authored-by: Maher Khalil <themaherkhalil@gmail.com>
    
    * feat: bedrock tool streaming, proper closing of process when socket terminates  (#1471)
    
    * fix: properly shutting off and releasing the process
    
    * feat: exposing streaming with tools on bedrock
    
    * test: added SecurityShareSessionUtils unit tests; fixed bug in AbstractSecurityUtilsUnitTests (#1466)
    
    Co-authored-by: Ryan Weiler <ryanweiler92@gmail.com>
    
    * 1412 security api user utils unit tests (#1472)
    
    * test: created test class
    
    * test: fixed tests, and added SecurityApiUserUtils unit tests
    
    ---------
    
    Co-authored-by: Ryan Weiler <ryanweiler92@gmail.com>
    
    * test: update to junit 6 (#1474)
    
    Co-authored-by: Ryan Weiler <ryanweiler92@gmail.com>
    
    * fix: proper validation checks in AbstractEngineFileReactor (#1475)
    
    * fix: proper check if user is not publisher
    
    * fix: admin only functionality check on creation of python function engine
    
    * fix: pushing compile fixes
    
    * feat: Added extracting selector logic
    
    * feat: Added skip step for replay
    
    * fix: Prompt and HTML Extraction enhancements
    
    * fix: session utility dynamic wait time update
    
    * moving session to user object
    
    * fix: remove outdated reactors
    
    * feat: handle multiple tabs
    
    * fix: add tab id in different reactors
    
    * feat: multiple tabs refactoring
    
    * fix: Refactor ReplayStep and session logic to return multiple tabs actions
    
    * fix: change timeout for clicks
    
    * fix: return first page title in replayer
    
    * fix: parameters
    
    * fix: separate wait for page from click action
    
    * Add step id + updateStep reactor
    
    * Update StepReactor
    
    * feat: create-MakePlaywrightMCPReactor
    
    * feat: add AddVisionContextReactor for playwright
    
    * feat: create-MakePlaywrightMCPReactor
    
    * Check for password fields + don't apply step in update input
    
    * fix: Use room.ask instead of model.ask for LLM calls
    
    * feat: update MakePlaywrightMCPReactor
    
    * Added session expiry logic
    
    * Propagate session expiry error in ReplayStep
    
    * feat: added DeleteTabReactor
    
    Signed-off-by: RawanAbdelkhalek <rawan.abdelkhaleq@gmail.com>
    
    * feat: added DeleteTabReactor
    
    Signed-off-by: RawanAbdelkhalek <rawan.abdelkhaleq@gmail.com>
    
    * feat: added GetAllSteps reactor
    
    Signed-off-by: RawanAbdelkhalek <rawan.abdelkhaleq@gmail.com>
    
    * fix: parent-child tab deletion handle
    
    Signed-off-by: RawanAbdelkhalek <rawan.abdelkhaleq@gmail.com>
    
    * feat: Support Context steps
    
    * fix: handle context step in get all steps reactor
    
    * feat: create ReplaySingleStepReactor
    
    * feat:Add selector matching utility function
    
    * Pause in case of Wait step
    
    * refactor: :new step attributs( shouldRu,n require, description)
    
    * fix: return coordinates and tab title
    
    * refactor: updateStepReactor() update with required, shouldRun, desc
    
    * init
    
    * shared browser context for user
    
    * Update ReplayStepReactor.java
    
    * Update ReplayStepReactor.java
    
    * fix: make new Step attributes nullable
    
    * fix: apply updated step
    
    * cleaning the code for the playwright package
    
    * add description for the checkNetworkIdle Reactor
    
    * update the playwright to use chromium instead of webkit
    
    we need to run playright in chromium in the dev env
    
    * Added roomId for generate steps reactor
    
    * Fix initializing playwright session in user
    
    * Create GetRoomConversationHistoryReactor.java
    
    * fix: update ai generated steps prompt
    
    * fix the package for the GetRoomConversationHistoryReactor
    
    * chore: code format and renaming classes to not conflict w/ other packages
    
    * refactor: only update step in step history - no playwright execution
    
    * fix: update class names
    
    ---------
    
    Signed-off-by: RawanAbdelkhalek <66391994+RawanAbdelkhalek@users.noreply.github.com>
    Signed-off-by: RawanAbdelkhalek <rawan.abdelkhaleq@gmail.com>
    Co-authored-by: Saleh, Anas <anassaleh1998@gmail.com>
    Co-authored-by: RawanAbdelkhalek <66391994+RawanAbdelkhalek@users.noreply.github.com>
    Co-authored-by: Tarek, Nada <nada.mohamed001@eng-st.cu.edu.eg>
    Co-authored-by: Maryam <maryamvictor22@gmail.com>
    Co-authored-by: Na-daT <nadatarek2710@gmail.com>
    Co-authored-by: Pasupathi Muniyappan <pasupathi.muniyappan@kanini.com>
    Co-authored-by: Ryan Weiler <ryanweiler92@gmail.com>
    Co-authored-by: Maher Khalil <themaherkhalil@gmail.com>
    Co-authored-by: tlokeshrao <tlokeshrao@deloitte.com>
    Co-authored-by: kunal0137 <kunal0137@gmail.com>
    Co-authored-by: KT Space <119169984+Varaham@users.noreply.github.com>
    Co-authored-by: Varaham <katchabi50@gmail.com>
    Co-authored-by: pmagudapathy <praveen.magudapathy@kanini.com>
    Co-authored-by: US\pkapaleeswaran <pkapaleeswaran@deloitte.com>
    Co-authored-by: Magudapathy <pmagudapathy@deloitte.com>
    Co-authored-by: Subhadeepghosh1 <116416780+Subhadeepghosh1@users.noreply.github.com>
    Co-authored-by: Anurag Jain <anurag91jain@gmail.com>
    Co-authored-by: kaviiKS <kavimugil09@gmail.com>
    Co-authored-by: kavks <Kavks@deloitte.com>
    Co-authored-by: rithvik-doshi <81876806+rithvik-doshi@users.noreply.github.com>
    Co-authored-by: Scott <seascott@deloitte.com>
    Co-authored-by: Sneha Kumari <115411589+snehakumari369@users.noreply.github.com>
    Co-authored-by: Kumari <skumari40@deloitte.com>
    Co-authored-by: Van Buren <tevanburen@deloitte.com>
    Co-authored-by: Rithvik Doshi <doshirithvik@gmail.com>
    Co-authored-by: shines-dev <shines@deloitte.com>
    Co-authored-by: resmas-tx <131498457+resmas-tx@users.noreply.github.com>
    Co-authored-by: Jeff Vitunac <jvitunac@gmail.com>
    Co-authored-by: Neel <neelneelneel@users.noreply.github.com>
    Co-authored-by: Gyllian Zuniga <93683626+ggaylor1@users.noreply.github.com>
    Co-authored-by: Adolfo Perera <adoperera@deloitte.com>
    Co-authored-by: adolfo-perera <141691649+adolfo-perera@users.noreply.github.com>
    Co-authored-by: roxyramos <113540659+roxyramos@users.noreply.github.com>
    Co-authored-by: ericgonzal8 <ericgonzalez8@deloitte.com>
    Co-authored-by: Ibrahim El Nemr <70034333+ibrahimelnemr@users.noreply.github.com>
    Co-authored-by: RawanAbdelkhalek <rawan.abdelkhaleq@gmail.com>
    Co-authored-by: mohamed270 <55027960+mohamed270@users.noreply.github.com>
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

    Labels

    None yet

    Projects

    None yet

    Development

    Successfully merging this pull request may close these issues.

    5 participants