Commit graph

3101 commits

Author SHA1 Message Date
Max
cfde900ada Refactor MCP server configuration and enhance Assistant functionality
- Updated MCP server configuration to support advanced formats, including tools and resources.
- Refactored the Assistant's Stream method for improved readability and maintainability, adding clear section comments.
- Enhanced error handling and logging for better traceability during streaming operations.
- Removed deprecated methods and streamlined MCP server handling in tests to ensure robust functionality and validation.
2025-11-29 10:04:19 +08:00
Max
a0483bac5d Refactor Assistant streaming logic and remove MCP hook
- Simplified the Stream method by extracting capability initialization into a separate function, improving readability and maintainability.
- Enhanced error handling by centralizing trace logging for failures and history tracking.
- Removed the MCP hook implementation as it was no longer needed, streamlining the codebase.
- Updated agent trace handling to ensure consistent logging of agent output and errors.
2025-11-29 09:13:18 +08:00
Max
e3fde0aa6c Enhance memory leak tests and performance reporting in stress tests
- Added context release calls in multiple test cases to ensure proper resource cleanup and prevent memory leaks.
- Updated performance thresholds in memory leak tests, increasing acceptable growth per iteration from 10KB to 15KB to account for overhead.
- Improved validation checks in stress tests to ensure response integrity and metadata accuracy, enhancing overall test robustness.
- Refactored performance report for clarity, consolidating key metrics and findings for better readability.
2025-11-28 21:09:27 +08:00
Max
125c32a0b5 Improve MCP loading process by verifying directory existence before file operations
- Added a check to confirm the existence of the 'mcps' directory prior to loading MCP files, enhancing error handling and preventing unnecessary attempts to load from a non-existent directory.
- Updated error handling to ensure that any issues encountered during the loading process are logged appropriately.
2025-11-28 19:56:16 +08:00
Max
36e3334058 Enhance MCP loading functionality by checking for directory existence
- Added a check to verify if the 'mcps' directory exists before attempting to load MCP files, improving error handling and preventing unnecessary operations.
- Updated the error handling in the MCP loading function to ensure robustness in the application flow.
2025-11-28 19:53:48 +08:00
Max
8bf128e3ba Refactor stress test and i18n translations for improved clarity and consistency
- Cleaned up whitespace in the realworld_stress_test.go file to enhance readability.
- Updated i18n translations for MCP tool operations, ensuring consistent formatting and clarity in both English and Chinese descriptions.
2025-11-28 19:37:17 +08:00
Max
8dedd93a90 Remove deprecated agent_test.go and mcp package files; refactor context and trace handling for improved functionality.
- Deleted agent_test.go to streamline testing structure.
- Removed mcp package and its related fetch and search files to simplify the codebase.
- Enhanced context handling in jsapi_test.go and jsapi.go for better integration with JavaScript.
- Introduced no-op objects for Trace and Node to handle uninitialized states gracefully.
- Updated i18n translations to include new MCP-related labels and descriptions.
2025-11-28 19:26:33 +08:00
Max
0eed12165f Update dependencies in go.mod and go.sum
- Upgraded jsonschema from v0.5.2 to v0.6.1 for improved functionality.
- Updated go-json-experiment/json from a specific commit to a newer version for better compatibility.
- Added jsonpointer v0.4.6 and updated messageformat-go to v0.4.6 to ensure all dependencies are up-to-date and functioning correctly.
2025-11-27 21:09:14 +08:00
Max
55f7d03458 Enhance state management with safeSend method to prevent panics on closed channels
- Introduced safeSend method to handle context cancellation and prevent panics when sending commands to state command channel.
- Updated existing state management methods to utilize safeSend, ensuring robust handling of command sending in various states.
- Improved overall stability of state management by addressing potential race conditions and channel closure issues.
2025-11-26 19:45:22 +08:00
Max
17b71ee4cc Refactor message handling to support individual message lifecycle events
- Replaced group-related event types with message-specific types, enhancing clarity in event management.
- Updated stream handling functions to utilize new message start and end events, improving the granularity of message tracking.
- Refactored context management to integrate a context-scoped ID generator for unique message identifiers.
- Removed deprecated group handling methods and streamlined message processing logic.
- Updated tests and documentation to reflect changes in message handling and ensure proper functionality.
2025-11-26 19:03:47 +08:00
Max
ef49827faf Refactor message handling for improved streaming and event management
- Updated message structures to replace 'StreamStartData' and 'StreamEndData' with 'EventStreamStartData' and 'EventStreamEndData' for better clarity and consistency.
- Introduced 'EventMessageStartData' and 'EventMessageEndData' to represent individual message lifecycle events, enhancing the granularity of message tracking.
- Refactored the 'streamState' and 'groupTracker' to utilize the new message structures, improving the organization and handling of streaming events.
- Enhanced the context management by integrating an ID generator for unique message identifiers, facilitating better tracking of message sequences.
- Updated documentation and tests to reflect the new message structures and ensure proper functionality across the system.
2025-11-26 18:30:43 +08:00
Max
f0495ab990 Enhance streaming and grouping functionality in Assistant
- Introduced SendGroupStart and SendGroupEnd methods for better control over message grouping, allowing for automatic ID generation and event handling.
- Updated streamState structure to track group IDs, message sequences, and chunk counts, improving message organization during streaming.
- Refactored message handling to eliminate the 'done' field, signaling message completion through group_end events instead.
- Revised JSAPI documentation to reflect new methods and usage patterns, enhancing clarity for developers.
- Improved test cases to validate new group handling features and ensure proper functionality.
2025-11-26 11:00:52 +08:00
Max
afab9c2173 Update JSAPI documentation and examples for enhanced clarity and usage guidance
- Revised the JSAPI_OUTPUT.md to provide a comprehensive overview of Agent Hook functions and their usage.
- Added detailed examples for each hook function, demonstrating real-time messaging and error handling.
- Improved the structure and clarity of the documentation, ensuring users can easily understand how to implement and utilize the Context object methods.
- Removed deprecated sections and streamlined the content for better readability.
2025-11-26 09:00:39 +08:00
Max
673e36a7c9 Refactor: Decouple Output From Context 2025-11-25 22:08:00 +08:00
Max
824757aec7 Register jsapi output agent in main.go for enhanced output handling 2025-11-25 18:09:16 +08:00
Max
fb7799f187 Add user input message type and associated structures for frontend display
- Introduced a new message type `user_input` to handle user input specifically for frontend display.
- Defined `UserInputProps` structure to standardize the properties of user input messages, including content, role, and name.
- Implemented `NewUserInputMessage` function to facilitate the creation of user input messages.
- Updated built-in type checks to include the new user input type, ensuring compatibility across the system.
2025-11-25 16:29:44 +08:00
Max
130d765ec7 Enhance stream data structures in Assistant for improved context and metadata handling
- Added Metadata field to StreamStartData and StreamEndData structs to facilitate passing additional context information.
- Updated sendAgentStreamStart and sendAgentStreamEnd methods to include new fields for better traceability and context management during streaming events.
- Enhanced the overall structure of stream data to support more comprehensive event tracking and context sharing.
2025-11-25 11:11:43 +08:00
Max
bc3dd567b5 Refactor assistant settings to use 'Uses' instead of 'Use' for improved clarity
- Updated the Load function and API handlers to replace 'Use' with 'Uses' for assistant configuration, enhancing consistency across the codebase.
- Modified related structures and functions to reflect the new naming convention, ensuring better alignment with the intended functionality.
- Added a new Skip struct to manage request skip configurations, improving request handling flexibility.
- Implemented tests for the GetSkip function to validate skip parameter extraction from both request body and query parameters.
2025-11-24 18:34:00 +08:00
Max
b1d19a2d79 Enhance message building logic in Assistant to prioritize prompts
- Updated the buildMessages function to include prompts at the beginning of the final message list, ensuring they take precedence over createResponse.Messages and input messages.
- Improved comments for clarity on message priority handling, enhancing maintainability and understanding of the message construction process.
2025-11-24 17:21:42 +08:00
Max
1c11690a65 Enhance interrupt test clarity by specifying empty messages for force interrupts
- Updated the test case for force interrupts to clarify that empty messages indicate pure cancellation.
- Improved log messages to reflect the change in behavior, ensuring better understanding of context cancellation during tests.
2025-11-24 12:15:14 +08:00
Max
38e8397527 Refine interrupt handling and streamline completion request validation
- Updated the interrupt controller to cancel the context only for force interrupts with no messages, enhancing clarity in cancellation logic.
- Removed unnecessary debug print statements from the completion request handling, improving code cleanliness and performance.
- Allowed empty messages for force interrupts, providing flexibility in cancellation scenarios without requiring additional messages.
2025-11-24 12:01:43 +08:00
Max
ab6fd8db09 Refactor completion request validation and enhance stream handling for real-time output
- Updated the completion request parsing logic to make the model field optional, allowing for better flexibility in handling requests.
- Enhanced the stream end handling by adding JSON parsing for stream end data and sending a structured message to the frontend.
- Modified the output writer to format data as Server-Sent Events (SSE) and ensured immediate flushing for real-time streaming in both CUI and OpenAI adapters.
2025-11-23 17:09:30 +08:00
Max
d973686760 Implement temporary mock SID for chat handling and comment out userID retrieval in chat queries
- Added a temporary mock SID value in the handleChat, handleChatList, and handleChatLatest functions to facilitate testing.
- Commented out userID retrieval in GetChat, GetChatWithFilter, and getChatsWithFilter methods to simplify query logic during development.
- Updated GetHistory method to comment out userID usage, maintaining consistency across chat-related functionalities.
2025-11-23 09:55:04 +08:00
Max
b98dc53acb Update dependencies in go.mod and go.sum for improved compatibility and security
- Upgraded golang.org/x/crypto from v0.41.0 to v0.45.0
- Upgraded golang.org/x/net from v0.43.0 to v0.47.0
- Upgraded golang.org/x/text from v0.29.0 to v0.31.0
- Upgraded golang.org/x/mod from v0.27.0 to v0.29.0
- Upgraded golang.org/x/sync from v0.17.0 to v0.18.0
- Upgraded golang.org/x/sys from v0.35.0 to v0.38.0
- Upgraded golang.org/x/tools from v0.36.0 to v0.38.0
2025-11-22 18:22:32 +08:00
Max
7285972aa9 Add endpoint to append messages to running completions
- Introduced a new POST endpoint `/completions/:context_id/append` to allow appending messages to ongoing chat completions.
- Implemented `GinAppendMessages` function to handle request validation, including context ID and message requirements.
- Added `AppendMessagesRequest` struct to define the request body format, ensuring proper handling of interrupt types and messages.
- Enhanced error responses for invalid requests to improve user feedback and debugging capabilities.
2025-11-22 18:15:40 +08:00
Max
ea167b35a7 Enhance response structure and stream start data in Assistant for improved context handling
- Updated the Response struct to include ContextID, RequestID, ChatID, and AssistantID for better traceability and context management.
- Modified the Stream method to return the new fields in the response, enhancing the output for client interactions.
- Added ContextID and ChatID to the StreamStartData struct to improve event tracking during streaming requests.
2025-11-22 17:32:51 +08:00
Max
21c0ec5034 Enhance Assistant's Stream method and context handling for improved traceability and output management
- Refactored the Stream method to retrieve connector capabilities early, allowing output adapters to utilize them effectively.
- Introduced a new Info method in the Assistant to provide structured assistant information, enhancing context accessibility.
- Updated StreamStartData to include additional fields such as ChatID and Assistant info for better event tracking.
- Improved error handling in the Stream method to ensure robust management of connector retrieval failures.
- Enhanced internationalization support for stream event messages, providing localized output for different clients.
2025-11-22 11:14:49 +08:00
Max
a49695e906 Refactor interrupt handling and enhance logging in Assistant and Context components
- Updated the interrupt controller to accept context IDs during initialization, improving traceability of interrupt signals.
- Enhanced logging in the Assistant's Stream method to provide detailed trace information for stream lifecycle events.
- Refactored context release logic to improve cleanup processes and added logging for context management.
- Adjusted test cases to align with the new interrupt handling and logging structure, ensuring robust functionality and traceability.
2025-11-21 20:52:10 +08:00
Max
c4df6e51c1 Fix indentation in i18n translation fallback logic and trace manager closing bracket for improved readability 2025-11-21 17:33:18 +08:00
Max
e781e8f591 Refactor trace node management to support multiple parents and enhance type handling
- Updated the TraceNode structure to allow multiple parent IDs, facilitating implicit joins in trace management.
- Enhanced the TraceNodeOption to include a type field for better categorization of nodes.
- Refactored related methods in the trace manager and node handling to accommodate the new parent structure and type field.
- Improved test coverage for trace node creation and retrieval, ensuring robust handling of the new multi-parent functionality.
2025-11-21 17:33:00 +08:00
Max
30778bbf2f Enhance internationalization support and logging in Assistant and LLM components
- Integrated i18n translations for trace logging messages in the Assistant's Stream method, improving localization for user-facing messages.
- Updated logging in the OpenAI provider and CUI writer to utilize i18n for error messages, enhancing clarity and consistency across different locales.
- Added new embedded template handling in the i18n package, allowing for more flexible message formatting with variable substitutions.
- Improved test coverage for i18n functionalities, ensuring robust handling of various translation scenarios and edge cases.
2025-11-21 11:17:49 +08:00
Max
fe0d93fa04 Update event field names in tests and types for consistency with API specifications
- Changed event field names in tests from "Type", "TraceID", and "Timestamp" to "type", "trace_id", and "timestamp" to align with the updated API format.
- Updated struct field tags in types.go to reflect the new naming conventions, ensuring consistency across the codebase and improving JSON serialization.
2025-11-21 09:34:57 +08:00
Max
c6b9ef500c Refactor logging and formatting in OpenAI provider and test files
- Adjusted indentation and formatting in the OpenAI provider's logging statements to enhance readability and maintainability.
- Cleaned up test files by removing unnecessary blank lines, improving overall code clarity and consistency.
- Ensured that logging for request and response details is properly structured for better debugging capabilities.
2025-11-20 18:16:32 +08:00
Max
71cd7b9993 Enhance trace management functionality and logging capabilities
- Introduced new methods in the trace manager for retrieving events, trace info, nodes, logs, and spaces from storage, improving data access and management.
- Updated the driver implementations to support loading and unarchiving traces, ensuring robust handling of trace data.
- Enhanced error handling and logging in the OpenAI provider to facilitate better debugging and traceability of requests and responses.
- Added a new TraceSpaceData struct to encapsulate space metadata along with key-value data for improved API responses.
2025-11-20 18:15:48 +08:00
Max
870691e3d4 Implement trace archiving and management features
- Added functionality to archive traces by compressing and marking them as read-only, enhancing data management capabilities.
- Introduced methods for checking if a trace is archived and for unarchiving traces, allowing for better control over trace data.
- Updated the trace manager and driver interfaces to support archiving operations, ensuring consistency across components.
- Enhanced error handling for operations on archived traces, preventing modifications to read-only data.
- Improved trace metadata structure to include archived status and timestamp, facilitating better trace lifecycle management.
2025-11-20 12:12:29 +08:00
Max
396a37d32f Refactor persistNode struct for improved readability and consistency in driver.go
- Adjusted the formatting of the persistNode struct fields to enhance code clarity by aligning the field definitions.
- Maintained the existing functionality while improving the overall structure for better maintainability.
2025-11-20 11:42:06 +08:00
Max
19b4c7354f Enhance output handling and trace management in Assistant's Stream method
- Updated the Assistant's Stream method to set output for the agent node and conditionally close the output writer based on call depth, improving resource management.
- Integrated detailed trace logging for output closure events, distinguishing between root and nested calls to enhance debugging capabilities.
- Refactored trace creation in context to utilize authorized information for better trace context management.
- Introduced a lightweight persistNode structure for efficient storage of trace nodes, optimizing the save and load operations in local and store drivers.
2025-11-20 11:36:44 +08:00
Max
0c30909022 Refactor TraceLog struct for improved readability
- Adjusted formatting of the TraceLog struct in driver.go to enhance code clarity and maintainability by aligning comments and struct fields.
2025-11-20 10:45:43 +08:00
Max
465e45828b Enhance trace logging and error handling across components
- Integrated trace management into the Assistant's Stream method, allowing for detailed logging of processing steps and errors.
- Improved error handling in the OpenAI stream and post methods, adding trace logs for retries and failures.
- Enhanced CUI and OpenAI writers to log message adaptation and sending errors, improving debugging capabilities.
- Updated trace manager to use milliseconds for timestamps, ensuring consistency across the trace system.
- Refactored log methods in the trace node to streamline logging and broadcasting of events.
2025-11-20 10:45:26 +08:00
Max
eff70ab07d Implement interrupt handling for context management
- Added an interrupt controller to manage user interrupts during streaming operations.
- Introduced methods for registering and unregistering contexts in a global registry to facilitate interrupt handling.
- Enhanced the Assistant's Stream method to check for force interrupts and handle them appropriately.
- Updated context creation to include unique IDs for better identification during interrupts.
- Implemented logic for graceful and force interrupts, allowing for flexible response to user signals.
2025-11-19 18:41:31 +08:00
Max
c25fbb22d7 Add trace management to context and enhance configuration options
- Introduced a trace manager in the context struct for lazy initialization and management of trace operations.
- Implemented the Trace method in the context to facilitate trace object creation and management within JavaScript.
- Enhanced configuration options for trace drivers, including defaults for local and store drivers, and added path and prefix settings.
- Updated related tests to verify the functionality of the new trace management features.
2025-11-19 12:27:42 +08:00
Max
251b0591a2 Refactor test files for improved readability and consistency
- Adjusted indentation and formatting in `trace_concurrent_test.go` and `trace_node_test.go` to enhance code clarity.
- Ensured consistent structure in test cases by aligning the setup and assertions, improving overall maintainability.
2025-11-18 19:17:27 +08:00
Max
47a35b7e63 Refactor trace manager for improved state management and concurrency
- Replaced the previous node and space management with a channel-based state management system in `manager.go`, enhancing concurrency handling.
- Implemented methods for loading and saving trace updates to disk in `local/driver.go` and `store/driver.go`, allowing for persistent state across sessions.
- Updated subscription handling in `subscription.go` to streamline the process of broadcasting updates to active subscribers.
- Enhanced node and trace status management, including cancellation and completion states, to provide better control over trace execution.
- Adjusted related tests to ensure compatibility with the new state management approach.
2025-11-18 18:08:20 +08:00
Max
a7210f027f Refactor trace package tests for improved readability
- Removed unnecessary blank lines in multiple test files to enhance code clarity and maintainability.
- Adjusted formatting in `subscription.go`, `trace_bench_test.go`, `trace_concurrent_test.go`, `trace_mem_test.go`, `trace_node_test.go`, `trace_space_test.go`, and `trace_subscription_test.go` for consistency.
2025-11-18 15:48:21 +08:00
Max
3a46d98663 Enhance trace package functionality and improve concurrency handling
- Updated benchmark and memory leak detection commands in the Makefile to include both agent and trace components.
- Refactored the manager struct in `manager.go` to support cancellable contexts and added per-space locks for improved concurrency safety.
- Enhanced subscription handling in `subscription.go` to only broadcast updates if there are active subscribers, preventing unnecessary operations.
- Implemented comprehensive disk operations in `local/driver.go` and `store/driver.go` for managing trace nodes, spaces, and logs, including loading, saving, and deleting functionalities.
- Improved README documentation to clarify driver configurations and usage examples for trace management.
2025-11-18 15:47:44 +08:00
Max
b582f0c685 Refactor trace package structure and improve trace ID validation
- Updated trace ID validation in `TestEnterStack_RootCreation` to ensure it is at least 8 digits long.
- Changed import path for the trace package in `stack.go` for consistency.
- Removed the entire `manager.go`, `node.go`, `space.go`, `subscription.go`, `trace.go`, `local/driver.go`, `store/driver.go`, and related types and events files to streamline the trace package, focusing on essential functionality.
2025-11-18 14:09:28 +08:00
Max
c02fbcb63e Remove unnecessary blank line in driver.go for improved code readability 2025-11-18 11:50:26 +08:00
Max
652035311d Implement trace management system with local and store drivers
- Introduced a global trace registry to manage active traces with thread-safe access.
- Added support for two storage drivers: Local (file-based) and Store (Gou store).
- Enhanced trace ID generation to include a date prefix and improved uniqueness.
- Implemented functions for creating, loading, and releasing traces, along with checking their existence in both the registry and persistent storage.
- Added functionality to retrieve trace metadata and list active traces, improving trace management capabilities.
2025-11-18 11:50:05 +08:00
Max
a824670def Enhance streaming message handling in DefaultStreamHandler
- Added a new field to track the current message type (text, thinking, tool_call) in the streamState struct.
- Updated message handling methods to set the current message type appropriately.
- Modified the group end handling to use the tracked message type when sending messages, ensuring accurate type representation.
- Enhanced unit tests to verify the correct handling of group end events and their associated types.
2025-11-17 15:17:48 +08:00
Max
796f6437ef Update ModelCapabilities to support flexible vision input handling
- Changed the Vision field in ModelCapabilities from bool to interface{} to accommodate both boolean values and VisionFormat strings.
- Modified the getConnectorCapabilities function to directly assign the Vision capability based on the updated model configuration, enhancing compatibility with various vision input formats.
2025-11-17 10:59:46 +08:00