Commit graph

3990 commits

Author SHA1 Message Date
Max
a80fc9a7ff
Merge pull request #1530 from trheyi/main
feat: LLM audio/connector/key enhancements, Agent role/tool/sandbox improvements, Image tools, and various fixes
2026-05-06 11:09:51 +08:00
Max
af0d4edd74 feat(image): add image generation and enhanced reading capabilities
- Introduced `image_generate` tool for generating images from text prompts, with options for specifying output file paths and image dimensions.
- Updated `image_read` functionality to allow optional provider specification for enhanced image analysis.
- Implemented new `GenerateImage` method in the LLM API for seamless integration of image generation capabilities.
- Enhanced documentation to include detailed usage examples for both image reading and generation tools.
- Updated tests to validate new image generation features and ensure robust functionality across image tools.
2026-05-06 10:59:35 +08:00
Max
20fc9c24df feat(image): introduce image reading and analysis tools
- Added `image_read` tool for reading and analyzing images using vision-capable models, with a detailed input schema for image path, prompt, max size, and provider.
- Implemented `ReadImage` function to handle image processing and integration with vision models, returning descriptive text.
- Created comprehensive tests for image resizing, data URI handling, and various input scenarios to ensure robust functionality.
- Updated documentation to include usage examples and parameter descriptions for the new image tools.
2026-05-06 10:58:52 +08:00
Max
d6626b2a7e refactor(setup): update preference retrieval to user-scope only
- Modified the handleSetupStatus function to read user-specific preferences instead of merged settings, ensuring that personal preferences do not inherit from system or team scopes.
- This change enhances the accuracy of user preference handling in the setup status process.
2026-05-05 08:56:13 +08:00
Max
01daa783e0 feat(chat): improve error handling for chat operations
- Added centralized error handling for "not found" scenarios in GetChat, UpdateChat, DeleteChat, and GetMessages functions, enhancing user feedback for missing resources.
- Introduced isNotFoundError and respondNotFound utility functions to streamline error responses across chat-related operations.
- Updated the setting package to include new endpoints for setup status and user preferences, improving API functionality and user experience.
2026-05-04 21:53:26 +08:00
Max
cf0ebd5601 chore(license): remove deprecated commercial license documents
- Deleted the outdated COMMERCIAL_LICENSE.md and COMMERCIAL_LICENSE.zh-CN.md files, as they are no longer in effect.
- Removed the COMMERCIAL.md and COMMERCIAL.zh-CN.md files related to Yao OpenAPI commercial usage, streamlining licensing documentation.
- Updated LICENSE file to reflect changes in commercial usage terms and organization.
2026-05-04 18:43:07 +08:00
Max
2993b0b946 feat(messenger): enhance dynamic SMTP resolution and identity handling
- Implemented dynamic SMTP provider resolution based on user/team context, improving email sending capabilities.
- Updated the Send and SendT methods to utilize identity information from the context for dynamic provider selection.
- Refactored cloud encryption and decryption methods to delegate to the setting package, streamlining cryptographic operations.
- Enhanced team invitation email sending to include identity context, ensuring accurate user/team information is used.
- Removed obsolete crypto helper functions, simplifying the codebase and improving maintainability.
2026-05-04 18:15:21 +08:00
Max
54607e26b7 feat(agent): enhance image content handling and vision support
- Added support for processing image content in the agent, providing placeholder text when image parsing fails.
- Implemented a fallback mechanism to utilize vision tools for image analysis, improving the handling of image content.
- Updated tests to validate the new image handling behavior, ensuring correct responses when vision support is unavailable.
- Enhanced system prompts to guide users on using the new `image_read` tool for image analysis, improving user experience.
2026-05-04 13:46:30 +08:00
Max
222daaf645 fix(tests): update provider key handling in TestOwnerPrefixedIDs
- Modified the TestOwnerPrefixedIDs test to use ScopedKey for provider key generation, ensuring unique keys based on owner context.
- This change enhances the accuracy of tests related to provider management by preventing key collisions during test execution.
2026-05-03 21:46:55 +08:00
Max
960f47c238 feat(grpc): enhance MCP handler with gRPC authorization support
- Introduced grpcAuthProvider to adapt gRPC AuthorizedInfo for use in MCP process calls, enabling better authorization handling.
- Updated MCPListTools and MCPCallTool methods to include authorization information in tool calls, improving security and context awareness.
- Refactored fetch functions in webfetch to support Brightdata API endpoint configuration, enhancing flexibility in fetching HTML content.
- Improved fetchHTML and fetchRawHTML methods to prioritize Brightdata when configured, streamlining content retrieval processes.
- Added isHTMLContent utility function to determine response content type, enhancing the robustness of content handling in fetch operations.
2026-05-03 19:57:26 +08:00
Max
194faac9b7 feat(agent): enhance sandbox V2 initialization and role management
- Refactored the initSandboxV2 function to return a structured result, consolidating the runner, computer, configuration, cleanup function, loading message ID, and roles into a single return type.
- Updated the Stream method to utilize the new sandboxV2InitResult structure, improving clarity and reducing complexity in handling sandbox initialization.
- Introduced role management enhancements, allowing for pre-resolved role connectors to be passed through the request, streamlining connector resolution during execution.
- Adjusted various components to support the new roles structure, ensuring consistent handling across the agent's sandbox operations.
- Added logging for connector resolution and role management, improving diagnostics and traceability during sandbox execution.
- Updated .gitignore to include tools/TOOL-REGISTRATION.md for better project organization.
2026-05-03 19:11:29 +08:00
Max
7877797549 fix(tests): temporarily disable KB/DB search in tests
- Skipped tests related to KB/DB search functionality due to temporary unavailability.
- Updated test cases in chat_test.go, search_auth_integration_test.go, search_auto_full_test.go, and others to reflect this change.
- Adjusted search handling in search.go to limit search types to "web" only until KB/DB search is re-enabled.
2026-05-03 10:26:06 +08:00
Max
fb01a1c141 feat(agent): implement tool loop processing and enhance error handling
- Added support for tool loop processing when tool call responses are present and sandbox mode is disabled, improving the assistant's ability to handle complex tool interactions.
- Implemented fallback delegation to a loop fallback mechanism in case of tool loop execution failure, enhancing robustness in error scenarios.
- Updated the assistant message structure to include reasoning content, providing better context for generated responses.
- Enhanced error logging in tool call execution to include detailed content, improving diagnostics for tool call failures.
- Updated system configuration to include a new loop fallback agent, expanding the assistant's capabilities.
2026-05-02 21:42:55 +08:00
Max
7da06a4ae1 feat(search): refactor builtinSearch to utilize websearch tool and enhance context handling
- Updated the builtinSearch function to delegate search operations to the websearch tool, improving modularity and maintainability.
- Enhanced context handling by passing the agent context to builtinSearch, allowing for user and team identification during searches.
- Added a new DecryptValue function in cloud.go to streamline value decryption, delegating to the existing config.DecryptValue method.
- Updated .gitignore to include tools/README.md for better project organization.
2026-05-02 19:58:03 +08:00
Max
a5ca482d7c feat(llm): implement scoped key management for providers
- Introduced ScopedKey function to generate unique provider keys based on owner type (user/team) to prevent key collisions.
- Updated provider creation and management tests to utilize scoped keys, ensuring consistent key handling across different contexts.
- Refactored existing tests to validate the correct generation and retrieval of scoped keys, enhancing overall provider management reliability.
- Adjusted OpenAPI settings to reflect the use of scoped keys in provider operations, improving API consistency.
2026-05-02 15:30:39 +08:00
Max
756ff95d3f feat(llm): enhance capabilities management with embedding and image generation support
- Added support for embedding and image generation capabilities in the capabilitiesFromMap function.
- Updated the ToMap method to delegate to the canonical Capabilities.ToMap() method, simplifying the conversion process.
- Enhanced the capabilities handling in various components, including filters for non-chat models in OpenAPI settings.
- Introduced utility functions for filter checking and non-chat model identification, improving overall capabilities management.
2026-05-02 14:45:31 +08:00
Max
c5da1c1ba1 feat(agent): add heavy role support in system configuration and connector management
- Introduced a new "Heavy" role in the system configuration, allowing for complex reasoning tasks.
- Updated the initialization and environment resolution functions to handle the new Heavy role appropriately.
- Enhanced tests to validate the integration of the Heavy role, ensuring proper connector resolution and model handling.
- Adjusted OpenAPI settings to reflect the addition of the Heavy role, improving overall system capabilities.
2026-05-02 13:59:14 +08:00
Max
8c34aa12ef feat(llm): enhance connector handling and model configuration
- Integrated logging for connector resolution failures, providing clearer diagnostics during fallback scenarios.
- Simplified connector ID extraction in various components, ensuring accurate handling of model identifiers.
- Updated model configuration to support new parameters and capabilities, improving overall provider management.
- Enhanced OpenAPI settings to reflect changes in model options and connector behavior, ensuring better alignment with upstream API requirements.
2026-05-02 10:52:10 +08:00
Max
fa30898dee fix(tests): reduce timeout in TestProcessCall_Timeout_Short to 1 second
- Updated the timeout parameter in the TestProcessCall_Timeout_Short test to 1 second to ensure it accurately reflects expected behavior during LLM round-trip execution.
- This change aims to improve the reliability of the test by aligning the timeout with realistic processing times.
2026-05-01 15:37:17 +08:00
Max
1583e988f1 fix(llm): update connector ID handling for built-in providers
- Enhanced the extractConnectorID function to correctly return the connector ID for built-in providers without appending a model, preventing the creation of non-existent composite IDs.
- Improved logic for handling connector IDs based on provider source, ensuring accurate retrieval in various scenarios.
2026-05-01 14:19:02 +08:00
Max
9eef569e4b feat(agent): enhance system configuration and connector management
- Updated the system configuration to include new role-level defaults for Light, Vision, and Audio connectors.
- Refactored the resolveSystemConnector function to prioritize per-agent overrides, improving connector resolution logic.
- Enhanced LLMConnector integration across various components to streamline settings retrieval and capabilities management.
- Improved error handling and logging for connector-related operations, ensuring better diagnostics and user feedback.
2026-05-01 10:31:58 +08:00
Max
aa9632d67c fix(llm): update LLM provider retrieval to include optional parameter
- Modified the LLM provider retrieval functions to include an optional parameter for enhanced functionality.
- Updated the handleLLMProviderUpdate and handleLLMProviderTest functions to reflect this change, improving error handling and provider management.
2026-04-30 15:16:09 +08:00
Max
6f78f6066b feat(llm): refactor audio capabilities and enhance role management
- Replaced 'Voice' with 'Audio' in the system configuration and related tests to better reflect functionality.
- Introduced new methods for role management in the llmprovider, allowing for dynamic retrieval of roles based on user and team context.
- Updated the OpenAPI settings to support new role management endpoints and capabilities.
- Enhanced the handling of API keys in provider management, allowing for optional plain-text retrieval.
2026-04-30 12:33:05 +08:00
Max
d4553056ef
Merge pull request #1529 from trheyi/main
feat: add Settings, LLM, Search, SMTP, MCP, Sandbox module management endpoints
2026-04-29 19:26:25 +08:00
Max
a58cac6d5c fix(smtp): update address formatting in SMTP connection functions
- Replaced fmt.Sprintf with net.JoinHostPort for constructing the SMTP address in smtpValidateConnection and smtpSendTestEmail functions, improving address handling and ensuring proper formatting.
2026-04-29 18:57:36 +08:00
Max
bde4442ff6 feat(sandbox): add sandbox management endpoints and data structures
- Introduced new endpoints for managing sandbox operations, including GET, PUT, and POST methods for registry and image management.
- Added data structures for sandbox configuration and image details, enhancing the OpenAPI settings to support sandbox functionality.
- Updated Makefile to skip sandbox-related tests in CI, ensuring local execution only.
2026-04-29 18:47:38 +08:00
Max
3b642fea78 feat(mcp): add MCP server management endpoints
- Introduced new endpoints for managing MCP servers, including GET, POST, PUT, and DELETE methods for server operations.
- Organized routing under a new /mcp group to enhance endpoint management within the OpenAPI settings.
2026-04-29 14:53:00 +08:00
Max
13e16c7099 feat(smtp): add SMTP configuration and management endpoints
- Introduced new endpoints for managing SMTP settings, including GET, PUT, and POST methods for retrieving, updating, and testing SMTP configurations.
- Added data structures for SMTP presets and configuration, enhancing the OpenAPI settings to support email functionality.
- Organized routing under a new /smtp group for better endpoint management.
2026-04-29 12:21:19 +08:00
Max
c3040559e6 feat(search): add search provider endpoints and data structures
- Introduced new endpoints for managing search providers, including GET, PUT, and POST methods for testing and updating providers.
- Added data structures for search provider configuration, presets, and tool assignments to support the new functionality.
- Enhanced the OpenAPI settings to accommodate the new search-related features.
2026-04-29 11:29:03 +08:00
Max
1efa87e50a feat(llm): add Yao Agents preset and LLM management endpoints
- Introduced a new preset for Yao Agents in presets.yml, including configuration details such as API URL and capabilities.
- Added new LLM management endpoints in the OpenAPI settings, allowing for CRUD operations on LLM providers and roles.
- Enhanced data structures to support the new LLM functionality, including LLMPageData for aggregated responses.
2026-04-29 10:28:07 +08:00
Max
bba43c369a feat(setting): implement cloud settings endpoints and owner verification
- Added new endpoints for managing cloud settings under /setting/cloud, including GET, PUT, and POST methods.
- Introduced owner verification logic to ensure only team owners can modify settings, utilizing caching for efficiency.
- Enhanced data structures for cloud settings responses, including CloudRegion and CloudPageData types.
- Refactored existing functions to integrate new owner verification and error handling mechanisms.
2026-04-28 21:20:43 +08:00
Max
3bc15b1039 feat(openapi): add unified /setting/* endpoints for OpenAPI
- Introduced handlers for the new /setting/* endpoints in the OpenAPI module.
- Updated import statements to include the new setting package for better organization.
- Enhanced routing capabilities to support the new settings functionality.
2026-04-28 19:33:27 +08:00
Max
934424f9ea feat(load): add initialization and reloading for Setting Registry
- Implemented initialization for the Setting Registry during the Load process.
- Added reload functionality to refresh the Setting Registry as needed.
- Enhanced error handling to capture and report issues during initialization and reloading.
2026-04-28 15:08:22 +08:00
Max
654e7ee567 feat(load): initialize and reload LLM Provider and MCP Client Registries
- Added initialization for LLM Provider and MCP Client Registries during the Load process.
- Implemented reload functionality for both registries to ensure they are properly refreshed when needed.
- Enhanced error handling to capture and report issues during initialization and reloading of the registries.
2026-04-28 14:33:10 +08:00
Max
11317c0f86
Merge pull request #1528 from trheyi/main
feat(logging): enhance logger output control and add trace diagnostics
2026-04-28 10:38:03 +08:00
Max
9326f4b747 feat(logging): enhance logger output control and add trace diagnostics
- Updated logger methods to respect the new `config.Silent` flag, allowing suppression of console output in development mode.
- Refactored `buildTurnResponse` to utilize a shared `buildTrace` function for improved tool call association.
- Introduced JSON output capabilities in `OutputWriter` for detailed trace and duration reporting.
- Enhanced reporting mechanisms to include trace details in JSON and Markdown formats for better diagnostics.
- Added support for a new `Trace` structure to capture detailed execution information, including tool calls and completion data.
2026-04-28 10:37:04 +08:00
Max
72d7ed6f80
Merge pull request #1527 from trheyi/main
feat(sandbox): add opencode runner and enhance attachment processing
2026-04-25 11:12:35 +08:00
Max
04c3114344 feat(opencode): enhance platform-specific command handling and environment variable syntax
- Introduced `shellQuoteForPlatform` to build shell-safe command strings tailored for Windows and POSIX environments.
- Updated `buildSandboxEnvPrompt` to display the correct environment variable syntax based on the operating system.
- Refactored the command copying logic in the runner to use platform-aware commands for copying custom OpenCode tools.
- Removed outdated test scenarios related to the vision connector, streamlining the test suite.
2026-04-25 11:09:49 +08:00
Max
4b97a890fd feat(opencode): add tests for read.ts tool copying based on vision connector presence
- Implemented two new test scenarios: one to verify that read.ts is not copied when no vision connector is present, and another to confirm that it is copied when a vision connector is configured.
- Updated the runner logic to conditionally copy custom tools into the OpenCode global config directory based on the presence of a vision connector in the configuration.
2026-04-25 09:48:06 +08:00
Max
12e88943e9 feat(sandbox): add opencode runner and enhance attachment processing
- Registered new "opencode" and "opencode/cli" runners in the sandbox initialization.
- Updated the `runExecStep` function to use the computer's working directory and set the HOME environment variable.
- Refactored attachment processing in the Claude package to delegate to shared functionality, improving code maintainability.
2026-04-24 23:26:55 +08:00
Max
142c53889e
Merge pull request #1526 from trheyi/main
feat: sui backend script test and fix streamline release process
2026-04-24 09:13:34 +08:00
Max
105c3aae5b fix(workflows): streamline release process for Linux and macOS
- Removed the workflow_dispatch trigger from both release workflows to enforce tag-based releases.
- Added a mechanism to wait for draft releases before uploading assets, ensuring all necessary files are present.
- Implemented asset upload to GitHub releases and conditional publishing based on asset completeness.
- Enhanced SHA256 checksum generation for both production and development binaries.
2026-04-24 09:11:29 +08:00
Max
a1e745ec90 chore(tests): update model versions in Anthropic tests and add Test command to SUI
- Updated testConnectorID comment and model version in TestAnthropicStreamRetry to reflect the latest model (Claude Haiku 4.5).
- Added Test command to the SUI command set with associated flags for improved testing capabilities.
2026-04-24 08:45:19 +08:00
Max
9ff123433a
Merge pull request #1525 from trheyi/main
feat(doc): add yao doc CLI commands and YAML documentation
2026-04-23 22:30:02 +08:00
Max
c47d593c58 chore(deps): update spdystream dependency to v0.5.1 and adjust model version in tests
- Updated the spdystream dependency version from v0.5.0 to v0.5.1 in go.mod and go.sum files.
- Modified testConnectorID comment to reflect the updated model version (Claude Haiku 3.5).
- Updated model version in TestAnthropicStreamRetry to use "claude-3-5-haiku-20241022".
2026-04-23 22:27:39 +08:00
Max
2c11a647ba refactor(logs): remove unnecessary comment in query order for log listing
- Cleaned up comments in ListLogs and ListExecutionLogs functions to enhance code clarity without altering functionality.
2026-04-23 21:39:08 +08:00
Max
efc84fbb97 feat(doc): add yao doc CLI commands and YAML documentation for all packages
Implement yao doc process list/inspect/validate and yao doc runtime
list/inspect/validate commands. Validate uses engine addressing logic
(process.Of) and checks dynamic-ID group registries (model, store, fs,
task, schedule) to verify resources actually exist.

- cmd/doc/: CLI command tree with process and runtime subcommands
- cmd/root.go: wire docCmd into rootCmd
- 27 process doc.yml + doc.go pairs across yao packages
- cmd/doc/doc_test.go: integration tests

Made-with: Cursor
2026-04-23 21:37:43 +08:00
Max
936d104d31
Merge pull request #1524 from trheyi/main
feat(user): add token-based login endpoint for automation and testing
2026-04-22 14:13:26 +08:00
Max
4d22a9a655 feat(user): add token-based login endpoint for automation and testing
- Implemented GinTokenLogin function to handle POST requests for token-based login.
- Allows users to authenticate using a pre-signed access token, returning session cookies and user info.
- Updated user routes to include the new /token/login endpoint for public access.
2026-04-22 14:12:53 +08:00
Max
0578a068a9
Merge pull request #1523 from trheyi/main
update README
2026-04-21 00:16:05 +08:00