- Renamed `KortixMCP` to `KortixMCPTools` across the SDK for consistency.
- Updated import statements in relevant files to reflect the new class name.
- Modified the `create` method in `KortixAgent` to use `mcp_tools` instead of `tools`, enhancing clarity in tool management.
- Added `fastmcp` as a dependency in `pyproject.toml` and updated the lock file accordingly.
- Refactored the `KortixMCP` class constructor to directly instantiate `FastMCPClient` and modified the tool management logic to handle cases where allowed tools are not specified.
- Improved code readability by renaming variables and streamlining the initialization process.
- Updated the constructor of `KortixMCP` to accept a `FastMCPClient` and a list of allowed tools.
- Modified the `initialize` method to retrieve tools from the new client and filter enabled tools based on the allowed list.
- Improved code readability and organization by renaming variables for clarity.
- Cleaned up whitespace throughout the `print_stream` function for improved readability.
- Standardized output formatting for function call detection and tool result messages, enhancing clarity in logs.
- Ensured consistent handling of empty lines and message content, contributing to better overall code quality.
- Introduced chunk accumulation for assistant messages to handle multi-part responses more effectively.
- Implemented a function to rebuild full text from sorted chunks, improving the accuracy of message content.
- Added state management for parsing function calls, allowing detection and handling of tool usage within messages.
- Updated output formatting to provide clearer logs for assistant messages and tool interactions.
- Modified the `print_stream` function to include a check for `message_id` before processing assistant messages, ensuring only valid messages are printed.
- Changed output labels from `[MESSAGE]` to `[ASSISTANT]` for clarity in logs, improving the distinction between different message types.
- Updated the `print_stream` function to utilize a new utility function `try_parse_json` for safer JSON parsing, improving error handling for invalid input.
- Enhanced output formatting for various event types, including status updates, assistant messages, and tool execution results, ensuring clearer and more informative logs.
- Added checks for empty content and improved handling of parsing failures to maintain robustness in stream processing.
- Introduced a new utility function `print_stream` in `utils.py` to process and print events from an asynchronous string generator.
- The function handles various event types including status updates, assistant responses, and tool execution results, providing formatted output for each case.
- Added error handling for JSON parsing to ensure robustness against invalid input.
- Added timeout settings to the `stream_from_url` function to prevent ReadTimeout errors during streaming operations.
- Configured connection, read, write, and pool timeouts for improved reliability in data retrieval.
- Introduced a new `stream.py` module for processing streamed data, including classes for handling different message types.
- Added a local key-value store for managing agent and thread IDs.
- Implemented a real-time stream processor with callbacks for handling various events.
- Created example scripts for testing the streaming functionality and integrated weather tool.
- Updated import statements for better organization and clarity.
- Updated import statements to use relative paths for better module resolution.
- Deleted the empty `api` and `kortix` directories to clean up the structure.
- Introduced the `Kortix` class to manage agents and threads, enhancing the SDK's core functionality.
- Added a new API keys service with endpoints for creating, listing, revoking, and deleting API keys.
- Integrated API key validation and caching for performance.
- Updated backend configuration to include API key secret and throttling settings.
- Created frontend components for managing API keys, including a user interface for creating and displaying keys.
- Introduced a new database migration for the API keys table with necessary constraints and security policies.
- Enhanced authentication methods to support API key usage alongside JWT.
- Introduced a new local key-value store configuration file to manage agent and thread IDs.
- Updated the weather retrieval tool to return a different weather condition.
- Integrated a real-time stream processor for improved message handling and status updates in the main function.
- Updated the `create_thread` endpoint to set a default name if none is provided.
- Modified the `Agent` class to use a dictionary for `agentpress_tools` instead of a custom type.
- Improved the `LocalKVStore` initialization to use a hidden filename.
- Added a new weather retrieval tool to the MCP.
- Updated agent and thread setup in the main function for better clarity and functionality.
- Refactored message handling in the `ThreadsClient` to use query parameters for message posting.
- Introduced the `Kortix` class to manage agents and threads with API integration.
- Enhanced the `Agent` class to support running agents with prompts and managing threads.
- Added streaming capabilities for real-time message processing.
- Created example scripts for testing agent functionality and stream processing.
- Updated models and tools to improve integration and usability.
- Moved existing components to a new `sdk` directory for better organization.
- Introduced new API structure for agent and thread management.
- Added models for tools and messages to enhance functionality.
- Implemented a local key-value store for persistent data management.
- Updated README and project files to reflect new structure and usage.