* adding youtube tool
* refactor: use short `url` param instead of `videoUrl`
* refactor: move API key retrieval to a separate credentials module
* refactor: remove unnecessary `isEdited` message property
* refactor: remove unnecessary `isEdited` message property pt. 2
* refactor: YouTube Tool with new `tool()` generator, handle tools already created by new `tool` generator
* fix: only reset request data for multi-convo messages
* refactor: enhance YouTube tool by adding transcript parsing and returning structured JSON responses
* refactor: update transcript parsing to handle raw response and clean up text output
* feat: support toolkits and refactor YouTube tool as a toolkit for better LLM usage
* refactor: remove unused OpenAPI specs and streamline tools transformation in loadAsyncEndpoints
* refactor: implement manifestToolMap for better tool management and streamline authentication handling
* feat: support toolkits for assistants
* refactor: rename loadedTools to toolDefinitions for clarity in PluginController and assistant controllers
* feat: complete support of toolkits for assistants
---------
Co-authored-by: Danilo Pejakovic <danilo.pejakovic@leoninestudios.com>
* chore: remove unused code
* refactor: Update NewChatButtonIcon component to use JSX syntax
The NewChatButtonIcon component in the Nav folder has been updated to use JSX syntax instead of calling the Icon function directly. This change improves code readability and maintainability.
* remove use memo
* refactor: allow passing `select` to messages db query
* fix: initial fix for non-recursive messages
* ci: first pass, importers test rewrite
* fix(groupConversationsByDate): handle edge case of conversation.updatedAt being null
* fix: correctly handle non-recursive uploads
* feat: imports non-recursive conversations with branches correctly
* feat: support retaining original options on import
* refactor: Allow `messageTree` field for Import of non-recursive conversations