Refactored all API endpoint classes from the ResourceTools namespace to the ApiEndpoints namespace for improved clarity and organization. Updated all references in ResourceServer to use the new namespace.
Added null checks for the 'path' parameter in CanHandle methods across all API endpoint classes to prevent potential NullReferenceExceptions. Also made the _apis list in ResourceServer readonly and updated a comment for clarity.
Updated the IApiEndpoint interface and all implementing endpoints to change the CanHandle method signature to accept both HttpListenerContext and path. This enables more advanced routing decisions based on the full HTTP request context. ResourceServer and all endpoint usages have been updated accordingly.
Expanded the IApiEndpoint interface to support advanced routing with a new CanHandle overload and improved documentation. Renamed internal variables in ResourceServer from _tools to _apis to better reflect their purpose and updated all related logic accordingly.
Corrects the logger assignment in ResourceServer to use the provided logger parameter instead of the uninitialized field. Also adds a commented-out log4net configuration line in AssemblyInfo.cs.
Added conditional compilation to initialize the logger with 'dev' in DEBUG builds and 'prod' otherwise. This ensures appropriate logging configuration based on the build environment.
Replaces the custom ICompatibleLogger and TraceLogger with log4net for logging, introducing LoggingBootstrap for environment-aware log4net initialization. Refactors all resource tools to use IApiEndpoint and moves them to the ApiEndpoints namespace. Updates project references, configuration, and adds a log4net.config for consistent logging setup.
Introduces a TraceError class for enhanced stack tracing and logging, and adds a __export__ utility to wrap functions with error handling and naming. Also adds a console.trace method and updates bootstrap.js to use the new main function structure.
The UseObject function now accepts an optional fallback callback, which is invoked if the main callback throws an error. This improves error handling and allows custom recovery logic.
Corrects type checking for callback and position parameters in app.js and pipe-ipc.js, ensuring proper function behavior. Also updates the version string in pipe-ipc.js to 0.1.26.
Enhanced UseObject to accept a custom dispose function, improving resource management flexibility. Updated pipe-ipc.js to utilize this feature, preventing unintended disposal in repositionObject and ensuring correct stream handling. Bumped module version to 0.1.25.
Expanded the 'availableModels' array for the 'friendiai' engine profile to include several new LLM models, increasing the range of supported models for inference.
Introduces support for the FriendIAI (LGAI-EXAONE) LLM engine, including its API endpoint, model configuration, request formatting, and response handling. Updates the version to 0.1.12 to reflect the new integration.
Modularized the deployment of base files, optional data files, and entrypoint in HandleTargetFilePath. Improved error handling and validation for file paths and extensions. Replaced the previous CopyDirectoryRecursive implementation with a new version supporting required/optional directories and simplified file copying logic.
Truncate the email body to a maximum of 2000 characters when adding it to the prompt context to reduce token usage and avoid sending overly large or sensitive content.
Updated the 'outlook_open_outlook_with_chatgpt' test to search emails by sender or recipient, collect email data, and generate a prompt for AI-based reply suggestions using OpenAI via the language-inference-engine. Improved logging, increased result count, and added full body previews for context.
Enhanced Outlook-related test implementations to include a body preview (first 160 characters) when listing or searching mails. Updated log messages for clarity and consistency.
Reworked Outlook.ItemsFiltered to support generic item sources and improved forEach logic. Enhanced code comments for clarity, added getClass to MailItem, and clarified filter implementations for Jet and DASL. This improves maintainability and interoperability of Outlook item filtering and searching.
Updated search methods to use appropriate Jet or DASL filters for sender and recipient queries, improving reliability and compatibility. Sender email equality now uses DASL display-from matching, and legacy filter names are preserved for compatibility.
Updated Outlook search methods to use DASL filters for recipient searches and introduced a new ItemsMerged class to combine results from multiple Restrict calls. Cleaned up comments and improved clarity in filter functions, ensuring sender and recipient searches are handled separately and merged in JavaScript.
Separated Jet and DASL filter logic in Outlook.Search.filters to avoid mixing filter syntaxes. Added DASL-specific escaping and recipient filter functions, and provided clear helpers for sender and recipient filters in both Jet and DASL. This improves clarity and prevents errors when constructing Outlook search queries.
Added 'var Office = require("lib/msoffice");' at the start of each Outlook-related test function in testloader.js to ensure the Office module is available within each function's scope.
Replaced usage of the old Outlook API with the new Office.Outlook API throughout test implementations. Updated object instantiations, method calls, and type checks to use the Office.Outlook namespace for improved clarity and maintainability.
Introduced new Outlook-related test implementations in testloader.js, including session opening, inbox listing, mail body reading, sender/recipient search, draft creation, and an end-to-end automation test. Updated corresponding test IDs in data/test-msoffice.json to match the new function names for consistency.
Added multiple test cases for Microsoft Outlook including session management, mail reading, searching, and draft creation. Updated existing test descriptions from Korean to English for consistency and clarity.
Introduces multiple search helper methods to the Outlook class, including sender/recipient/subject filters and date-based queries. Adds detailed logging for MAPI session management and folder selection. Implements ItemsFiltered for predicate-based filtering and refactors folder path resolution for improved robustness.
Introduces Outlook integration in msoffice.js, including folder navigation, item access, and mail operations. Updates filetypes.json to include Outlook-related file extensions and types for improved compatibility.