From 9eef569e4bcb1e5797e38e2aae7ffe0de38c8368 Mon Sep 17 00:00:00 2001 From: Max Date: Fri, 1 May 2026 10:31:58 +0800 Subject: [PATCH] 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. --- agent/assistant/agent.go | 59 +- agent/assistant/load_system.go | 152 +--- agent/assistant/load_system_test.go | 58 ++ agent/assistant/sandbox.go | 39 +- agent/llm/capabilities.go | 11 +- agent/llm/providers/anthropic/anthropic.go | 100 ++- agent/llm/providers/base/base.go | 15 + agent/llm/providers/factory.go | 28 +- agent/llm/providers/openai/openai.go | 89 ++- agent/llm/resolve.go | 91 +++ agent/llm/resolve_test.go | 171 +++++ agent/load.go | 36 +- agent/sandbox/v2/claude/command.go | 36 +- agent/sandbox/v2/claude/runner.go | 57 +- agent/sandbox/v2/opencode/command.go | 6 + agent/sandbox/v2/opencode/config.go | 45 +- agent/store/types/types.go | 3 +- agent/types/types.go | 10 +- data/bindata.go | 782 ++++++++++----------- llmprovider/models.go | 9 +- llmprovider/presets.yml | 10 + llmprovider/roles.go | 7 +- llmprovider/roles_test.go | 48 +- llmprovider/scope_test.go | 4 +- llmprovider/sync.go | 91 ++- llmprovider/types.go | 10 +- openai/openai.go | 22 +- openapi/agent/assistant.go | 10 +- openapi/agent/filter.go | 48 +- openapi/agent/filter_test.go | 80 +++ openapi/chat/session.go | 31 + openapi/llm/llm.go | 12 - yao/assistants/entity/package.yao | 2 +- yao/assistants/fetch/package.yao | 1 + yao/assistants/keyword/package.yao | 1 + yao/assistants/needsearch/package.yao | 1 + yao/assistants/prompt/package.yao | 3 +- yao/assistants/querydsl/package.yao | 1 + yao/assistants/robot_prompt/package.yao | 3 +- yao/assistants/title/package.yao | 3 +- yao/assistants/vision/package.yao | 1 + 41 files changed, 1443 insertions(+), 743 deletions(-) create mode 100644 agent/assistant/load_system_test.go create mode 100644 agent/llm/resolve.go create mode 100644 agent/llm/resolve_test.go create mode 100644 openapi/agent/filter_test.go diff --git a/agent/assistant/agent.go b/agent/assistant/agent.go index a106f963..8da59a49 100644 --- a/agent/assistant/agent.go +++ b/agent/assistant/agent.go @@ -2,7 +2,6 @@ package assistant import ( "fmt" - "log" "time" jsoniter "github.com/json-iterator/go" @@ -628,50 +627,40 @@ func (ast *Assistant) Stream(ctx *context.Context, inputMessages []context.Messa return finalResponse, nil } -// GetConnector get the connector object, capabilities, and error with priority: -// opts.Connector > ast.Connector > GetRoleBy("default", identity) > GetRole("default") > error +// GetConnector get the connector object, capabilities, and error. +// Priority: opts.Connector > ast.Connector (may be "use::") > "default" role > legacy fallback // Note: opts.Connector may be set by Create hook's applyOptionsAdjustments -// Returns: (connector, capabilities, error) func (ast *Assistant) GetConnector(ctx *context.Context, opts ...*context.Options) (connector.Connector, *goullm.Capabilities, error) { - connectorID := ast.Connector + cid := ast.Connector if len(opts) > 0 && opts[0] != nil && opts[0].Connector != "" { - connectorID = opts[0].Connector + cid = opts[0].Connector } - // Fallback to unified role resolution via llmprovider (team > user > system) - if connectorID == "" && llmprovider.Global != nil { - if ctx != nil && ctx.Authorized != nil { - if cid, err := llmprovider.Global.GetRoleBy("default", ctx.Authorized); err == nil { - connectorID = cid - } - } - if connectorID == "" { - if cid, err := llmprovider.Global.GetRole("default"); err == nil { - connectorID = cid - } - } + // Extract identity for role-based resolution + var identity llmprovider.Identity + if ctx != nil && ctx.Authorized != nil { + identity = ctx.Authorized + } + + // Unified resolution: explicit connector / use:: prefix / empty → all handled + conn, caps, err := llm.ResolveConnector(cid, identity) + if err == nil { + return conn, caps, nil } // Legacy fallback - if connectorID == "" { - connectorID = defaultConnector + if defaultConnector != "" { + if conn, err := connector.Select(defaultConnector); err == nil { + return conn, llm.GetCapabilitiesFromConn(conn), nil + } + } + if fallback := findCapableConnector(); fallback != "" { + if conn, err := connector.Select(fallback); err == nil { + return conn, llm.GetCapabilitiesFromConn(conn), nil + } } - if connectorID == "" { - return nil, nil, fmt.Errorf("connector not specified") - } - - conn, err := connector.Select(connectorID) - if err != nil && connectorID != defaultConnector && defaultConnector != "" { - log.Printf("[Assistant] connector %q not found, falling back to default %q", connectorID, defaultConnector) - conn, err = connector.Select(defaultConnector) - } - if err != nil { - return nil, nil, err - } - - capabilities := llm.GetCapabilitiesFromConn(conn) - return conn, capabilities, nil + return nil, nil, fmt.Errorf("connector not specified") } // Info get the assistant information diff --git a/agent/assistant/load_system.go b/agent/assistant/load_system.go index f4c860e6..4c62da6d 100644 --- a/agent/assistant/load_system.go +++ b/agent/assistant/load_system.go @@ -12,7 +12,6 @@ import ( "github.com/yaoapp/yao/agent/i18n" store "github.com/yaoapp/yao/agent/store/types" "github.com/yaoapp/yao/data" - "github.com/yaoapp/yao/llmprovider" "gopkg.in/yaml.v3" ) @@ -35,7 +34,13 @@ var systemAgents = []string{ // SystemConfig holds the system agents connector configuration // This is set from agent.yml system block type SystemConfig struct { - Default string // Default connector for all system agents + // Role-level defaults (consumed by buildSystemRoles → SetDefaults) + Default string // Default connector for the "default" role + Light string // Default connector for the "light" role + Vision string // Default connector for the "vision" role + Audio string // Default connector for the "audio" role + + // Per-agent overrides (consumed by resolveSystemConnector → ast.Connector) Keyword string // Connector for __yao.keyword agent QueryDSL string // Connector for __yao.querydsl agent Title string // Connector for __yao.title agent @@ -43,8 +48,6 @@ type SystemConfig struct { RobotPrompt string // Connector for __yao.robot_prompt agent NeedSearch string // Connector for __yao.needsearch agent Entity string // Connector for __yao.entity agent - Vision string // Connector for vision capabilities - Audio string // Connector for audio/STT capabilities } // systemConfig holds the system agents configuration (global variable like others in load.go) @@ -161,10 +164,9 @@ func loadSystemAgent(id, pathPrefix string) (*Assistant, error) { pkgData["type"] = "assistant" } - // Resolve connector for this system agent - connectorID := resolveSystemConnector(id) - if connectorID != "" { - pkgData["connector"] = connectorID + // Override connector only if agent.yml has an explicit per-agent setting + if override := resolveSystemConnector(id); override != "" { + pkgData["connector"] = override } // Read prompts.yml from bindata (default prompts) @@ -208,118 +210,34 @@ func loadSystemAgent(id, pathPrefix string) (*Assistant, error) { return loadMap(pkgData) } -// resolveSystemConnector resolves the connector for a system agent -// Priority: specific agent config > system.default > llmprovider role > defaultConnector > fallback +// resolveSystemConnector returns an explicit per-agent connector override from agent.yml. +// Returns empty string if no override exists, so the connector declared in package.yao +// (e.g. "use::light") is preserved as-is. func resolveSystemConnector(agentID string) string { - // Try specific agent config first - if systemConfig != nil { - switch agentID { - case "__yao.keyword": - if systemConfig.Keyword != "" { - return systemConfig.Keyword - } - case "__yao.querydsl": - if systemConfig.QueryDSL != "" { - return systemConfig.QueryDSL - } - case "__yao.title": - if systemConfig.Title != "" { - return systemConfig.Title - } - case "__yao.prompt": - if systemConfig.Prompt != "" { - return systemConfig.Prompt - } - case "__yao.robot_prompt": - if systemConfig.RobotPrompt != "" { - return systemConfig.RobotPrompt - } - case "__yao.needsearch": - if systemConfig.NeedSearch != "" { - return systemConfig.NeedSearch - } - case "__yao.entity": - if systemConfig.Entity != "" { - return systemConfig.Entity - } - case "__yao.vision": - if systemConfig.Vision != "" { - return systemConfig.Vision - } - case "__yao.audio": - if systemConfig.Audio != "" { - return systemConfig.Audio - } - } - - // Try system default - if systemConfig.Default != "" { - return systemConfig.Default - } + if systemConfig == nil { + return "" } - - // Try unified role resolution: strip __yao. prefix as role name - if llmprovider.Global != nil { - role := strings.TrimPrefix(agentID, "__yao.") - if cid, err := llmprovider.Global.GetRole(role); err == nil && cid != "" { - return cid - } - if cid, err := llmprovider.Global.GetRole("default"); err == nil && cid != "" { - return cid - } + switch agentID { + case "__yao.keyword": + return systemConfig.Keyword + case "__yao.querydsl": + return systemConfig.QueryDSL + case "__yao.title": + return systemConfig.Title + case "__yao.prompt": + return systemConfig.Prompt + case "__yao.robot_prompt": + return systemConfig.RobotPrompt + case "__yao.needsearch": + return systemConfig.NeedSearch + case "__yao.entity": + return systemConfig.Entity + case "__yao.vision": + return systemConfig.Vision + case "__yao.audio": + return systemConfig.Audio } - - // Try global default connector - if defaultConnector != "" { - return defaultConnector - } - - // Fallback: find first connector that supports tool calling - return findCapableConnector() -} - -// GetVisionConnector returns the connector for vision capabilities. -// Priority: system.vision > system.default > llmprovider GetRole("vision") > defaultConnector > findCapableConnector -func GetVisionConnector() string { - if systemConfig != nil { - if systemConfig.Vision != "" { - return systemConfig.Vision - } - if systemConfig.Default != "" { - return systemConfig.Default - } - } - if llmprovider.Global != nil { - if cid, err := llmprovider.Global.GetRole("vision"); err == nil && cid != "" { - return cid - } - } - if defaultConnector != "" { - return defaultConnector - } - return findCapableConnector() -} - -// GetAudioConnector returns the connector for audio/STT capabilities. -// Priority: system.audio > system.default > llmprovider GetRole("audio") > defaultConnector > findCapableConnector -func GetAudioConnector() string { - if systemConfig != nil { - if systemConfig.Audio != "" { - return systemConfig.Audio - } - if systemConfig.Default != "" { - return systemConfig.Default - } - } - if llmprovider.Global != nil { - if cid, err := llmprovider.Global.GetRole("audio"); err == nil && cid != "" { - return cid - } - } - if defaultConnector != "" { - return defaultConnector - } - return findCapableConnector() + return "" } // findCapableConnector finds the first connector that supports tool calling diff --git a/agent/assistant/load_system_test.go b/agent/assistant/load_system_test.go new file mode 100644 index 00000000..286abd8c --- /dev/null +++ b/agent/assistant/load_system_test.go @@ -0,0 +1,58 @@ +package assistant + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestResolveSystemConnector_NoConfig(t *testing.T) { + saved := systemConfig + systemConfig = nil + defer func() { systemConfig = saved }() + + assert.Equal(t, "", resolveSystemConnector("__yao.title")) + assert.Equal(t, "", resolveSystemConnector("__yao.keyword")) + assert.Equal(t, "", resolveSystemConnector("__yao.querydsl")) + assert.Equal(t, "", resolveSystemConnector("__yao.vision")) +} + +func TestResolveSystemConnector_PerAgentOverride(t *testing.T) { + saved := systemConfig + systemConfig = &SystemConfig{ + Title: "openai.gpt-4o", + } + defer func() { systemConfig = saved }() + + assert.Equal(t, "openai.gpt-4o", resolveSystemConnector("__yao.title")) + assert.Equal(t, "", resolveSystemConnector("__yao.keyword")) + assert.Equal(t, "", resolveSystemConnector("__yao.querydsl")) + assert.Equal(t, "", resolveSystemConnector("__yao.vision")) +} + +func TestResolveSystemConnector_RoleLevelOnly(t *testing.T) { + saved := systemConfig + systemConfig = &SystemConfig{ + Default: "openai.gpt-4o", + Light: "openai.gpt-4o-mini", + } + defer func() { systemConfig = saved }() + + // Role-level keys don't produce per-agent overrides + assert.Equal(t, "", resolveSystemConnector("__yao.title")) + assert.Equal(t, "", resolveSystemConnector("__yao.keyword")) + assert.Equal(t, "", resolveSystemConnector("__yao.querydsl")) + assert.Equal(t, "", resolveSystemConnector("__yao.vision")) +} + +func TestResolveSystemConnector_UnknownAgent(t *testing.T) { + saved := systemConfig + systemConfig = &SystemConfig{ + Default: "openai.gpt-4o", + Title: "openai.gpt-4o", + } + defer func() { systemConfig = saved }() + + assert.Equal(t, "", resolveSystemConnector("__yao.nonexistent")) + assert.Equal(t, "", resolveSystemConnector("custom.agent")) +} diff --git a/agent/assistant/sandbox.go b/agent/assistant/sandbox.go index 0f1675bd..cea1dcf0 100644 --- a/agent/assistant/sandbox.go +++ b/agent/assistant/sandbox.go @@ -10,6 +10,7 @@ import ( "time" "github.com/yaoapp/gou/connector" + goullm "github.com/yaoapp/gou/llm" gouMCP "github.com/yaoapp/gou/mcp" mcpProcess "github.com/yaoapp/gou/mcp/process" "github.com/yaoapp/yao/agent/context" @@ -266,30 +267,26 @@ func (ast *Assistant) buildSandboxOptions(ctx *context.Context, opts *context.Op execOpts.ConnectorType = "openai" } + // Extract standard fields via LLMConnector when available, fallback to Setting() setting := conn.Setting() - if host, ok := setting["host"].(string); ok { - execOpts.ConnectorHost = host - } - if key, ok := setting["key"].(string); ok { - execOpts.ConnectorKey = key - } - if model, ok := setting["model"].(string); ok { - execOpts.Model = model - } - - // Extract extra connector options (thinking, max_tokens, temperature, etc.) - // These are backend-specific parameters that need to be passed through to the proxy - connectorOptions := make(map[string]interface{}) - for k, v := range setting { - // Skip standard fields that are already handled - switch k { - case "host", "key", "model", "azure", "capabilities": - continue - default: - // Include all other fields as extra options - connectorOptions[k] = v + if lc, ok := conn.(goullm.LLMConnector); ok { + execOpts.ConnectorHost = lc.GetURL() + execOpts.ConnectorKey = lc.GetKey() + execOpts.Model = lc.GetModel() + } else { + if host, ok := setting["host"].(string); ok { + execOpts.ConnectorHost = host + } + if key, ok := setting["key"].(string); ok { + execOpts.ConnectorKey = key + } + if model, ok := setting["model"].(string); ok { + execOpts.Model = model } } + + // Whitelist-filter remaining settings for sandbox proxy options + connectorOptions := connector.FilterRequestBodyParams(setting, conn) if len(connectorOptions) > 0 { execOpts.ConnectorOptions = connectorOptions ctx.Logger.Debug("Connector options extracted: %v", connectorOptions) diff --git a/agent/llm/capabilities.go b/agent/llm/capabilities.go index b5b59069..62f2b5f1 100644 --- a/agent/llm/capabilities.go +++ b/agent/llm/capabilities.go @@ -20,12 +20,21 @@ func GetCapabilities(connectorID string) *goullm.Capabilities { return GetCapabilitiesFromConn(conn) } -// GetCapabilitiesFromConn get the capabilities from a connector instance +// GetCapabilitiesFromConn get the capabilities from a connector instance. +// Prefers LLMConnector.GetCapabilities() when available, falls back to Setting() parsing. func GetCapabilitiesFromConn(conn connector.Connector) *goullm.Capabilities { if conn == nil { return getDefaultCapabilities() } + // Prefer typed LLMConnector interface + if lc, ok := conn.(goullm.LLMConnector); ok { + if caps := lc.GetCapabilities(); caps != nil { + return caps + } + } + + // Fallback to Setting() parsing for non-LLMConnector or nil capabilities settings := conn.Setting() if settings != nil { if caps, ok := settings["capabilities"]; ok { diff --git a/agent/llm/providers/anthropic/anthropic.go b/agent/llm/providers/anthropic/anthropic.go index 6e6669cf..2a88986c 100644 --- a/agent/llm/providers/anthropic/anthropic.go +++ b/agent/llm/providers/anthropic/anthropic.go @@ -17,6 +17,7 @@ import ( "github.com/yaoapp/yao/agent/llm/adapters" "github.com/yaoapp/yao/agent/llm/providers/base" "github.com/yaoapp/yao/agent/output/message" + "github.com/yaoapp/yao/share" ) // Provider Anthropic Messages API provider @@ -201,21 +202,10 @@ func (p *Provider) streamWithRetry(ctx *context.Context, messages []context.Mess return nil, fmt.Errorf("failed to build request body: %w", err) } - // Get connector settings - setting := p.Connector.Setting() - host, ok := setting["host"].(string) - if !ok || host == "" { - return nil, fmt.Errorf("no host found in connector settings") - } - - key, ok := setting["key"].(string) - if !ok || key == "" { - return nil, fmt.Errorf("API key is not set") - } - - version := "2023-06-01" - if v, ok := setting["version"].(string); ok && v != "" { - version = v + // Get connector settings via LLMConnector or fallback + host, key, version, err := p.resolveHostKeyVersion() + if err != nil { + return nil, err } // Build URL: host/v1/messages @@ -227,13 +217,13 @@ func (p *Provider) streamWithRetry(ctx *context.Context, messages []context.Mess }) } - // Create HTTP request with Anthropic auth headers + // Create HTTP request with auth headers req := http.New(url). SetHeader("Content-Type", "application/json"). - SetHeader("x-api-key", key). SetHeader("anthropic-version", version). SetHeader("Accept", "text/event-stream"). - SetHeader("User-Agent", "YaoAgent/1.0 (+https://yaoagents.com)") + SetHeader("User-Agent", "YaoEngine/"+share.VERSION) + setAnthropicAuthHeaders(req, p.Connector, key) // Accumulate response data accumulator := &streamAccumulator{ @@ -678,31 +668,20 @@ func (p *Provider) postWithRetry(ctx *context.Context, messages []context.Messag return nil, fmt.Errorf("failed to build request body: %w", err) } - // Get connector settings - setting := p.Connector.Setting() - host, ok := setting["host"].(string) - if !ok || host == "" { - return nil, fmt.Errorf("no host found in connector settings") - } - - key, ok := setting["key"].(string) - if !ok || key == "" { - return nil, fmt.Errorf("API key is not set") - } - - version := "2023-06-01" - if v, ok := setting["version"].(string); ok && v != "" { - version = v + // Get connector settings via LLMConnector or fallback + host, key, version, err := p.resolveHostKeyVersion() + if err != nil { + return nil, err } url := buildAPIURL(host, "/messages") - // Create HTTP request + // Create HTTP request with auth headers req := http.New(url). SetHeader("Content-Type", "application/json"). - SetHeader("x-api-key", key). SetHeader("anthropic-version", version). - SetHeader("User-Agent", "YaoAgent/1.0 (+https://yaoagents.com)") + SetHeader("User-Agent", "YaoEngine/"+share.VERSION) + setAnthropicAuthHeaders(req, p.Connector, key) resp := req.Post(requestBody) if resp.Code != 200 { @@ -915,6 +894,11 @@ func (p *Provider) buildRequestBody(messages []context.Message, options *context } else if mt, ok := setting["max_tokens"].(int); ok && mt > 0 { maxTokens = mt } + if lc, ok := p.Connector.(goullm.LLMConnector); ok { + if caps := lc.GetCapabilities(); caps != nil && caps.MaxOutputTokens > 0 && maxTokens > caps.MaxOutputTokens { + maxTokens = caps.MaxOutputTokens + } + } body["max_tokens"] = maxTokens // Temperature @@ -1176,3 +1160,47 @@ func isRetryableError(err error) bool { return false } + +// resolveHostKeyVersion extracts host, key, and version via LLMConnector or Setting(). +// Setting() is called at most once, and only when needed. +func (p *Provider) resolveHostKeyVersion() (host, key, version string, err error) { + setting := p.Connector.Setting() + + if lc, ok := p.Connector.(goullm.LLMConnector); ok { + host = lc.GetURL() + key = lc.GetKey() + } else { + host, _ = setting["host"].(string) + key, _ = setting["key"].(string) + } + + // Version is Anthropic-specific, not on LLMConnector interface + version = "2023-06-01" + if v, ok := setting["version"].(string); ok && v != "" { + version = v + } + + if host == "" { + return "", "", "", fmt.Errorf("no host found in connector settings") + } + if key == "" { + return "", "", "", fmt.Errorf("API key is not set") + } + return host, key, version, nil +} + +// setAnthropicAuthHeaders sets auth headers based on LLMConnector.GetAuthMode(). +func setAnthropicAuthHeaders(req *http.Request, conn connector.Connector, key string) { + if lc, ok := conn.(goullm.LLMConnector); ok { + switch lc.GetAuthMode() { + case goullm.AuthAPIKey: + req.SetHeader("api-key", key) + return + case goullm.AuthBearer: + req.SetHeader("Authorization", fmt.Sprintf("Bearer %s", key)) + return + } + } + // Default for Anthropic: x-api-key + req.SetHeader("x-api-key", key) +} diff --git a/agent/llm/providers/base/base.go b/agent/llm/providers/base/base.go index e0e916b4..33619240 100644 --- a/agent/llm/providers/base/base.go +++ b/agent/llm/providers/base/base.go @@ -140,15 +140,30 @@ func (p *Provider) GetConnectorStringSetting(key string) (string, error) { // GetModel gets the model name from connector settings func (p *Provider) GetModel() (string, error) { + if lc, ok := p.Connector.(llm.LLMConnector); ok { + if m := lc.GetModel(); m != "" { + return m, nil + } + } return p.GetConnectorStringSetting("model") } // GetAPIKey gets the API key from connector settings func (p *Provider) GetAPIKey() (string, error) { + if lc, ok := p.Connector.(llm.LLMConnector); ok { + if k := lc.GetKey(); k != "" { + return k, nil + } + } return p.GetConnectorStringSetting("key") } // GetHost gets the host URL from connector settings func (p *Provider) GetHost() (string, error) { + if lc, ok := p.Connector.(llm.LLMConnector); ok { + if u := lc.GetURL(); u != "" { + return u, nil + } + } return p.GetConnectorStringSetting("host") } diff --git a/agent/llm/providers/factory.go b/agent/llm/providers/factory.go index 0901873c..5a808768 100644 --- a/agent/llm/providers/factory.go +++ b/agent/llm/providers/factory.go @@ -4,6 +4,7 @@ import ( "fmt" "github.com/yaoapp/gou/connector" + goullm "github.com/yaoapp/gou/llm" "github.com/yaoapp/yao/agent/context" "github.com/yaoapp/yao/agent/llm/providers/anthropic" "github.com/yaoapp/yao/agent/llm/providers/openai" @@ -61,16 +62,23 @@ func DetectAPIFormat(conn connector.Connector) string { return "openai" } - // Check connector settings for host URL patterns as fallback - settings := conn.Setting() - if settings != nil { - if host, ok := settings["host"].(string); ok { - if contains(host, "anthropic.com") || contains(host, "api.kimi.com/coding") { - return "anthropic" - } - if contains(host, "deepseek.com") { - return "openai" - } + // Try LLMConnector for typed URL access, fall back to Setting() map + var host string + if lc, ok := conn.(goullm.LLMConnector); ok { + host = lc.GetURL() + } + if host == "" { + if settings := conn.Setting(); settings != nil { + host, _ = settings["host"].(string) + } + } + + if host != "" { + if contains(host, "anthropic.com") || contains(host, "api.kimi.com/coding") { + return "anthropic" + } + if contains(host, "deepseek.com") { + return "openai" } } diff --git a/agent/llm/providers/openai/openai.go b/agent/llm/providers/openai/openai.go index a53224d4..d43af7e5 100644 --- a/agent/llm/providers/openai/openai.go +++ b/agent/llm/providers/openai/openai.go @@ -16,6 +16,7 @@ import ( "github.com/yaoapp/yao/agent/llm/adapters" "github.com/yaoapp/yao/agent/llm/providers/base" "github.com/yaoapp/yao/agent/output/message" + "github.com/yaoapp/yao/share" "github.com/yaoapp/yao/utils/jsonschema" ) @@ -385,16 +386,10 @@ func (p *Provider) streamWithRetry(ctx *context.Context, messages []context.Mess return nil, fmt.Errorf("failed to build request body: %w", err) } - // Get connector settings - setting := p.Connector.Setting() - host, ok := setting["host"].(string) - if !ok || host == "" { - return nil, fmt.Errorf("no host found in connector settings") - } - - key, ok := setting["key"].(string) - if !ok || key == "" { - return nil, fmt.Errorf("API key is not set") + // Get connector settings via LLMConnector or fallback + host, key, err := p.resolveHostKey() + if err != nil { + return nil, err } // Build URL @@ -409,9 +404,9 @@ func (p *Provider) streamWithRetry(ctx *context.Context, messages []context.Mess // Create HTTP request with proxy support req := http.New(url). SetHeader("Content-Type", "application/json"). - SetHeader("Authorization", fmt.Sprintf("Bearer %s", key)). SetHeader("Accept", "text/event-stream"). - SetHeader("User-Agent", "YaoAgent/1.0 (+https://yaoagents.com)") + SetHeader("User-Agent", "YaoEngine/"+share.VERSION) + setAuthHeaders(req, p.Connector, key) // Accumulate response data accumulator := &streamAccumulator{ @@ -922,16 +917,10 @@ func (p *Provider) postWithRetry(ctx *context.Context, messages []context.Messag return nil, fmt.Errorf("failed to build request body: %w", err) } - // Get connector settings - setting := p.Connector.Setting() - host, ok := setting["host"].(string) - if !ok || host == "" { - return nil, fmt.Errorf("no host found in connector settings") - } - - key, ok := setting["key"].(string) - if !ok || key == "" { - return nil, fmt.Errorf("API key is not set") + // Get connector settings via LLMConnector or fallback + host, key, err := p.resolveHostKey() + if err != nil { + return nil, err } // Build URL @@ -940,8 +929,8 @@ func (p *Provider) postWithRetry(ctx *context.Context, messages []context.Messag // Create HTTP request with proxy support req := http.New(url). SetHeader("Content-Type", "application/json"). - SetHeader("Authorization", fmt.Sprintf("Bearer %s", key)). - SetHeader("User-Agent", "YaoAgent/1.0 (+https://yaoagents.com)") + SetHeader("User-Agent", "YaoEngine/"+share.VERSION) + setAuthHeaders(req, p.Connector, key) // Make request resp := req.Post(requestBody) @@ -1120,11 +1109,19 @@ func (p *Provider) buildRequestBody(messages []context.Message, options *context // Use max_completion_tokens (modern API parameter for GPT-5+) // GPT-5 models only support max_completion_tokens (not max_tokens) - if options.MaxCompletionTokens != nil { - body["max_completion_tokens"] = *options.MaxCompletionTokens - } else if options.MaxTokens != nil { - // Fallback: convert MaxTokens to max_completion_tokens for compatibility - body["max_completion_tokens"] = *options.MaxTokens + if options.MaxCompletionTokens != nil || options.MaxTokens != nil { + maxTokens := 0 + if options.MaxCompletionTokens != nil { + maxTokens = *options.MaxCompletionTokens + } else { + maxTokens = *options.MaxTokens + } + if lc, ok := p.Connector.(goullm.LLMConnector); ok { + if caps := lc.GetCapabilities(); caps != nil && caps.MaxOutputTokens > 0 && maxTokens > caps.MaxOutputTokens { + maxTokens = caps.MaxOutputTokens + } + } + body["max_completion_tokens"] = maxTokens } if options.TopP != nil { @@ -1289,3 +1286,37 @@ func isRetryableError(err error) bool { return false } + +// resolveHostKey extracts host and key via LLMConnector or Setting() fallback. +func (p *Provider) resolveHostKey() (host, key string, err error) { + if lc, ok := p.Connector.(goullm.LLMConnector); ok { + host = lc.GetURL() + key = lc.GetKey() + } else { + setting := p.Connector.Setting() + host, _ = setting["host"].(string) + key, _ = setting["key"].(string) + } + if host == "" { + return "", "", fmt.Errorf("no host found in connector settings") + } + if key == "" { + return "", "", fmt.Errorf("API key is not set") + } + return host, key, nil +} + +// setAuthHeaders sets authentication headers based on LLMConnector.GetAuthMode(). +func setAuthHeaders(req *http.Request, conn connector.Connector, key string) { + if lc, ok := conn.(goullm.LLMConnector); ok { + switch lc.GetAuthMode() { + case goullm.AuthAPIKey: + req.SetHeader("api-key", key) + return + case goullm.AuthXAPIKey: + req.SetHeader("x-api-key", key) + return + } + } + req.SetHeader("Authorization", fmt.Sprintf("Bearer %s", key)) +} diff --git a/agent/llm/resolve.go b/agent/llm/resolve.go new file mode 100644 index 00000000..39f74633 --- /dev/null +++ b/agent/llm/resolve.go @@ -0,0 +1,91 @@ +package llm + +import ( + "fmt" + "strings" + + "github.com/yaoapp/gou/connector" + goullm "github.com/yaoapp/gou/llm" + "github.com/yaoapp/yao/llmprovider" +) + +// RolePrefix marks a Connector field value as a role reference (e.g. "use::light"). +const RolePrefix = "use::" + +// ResolveConnector resolves an LLM connector using a unified priority chain. +// +// connectorID may be: +// - explicit connector ID (e.g. "openai.gpt-4o") — resolved directly +// - role reference with prefix (e.g. "use::light") — resolved via llmprovider roles +// - empty string — falls back to the "default" role +// +// Priority for role-based resolution: +// 1. GetRoleBy(role, identity) — user/team scoped setting +// 2. GetRole(role) — system-level default for that role +// 3. GetRoleBy("default", identity) — fallback to "default" role (user/team) +// 4. GetRole("default") — fallback to "default" role (system) +// 5. error — caller decides whether to apply legacy fallback +func ResolveConnector(connectorID string, identity llmprovider.Identity) (connector.Connector, *goullm.Capabilities, error) { + + // Parse use:: prefix to extract role + role := "" + if strings.HasPrefix(connectorID, RolePrefix) { + role = strings.TrimPrefix(connectorID, RolePrefix) + connectorID = "" + } + + // Explicit connector ID takes highest priority + if connectorID != "" { + return selectWithCapabilities(connectorID) + } + + // Empty connector with no role → treat as "default" + if role == "" { + role = "default" + } + + if llmprovider.Global == nil { + return nil, nil, fmt.Errorf("llmprovider not initialized and no explicit connector specified") + } + + // Resolve by the specified role (e.g. "light", "vision") + if role != "default" { + if identity != nil { + if cid, err := llmprovider.Global.GetRoleBy(role, identity); err == nil && cid != "" { + if conn, caps, err := selectWithCapabilities(cid); err == nil { + return conn, caps, nil + } + } + } + if cid, err := llmprovider.Global.GetRole(role); err == nil && cid != "" { + if conn, caps, err := selectWithCapabilities(cid); err == nil { + return conn, caps, nil + } + } + } + + // Fallback to "default" role + if identity != nil { + if cid, err := llmprovider.Global.GetRoleBy("default", identity); err == nil && cid != "" { + if conn, caps, err := selectWithCapabilities(cid); err == nil { + return conn, caps, nil + } + } + } + if cid, err := llmprovider.Global.GetRole("default"); err == nil && cid != "" { + if conn, caps, err := selectWithCapabilities(cid); err == nil { + return conn, caps, nil + } + } + + return nil, nil, fmt.Errorf("no connector resolved for role %q", role) +} + +func selectWithCapabilities(connectorID string) (connector.Connector, *goullm.Capabilities, error) { + conn, err := connector.Select(connectorID) + if err != nil { + return nil, nil, err + } + caps := GetCapabilitiesFromConn(conn) + return conn, caps, nil +} diff --git a/agent/llm/resolve_test.go b/agent/llm/resolve_test.go new file mode 100644 index 00000000..cc26d1b5 --- /dev/null +++ b/agent/llm/resolve_test.go @@ -0,0 +1,171 @@ +package llm_test + +import ( + "os" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "github.com/yaoapp/gou/connector" + "github.com/yaoapp/gou/store" + "github.com/yaoapp/yao/agent/llm" + "github.com/yaoapp/yao/config" + "github.com/yaoapp/yao/llmprovider" + "github.com/yaoapp/yao/setting" + "github.com/yaoapp/yao/test" +) + +func TestMain(m *testing.M) { + test.Prepare(nil, config.Conf) + defer test.Clean() + os.Exit(m.Run()) +} + +type mockIdentity struct { + UserID string + TeamID string +} + +func (m *mockIdentity) GetUserID() string { return m.UserID } +func (m *mockIdentity) GetTeamID() string { return m.TeamID } + +func setupResolveTest(t *testing.T) string { + t.Helper() + test.Prepare(t, config.Conf) + + err := setting.Init() + require.NoError(t, err) + + err = llmprovider.Init() + require.NoError(t, err) + + connIDs := connector.AIConnectors + if len(connIDs) == 0 { + t.Skip("no AI connectors available in test env") + } + + cid := connIDs[0].Value + + t.Cleanup(func() { + s, _ := store.Get("__yao.store") + if s != nil { + s.Del("llmprovider:*") + } + c, _ := store.Get("__yao.cache") + if c != nil { + c.Del("llmprovider:*") + } + test.Clean() + }) + + return cid +} + +// --- use:: prefix tests --- + +func TestResolveConnector_UseLight(t *testing.T) { + cid := setupResolveTest(t) + + err := llmprovider.Global.SetDefaults(map[string]string{ + "default": cid, + "light": cid, + }) + require.NoError(t, err) + + conn, caps, err := llm.ResolveConnector("use::light", nil) + require.NoError(t, err) + assert.NotNil(t, conn) + assert.NotNil(t, caps) +} + +func TestResolveConnector_UseDefault(t *testing.T) { + cid := setupResolveTest(t) + + err := llmprovider.Global.SetDefaults(map[string]string{ + "default": cid, + }) + require.NoError(t, err) + + conn, caps, err := llm.ResolveConnector("use::default", nil) + require.NoError(t, err) + assert.NotNil(t, conn) + assert.NotNil(t, caps) +} + +func TestResolveConnector_UseLightWithIdentity(t *testing.T) { + cid := setupResolveTest(t) + + err := llmprovider.Global.SetDefaults(map[string]string{ + "default": cid, + "light": cid, + }) + require.NoError(t, err) + + conn, caps, err := llm.ResolveConnector("use::light", &mockIdentity{UserID: "u1", TeamID: "t1"}) + require.NoError(t, err) + assert.NotNil(t, conn) + assert.NotNil(t, caps) +} + +func TestResolveConnector_UseLightNoProvider(t *testing.T) { + test.Prepare(t, config.Conf) + defer test.Clean() + + saved := llmprovider.Global + llmprovider.Global = nil + defer func() { llmprovider.Global = saved }() + + _, _, err := llm.ResolveConnector("use::light", nil) + assert.Error(t, err) +} + +// --- Explicit connector tests --- + +func TestResolveConnector_ExplicitID(t *testing.T) { + cid := setupResolveTest(t) + + conn, caps, err := llm.ResolveConnector(cid, nil) + require.NoError(t, err) + assert.NotNil(t, conn) + assert.NotNil(t, caps) +} + +func TestResolveConnector_ExplicitIDPriority(t *testing.T) { + cid := setupResolveTest(t) + + err := llmprovider.Global.SetDefaults(map[string]string{ + "default": cid, + "light": cid, + }) + require.NoError(t, err) + + // Explicit connector ID is NOT a use:: prefix, so it takes priority + conn, caps, err := llm.ResolveConnector(cid, &mockIdentity{UserID: "u1"}) + require.NoError(t, err) + assert.NotNil(t, conn) + assert.NotNil(t, caps) +} + +func TestResolveConnector_InvalidID(t *testing.T) { + setupResolveTest(t) + + _, _, err := llm.ResolveConnector("nonexistent-connector-xyz", nil) + assert.Error(t, err) +} + +// --- Empty connector fallback --- + +func TestResolveConnector_EmptyFallbackDefault(t *testing.T) { + cid := setupResolveTest(t) + + err := llmprovider.Global.SetDefaults(map[string]string{ + "default": cid, + }) + require.NoError(t, err) + + // Empty string → treated as use::default + conn, caps, err := llm.ResolveConnector("", nil) + require.NoError(t, err) + assert.NotNil(t, conn) + assert.NotNil(t, caps) +} diff --git a/agent/load.go b/agent/load.go index ce24c408..72cc8f6c 100644 --- a/agent/load.go +++ b/agent/load.go @@ -227,15 +227,17 @@ func initAssistant() error { // Set system agents configuration if agentDSL.System != nil { assistant.SetSystemConfig(&assistant.SystemConfig{ - Default: agentDSL.System.Default, - Keyword: agentDSL.System.Keyword, - QueryDSL: agentDSL.System.QueryDSL, - Title: agentDSL.System.Title, - Prompt: agentDSL.System.Prompt, - NeedSearch: agentDSL.System.NeedSearch, - Entity: agentDSL.System.Entity, - Vision: agentDSL.System.Vision, - Audio: agentDSL.System.Audio, + Default: agentDSL.System.Default, + Light: agentDSL.System.Light, + Vision: agentDSL.System.Vision, + Audio: agentDSL.System.Audio, + Keyword: agentDSL.System.Keyword, + QueryDSL: agentDSL.System.QueryDSL, + Title: agentDSL.System.Title, + Prompt: agentDSL.System.Prompt, + RobotPrompt: agentDSL.System.RobotPrompt, + NeedSearch: agentDSL.System.NeedSearch, + Entity: agentDSL.System.Entity, }) } @@ -479,7 +481,8 @@ func defaultAssistant() (*assistant.Assistant, error) { } // buildSystemRoles converts the System config block into a role→connectorID map -// for llmprovider.SetDefaults. +// for llmprovider.SetDefaults. Only role-level keys are written here; per-agent +// overrides (keyword, title, querydsl, etc.) are consumed by resolveSystemConnector. func buildSystemRoles(sys *types.System) map[string]string { roles := make(map[string]string) add := func(role, cid string) { @@ -488,13 +491,7 @@ func buildSystemRoles(sys *types.System) map[string]string { } } add("default", sys.Default) - add("keyword", sys.Keyword) - add("querydsl", sys.QueryDSL) - add("title", sys.Title) - add("prompt", sys.Prompt) - add("robot_prompt", sys.RobotPrompt) - add("needsearch", sys.NeedSearch) - add("entity", sys.Entity) + add("light", sys.Light) add("vision", sys.Vision) add("audio", sys.Audio) return roles @@ -506,6 +503,9 @@ func buildSystemRoles(sys *types.System) map[string]string { func resolveEnvStrings(setting *types.DSL) { if setting.System != nil { setting.System.Default = helper.EnvString(setting.System.Default) + setting.System.Light = helper.EnvString(setting.System.Light) + setting.System.Vision = helper.EnvString(setting.System.Vision) + setting.System.Audio = helper.EnvString(setting.System.Audio) setting.System.Keyword = helper.EnvString(setting.System.Keyword) setting.System.QueryDSL = helper.EnvString(setting.System.QueryDSL) setting.System.Title = helper.EnvString(setting.System.Title) @@ -513,8 +513,6 @@ func resolveEnvStrings(setting *types.DSL) { setting.System.RobotPrompt = helper.EnvString(setting.System.RobotPrompt) setting.System.NeedSearch = helper.EnvString(setting.System.NeedSearch) setting.System.Entity = helper.EnvString(setting.System.Entity) - setting.System.Vision = helper.EnvString(setting.System.Vision) - setting.System.Audio = helper.EnvString(setting.System.Audio) } if setting.Uses != nil { diff --git a/agent/sandbox/v2/claude/command.go b/agent/sandbox/v2/claude/command.go index 3c5bc703..e4f0895c 100644 --- a/agent/sandbox/v2/claude/command.go +++ b/agent/sandbox/v2/claude/command.go @@ -10,6 +10,7 @@ import ( "github.com/google/uuid" "github.com/yaoapp/gou/connector" + goullm "github.com/yaoapp/gou/llm" "github.com/yaoapp/gou/store" "github.com/yaoapp/kun/str" agentContext "github.com/yaoapp/yao/agent/context" @@ -140,9 +141,22 @@ func buildEnv(req *types.StreamRequest, p platform) map[string]string { if req.Connector != nil { setting := req.Connector.Setting() - host, _ := setting["host"].(string) - key, _ := setting["key"].(string) - model, _ := setting["model"].(string) + + var host, key, model string + if lc, ok := req.Connector.(goullm.LLMConnector); ok { + host = lc.GetURL() + key = lc.GetKey() + model = lc.GetModel() + } + if host == "" { + host, _ = setting["host"].(string) + } + if key == "" { + key, _ = setting["key"].(string) + } + if model == "" { + model, _ = setting["model"].(string) + } roleConnectors := getRoleConnectors(req) getConn := func(id string) connector.Connector { @@ -204,6 +218,17 @@ func buildEnv(req *types.StreamRequest, p platform) map[string]string { } } + if lc, ok := req.Connector.(goullm.LLMConnector); ok { + if caps := lc.GetCapabilities(); caps != nil { + if caps.MaxOutputTokens > 0 { + env["CLAUDE_CODE_MAX_OUTPUT_TOKENS"] = fmt.Sprintf("%d", caps.MaxOutputTokens) + } + if caps.MaxInputTokens > 0 { + env["CLAUDE_CODE_AUTO_COMPACT_WINDOW"] = fmt.Sprintf("%d", caps.MaxInputTokens) + } + } + } + if thinking, ok := setting["thinking"].(map[string]interface{}); ok { thinkType, _ := thinking["type"].(string) switch thinkType { @@ -416,6 +441,11 @@ func connectorHost(c connector.Connector) string { if c == nil { return "" } + if lc, ok := c.(goullm.LLMConnector); ok { + if u := lc.GetURL(); u != "" { + return u + } + } host, _ := c.Setting()["host"].(string) return host } diff --git a/agent/sandbox/v2/claude/runner.go b/agent/sandbox/v2/claude/runner.go index 944eab3e..2e7e295a 100644 --- a/agent/sandbox/v2/claude/runner.go +++ b/agent/sandbox/v2/claude/runner.go @@ -8,6 +8,7 @@ import ( "time" "github.com/yaoapp/gou/connector" + goullm "github.com/yaoapp/gou/llm" "github.com/yaoapp/kun/log" agentContext "github.com/yaoapp/yao/agent/context" "github.com/yaoapp/yao/agent/output/message" @@ -184,11 +185,13 @@ func (r *Runner) Cleanup(ctx context.Context, computer infra.Computer) error { } type a2oConnectorConfig struct { - Backend string `json:"backend"` - Model string `json:"model"` - APIKey string `json:"api_key"` - Options map[string]interface{} `json:"options,omitempty"` - Routes map[string]*a2oConnectorConfig `json:"routes,omitempty"` + Backend string `json:"backend"` + Model string `json:"model"` + APIKey string `json:"api_key"` + AuthMode string `json:"auth_mode,omitempty"` + MaxOutputTokens int `json:"max_output_tokens,omitempty"` + Options map[string]interface{} `json:"options,omitempty"` + Routes map[string]*a2oConnectorConfig `json:"routes,omitempty"` } func buildSingleA2OConfig(conn connector.Connector) *a2oConnectorConfig { @@ -199,27 +202,33 @@ func buildSingleA2OConfig(conn connector.Connector) *a2oConnectorConfig { cfg := &a2oConnectorConfig{} - if host, ok := settings["host"].(string); ok && host != "" { - cfg.Backend = connector.BuildAPIURL(host, "/chat/completions") - } else if proxy, ok := settings["proxy"].(string); ok && proxy != "" { - cfg.Backend = connector.BuildAPIURL(proxy, "/chat/completions") - } - if model, ok := settings["model"].(string); ok && model != "" { - cfg.Model = model - } - if key, ok := settings["key"].(string); ok && key != "" { - cfg.APIKey = key - } - - extra := make(map[string]interface{}) - for k, v := range settings { - switch k { - case "host", "model", "key", "proxy", "type": - continue - default: - extra[k] = v + // Extract standard fields via LLMConnector methods when available + if lc, ok := conn.(goullm.LLMConnector); ok { + if url := lc.GetURL(); url != "" { + cfg.Backend = connector.BuildAPIURL(url, "/chat/completions") + } + cfg.Model = lc.GetModel() + cfg.APIKey = lc.GetKey() + cfg.AuthMode = string(lc.GetAuthMode()) + if caps := lc.GetCapabilities(); caps != nil && caps.MaxOutputTokens > 0 { + cfg.MaxOutputTokens = caps.MaxOutputTokens + } + } else { + if host, ok := settings["host"].(string); ok && host != "" { + cfg.Backend = connector.BuildAPIURL(host, "/chat/completions") + } else if proxy, ok := settings["proxy"].(string); ok && proxy != "" { + cfg.Backend = connector.BuildAPIURL(proxy, "/chat/completions") + } + if model, ok := settings["model"].(string); ok && model != "" { + cfg.Model = model + } + if key, ok := settings["key"].(string); ok && key != "" { + cfg.APIKey = key } } + + // Whitelist-filter remaining settings for the options field + extra := connector.FilterRequestBodyParams(settings, conn) if len(extra) > 0 { cfg.Options = extra } diff --git a/agent/sandbox/v2/opencode/command.go b/agent/sandbox/v2/opencode/command.go index c1d8405d..1abc304e 100644 --- a/agent/sandbox/v2/opencode/command.go +++ b/agent/sandbox/v2/opencode/command.go @@ -8,6 +8,7 @@ import ( "github.com/google/uuid" "github.com/yaoapp/gou/connector" + goullm "github.com/yaoapp/gou/llm" "github.com/yaoapp/gou/store" "github.com/yaoapp/kun/str" agentContext "github.com/yaoapp/yao/agent/context" @@ -400,6 +401,11 @@ func connectorHost(c connector.Connector) string { if c == nil { return "" } + if lc, ok := c.(goullm.LLMConnector); ok { + if u := lc.GetURL(); u != "" { + return strings.TrimSpace(u) + } + } host, _ := c.Setting()["host"].(string) return strings.TrimSpace(host) } diff --git a/agent/sandbox/v2/opencode/config.go b/agent/sandbox/v2/opencode/config.go index 06964754..ecc1855d 100644 --- a/agent/sandbox/v2/opencode/config.go +++ b/agent/sandbox/v2/opencode/config.go @@ -5,6 +5,7 @@ import ( "strings" "github.com/yaoapp/gou/connector" + goullm "github.com/yaoapp/gou/llm" "github.com/yaoapp/yao/agent/sandbox/v2/types" ) @@ -78,8 +79,18 @@ func buildOpenCodeConfig(req *types.PrepareRequest, mcpServers []types.MCPServer // For custom hosts (OpenAI-compatible proxies), we pass the bare host URL. func buildProviderConfig(conn connector.Connector) (providerID string, cfg map[string]any, model string) { setting := conn.Setting() - host, _ := setting["host"].(string) - modelName, _ := setting["model"].(string) + + var host, modelName string + if lc, ok := conn.(goullm.LLMConnector); ok { + host = lc.GetURL() + modelName = lc.GetModel() + } + if host == "" { + host, _ = setting["host"].(string) + } + if modelName == "" { + modelName, _ = setting["model"].(string) + } opts := map[string]any{ "apiKey": "{env:YAO_PROVIDER_KEY}", @@ -123,6 +134,21 @@ func buildProviderConfig(conn connector.Connector) (providerID string, cfg map[s modelCfg["options"] = modelOpts } + if lc, ok := conn.(goullm.LLMConnector); ok { + if caps := lc.GetCapabilities(); caps != nil { + limit := map[string]any{} + if caps.MaxInputTokens > 0 { + limit["context"] = caps.MaxInputTokens + } + if caps.MaxOutputTokens > 0 { + limit["output"] = caps.MaxOutputTokens + } + if len(limit) > 0 { + modelCfg["limit"] = limit + } + } + } + return "custom", map[string]any{ "npm": "@ai-sdk/openai-compatible", "options": opts, @@ -309,6 +335,21 @@ func buildRoleProviderConfig(conn connector.Connector, envKeyPrefix string, moda modelCfg["modalities"] = modalities } + if lc, ok := conn.(goullm.LLMConnector); ok { + if caps := lc.GetCapabilities(); caps != nil { + limit := map[string]any{} + if caps.MaxInputTokens > 0 { + limit["context"] = caps.MaxInputTokens + } + if caps.MaxOutputTokens > 0 { + limit["output"] = caps.MaxOutputTokens + } + if len(limit) > 0 { + modelCfg["limit"] = limit + } + } + } + if conn.Is(connector.ANTHROPIC) { if host != "" { opts["baseURL"] = host diff --git a/agent/store/types/types.go b/agent/store/types/types.go index 3ca2edfa..d2a5fae7 100644 --- a/agent/store/types/types.go +++ b/agent/store/types/types.go @@ -212,6 +212,7 @@ type AssistantInfo struct { Avatar string `json:"avatar,omitempty"` Description string `json:"description,omitempty"` Connector string `json:"connector,omitempty"` + ConnectorRaw string `json:"connector_raw,omitempty"` ConnectorOptions *ConnectorOptions `json:"connector_options,omitempty"` Modes []string `json:"modes,omitempty"` DefaultMode string `json:"default_mode,omitempty"` @@ -432,7 +433,7 @@ type AssistantModel struct { Type string `json:"type,omitempty"` // Assistant Type, default is assistant Name string `json:"name,omitempty"` // Assistant Name Avatar string `json:"avatar,omitempty"` // Assistant Avatar - Connector string `json:"connector"` // AI Connector (default connector) + Connector string `json:"connector"` // AI Connector (default connector, or "use::" for role-based resolution) ConnectorOptions *ConnectorOptions `json:"connector_options,omitempty"` // Connector selection options for user to choose from Path string `json:"path,omitempty"` // Assistant Path BuiltIn bool `json:"built_in,omitempty"` // Whether this is a built-in assistant diff --git a/agent/types/types.go b/agent/types/types.go index 5c32a87a..539808e9 100644 --- a/agent/types/types.go +++ b/agent/types/types.go @@ -93,7 +93,13 @@ func (u *Uses) GetPhaseAgent(phase string) string { // System configures connectors for system agents // =============================== type System struct { - Default string `json:"default,omitempty" yaml:"default,omitempty"` // Default connector for all system agents + // Role-level defaults (written to llmprovider via SetDefaults) + Default string `json:"default,omitempty" yaml:"default,omitempty"` // Default connector for the "default" role + Light string `json:"light,omitempty" yaml:"light,omitempty"` // Default connector for the "light" role (titles, keywords, summaries) + Vision string `json:"vision,omitempty" yaml:"vision,omitempty"` // Default connector for the "vision" role + Audio string `json:"audio,omitempty" yaml:"audio,omitempty"` // Default connector for the "audio" role + + // Per-agent overrides (optional, highest priority — bypasses role resolution) Keyword string `json:"keyword,omitempty" yaml:"keyword,omitempty"` // Connector for __yao.keyword agent QueryDSL string `json:"querydsl,omitempty" yaml:"querydsl,omitempty"` // Connector for __yao.querydsl agent Title string `json:"title,omitempty" yaml:"title,omitempty"` // Connector for __yao.title agent @@ -101,8 +107,6 @@ type System struct { RobotPrompt string `json:"robot_prompt,omitempty" yaml:"robot_prompt,omitempty"` // Connector for __yao.robot_prompt agent NeedSearch string `json:"needsearch,omitempty" yaml:"needsearch,omitempty"` // Connector for __yao.needsearch agent Entity string `json:"entity,omitempty" yaml:"entity,omitempty"` // Connector for __yao.entity agent - Vision string `json:"vision,omitempty" yaml:"vision,omitempty"` // Connector for vision capabilities - Audio string `json:"audio,omitempty" yaml:"audio,omitempty"` // Connector for audio/STT capabilities } // Mention Structure diff --git a/data/bindata.go b/data/bindata.go index 279f8c61..0fd0b807 100644 --- a/data/bindata.go +++ b/data/bindata.go @@ -560,7 +560,7 @@ func cuiSetupIndexHtml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "cui/setup/index.html", size: 10, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "cui/setup/index.html", size: 10, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -580,7 +580,7 @@ func cuiV09IndexHtml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "cui/v0.9/index.html", size: 13, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "cui/v0.9/index.html", size: 13, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -600,7 +600,7 @@ func cuiV10IndexHtml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "cui/v1.0/index.html", size: 49, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "cui/v1.0/index.html", size: 49, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -620,7 +620,7 @@ func cuiV10Layouts__indexAsyncJs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "cui/v1.0/layouts__index.async.js", size: 71, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "cui/v1.0/layouts__index.async.js", size: 71, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -640,7 +640,7 @@ func cuiV10UmiJs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "cui/v1.0/umi.js", size: 71, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "cui/v1.0/umi.js", size: 71, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -660,7 +660,7 @@ func initCursorSkillsSuiDevelopmentSkillMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/.cursor/skills/sui-development/SKILL.md", size: 34879, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/.cursor/skills/sui-development/SKILL.md", size: 34879, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -680,7 +680,7 @@ func initCursorSkillsSuiDevelopmentReferencesBackendApiMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/.cursor/skills/sui-development/references/backend-api.md", size: 14121, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/.cursor/skills/sui-development/references/backend-api.md", size: 14121, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -700,7 +700,7 @@ func initCursorSkillsSuiDevelopmentReferencesFrontendApiMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/.cursor/skills/sui-development/references/frontend-api.md", size: 9375, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/.cursor/skills/sui-development/references/frontend-api.md", size: 9375, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -720,7 +720,7 @@ func initCursorSkillsSuiDevelopmentReferencesTemplateFunctionsMd() (*asset, erro return nil, err } - info := bindataFileInfo{name: "init/.cursor/skills/sui-development/references/template-functions.md", size: 9960, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/.cursor/skills/sui-development/references/template-functions.md", size: 9960, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -740,7 +740,7 @@ func initCursorSkillsYaoAgentDevelopmentSkillMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/.cursor/skills/yao-agent-development/SKILL.md", size: 13543, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/.cursor/skills/yao-agent-development/SKILL.md", size: 13543, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -760,7 +760,7 @@ func initCursorSkillsYaoAgentDevelopmentReferencesContextApiMd() (*asset, error) return nil, err } - info := bindataFileInfo{name: "init/.cursor/skills/yao-agent-development/references/context-api.md", size: 13643, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/.cursor/skills/yao-agent-development/references/context-api.md", size: 13643, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -780,7 +780,7 @@ func initCursorSkillsYaoAgentDevelopmentReferencesHooksPatternsMd() (*asset, err return nil, err } - info := bindataFileInfo{name: "init/.cursor/skills/yao-agent-development/references/hooks-patterns.md", size: 12826, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/.cursor/skills/yao-agent-development/references/hooks-patterns.md", size: 12826, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -800,7 +800,7 @@ func initCursorSkillsYaoAgentDevelopmentReferencesRuntimeApiMd() (*asset, error) return nil, err } - info := bindataFileInfo{name: "init/.cursor/skills/yao-agent-development/references/runtime-api.md", size: 16786, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/.cursor/skills/yao-agent-development/references/runtime-api.md", size: 16786, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -820,7 +820,7 @@ func initCursorSkillsYaoAgentDevelopmentReferencesTestingMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/.cursor/skills/yao-agent-development/references/testing.md", size: 11412, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/.cursor/skills/yao-agent-development/references/testing.md", size: 11412, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -840,7 +840,7 @@ func initEnv() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/.env", size: 8585, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/.env", size: 8585, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -860,7 +860,7 @@ func initVscodeSettingsJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/.vscode/settings.json", size: 4666, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/.vscode/settings.json", size: 4666, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -880,7 +880,7 @@ func initVscodeTypesRuntimeAgentDTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/.vscode/types/runtime/agent.d.ts", size: 21775, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/.vscode/types/runtime/agent.d.ts", size: 21775, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -900,7 +900,7 @@ func initVscodeTypesRuntimeConsoleDTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/.vscode/types/runtime/console.d.ts", size: 694, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/.vscode/types/runtime/console.d.ts", size: 694, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -920,7 +920,7 @@ func initVscodeTypesRuntimeEvalDTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/.vscode/types/runtime/eval.d.ts", size: 65, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/.vscode/types/runtime/eval.d.ts", size: 65, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -940,7 +940,7 @@ func initVscodeTypesRuntimeExceptionDTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/.vscode/types/runtime/exception.d.ts", size: 738, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/.vscode/types/runtime/exception.d.ts", size: 738, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -960,7 +960,7 @@ func initVscodeTypesRuntimeFsDTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/.vscode/types/runtime/fs.d.ts", size: 8554, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/.vscode/types/runtime/fs.d.ts", size: 8554, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -980,7 +980,7 @@ func initVscodeTypesRuntimeGlobalDTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/.vscode/types/runtime/global.d.ts", size: 2888, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/.vscode/types/runtime/global.d.ts", size: 2888, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1000,7 +1000,7 @@ func initVscodeTypesRuntimeHttpDTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/.vscode/types/runtime/http.d.ts", size: 6179, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/.vscode/types/runtime/http.d.ts", size: 6179, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1020,7 +1020,7 @@ func initVscodeTypesRuntimeIoDTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/.vscode/types/runtime/io.d.ts", size: 587, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/.vscode/types/runtime/io.d.ts", size: 587, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1040,7 +1040,7 @@ func initVscodeTypesRuntimeLogDTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/.vscode/types/runtime/log.d.ts", size: 1692, mode: os.FileMode(493), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/.vscode/types/runtime/log.d.ts", size: 1692, mode: os.FileMode(493), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1060,7 +1060,7 @@ func initVscodeTypesRuntimeNeoDTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/.vscode/types/runtime/neo.d.ts", size: 3750, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/.vscode/types/runtime/neo.d.ts", size: 3750, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1080,7 +1080,7 @@ func initVscodeTypesRuntimePlanDTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/.vscode/types/runtime/plan.d.ts", size: 2070, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/.vscode/types/runtime/plan.d.ts", size: 2070, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1100,7 +1100,7 @@ func initVscodeTypesRuntimeProcessFsDTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/.vscode/types/runtime/process/fs.d.ts", size: 11133, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/.vscode/types/runtime/process/fs.d.ts", size: 11133, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1120,7 +1120,7 @@ func initVscodeTypesRuntimeProcessHttpDTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/.vscode/types/runtime/process/http.d.ts", size: 5653, mode: os.FileMode(493), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/.vscode/types/runtime/process/http.d.ts", size: 5653, mode: os.FileMode(493), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1140,7 +1140,7 @@ func initVscodeTypesRuntimeProcessModelDTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/.vscode/types/runtime/process/model.d.ts", size: 6656, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/.vscode/types/runtime/process/model.d.ts", size: 6656, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1160,7 +1160,7 @@ func initVscodeTypesRuntimeProcessDTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/.vscode/types/runtime/process.d.ts", size: 23165, mode: os.FileMode(493), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/.vscode/types/runtime/process.d.ts", size: 23165, mode: os.FileMode(493), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1180,7 +1180,7 @@ func initVscodeTypesRuntimeQueryDTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/.vscode/types/runtime/query.d.ts", size: 6125, mode: os.FileMode(493), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/.vscode/types/runtime/query.d.ts", size: 6125, mode: os.FileMode(493), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1200,7 +1200,7 @@ func initVscodeTypesRuntimeStoreDTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/.vscode/types/runtime/store.d.ts", size: 5891, mode: os.FileMode(493), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/.vscode/types/runtime/store.d.ts", size: 5891, mode: os.FileMode(493), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1220,7 +1220,7 @@ func initVscodeTypesRuntimeSuiDTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/.vscode/types/runtime/sui.d.ts", size: 1713, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/.vscode/types/runtime/sui.d.ts", size: 1713, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1240,7 +1240,7 @@ func initVscodeTypesRuntimeTestingDTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/.vscode/types/runtime/testing.d.ts", size: 9077, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/.vscode/types/runtime/testing.d.ts", size: 9077, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1260,7 +1260,7 @@ func initVscodeTypesRuntimeTimeDTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/.vscode/types/runtime/time.d.ts", size: 711, mode: os.FileMode(493), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/.vscode/types/runtime/time.d.ts", size: 711, mode: os.FileMode(493), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1280,7 +1280,7 @@ func initVscodeTypesRuntimeDTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/.vscode/types/runtime.d.ts", size: 525, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/.vscode/types/runtime.d.ts", size: 525, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1300,7 +1300,7 @@ func initVscodeTypesSuiDTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/.vscode/types/sui.d.ts", size: 18323, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/.vscode/types/sui.d.ts", size: 18323, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1320,7 +1320,7 @@ func initAgentAgentYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/agent/agent.yml", size: 1583, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/agent/agent.yml", size: 1583, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1340,7 +1340,7 @@ func initAgentLocalesEnUsYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/agent/locales/en-us.yml", size: 151, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/agent/locales/en-us.yml", size: 151, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1360,7 +1360,7 @@ func initAgentLocalesZhCnYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/agent/locales/zh-cn.yml", size: 135, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/agent/locales/zh-cn.yml", size: 135, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1380,7 +1380,7 @@ func initAgentPromptsYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/agent/prompts.yml", size: 713, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/agent/prompts.yml", size: 713, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1400,7 +1400,7 @@ func initAgentSearchYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/agent/search.yml", size: 330, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/agent/search.yml", size: 330, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1420,7 +1420,7 @@ func initAgentTemplate__assetsReadmeMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/agent/template/__assets/README.md", size: 33, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/agent/template/__assets/README.md", size: 33, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1440,7 +1440,7 @@ func initAgentTemplate__assetsBrandsAppleSvg() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/agent/template/__assets/brands/apple.svg", size: 650, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/agent/template/__assets/brands/apple.svg", size: 650, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1460,7 +1460,7 @@ func initAgentTemplate__assetsBrandsGithubSvg() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/agent/template/__assets/brands/github.svg", size: 822, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/agent/template/__assets/brands/github.svg", size: 822, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1480,7 +1480,7 @@ func initAgentTemplate__assetsBrandsGoogleSvg() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/agent/template/__assets/brands/google.svg", size: 457, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/agent/template/__assets/brands/google.svg", size: 457, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1500,7 +1500,7 @@ func initAgentTemplate__assetsBrandsMicrosoftSvg() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/agent/template/__assets/brands/microsoft.svg", size: 206, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/agent/template/__assets/brands/microsoft.svg", size: 206, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1520,7 +1520,7 @@ func initAgentTemplate__assetsCssVarsCss() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/agent/template/__assets/css/vars.css", size: 7296, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/agent/template/__assets/css/vars.css", size: 7296, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1540,7 +1540,7 @@ func initAgentTemplate__assetsImagesAssistantsExpensePng() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/agent/template/__assets/images/assistants/expense.png", size: 1434910, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/agent/template/__assets/images/assistants/expense.png", size: 1434910, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1560,7 +1560,7 @@ func initAgentTemplate__assetsImagesAssistantsTasksSvg() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/agent/template/__assets/images/assistants/tasks.svg", size: 1686, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/agent/template/__assets/images/assistants/tasks.svg", size: 1686, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1580,7 +1580,7 @@ func initAgentTemplate__assetsImagesIconsAppPng() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/agent/template/__assets/images/icons/app.png", size: 18302, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/agent/template/__assets/images/icons/app.png", size: 18302, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1600,7 +1600,7 @@ func initAgentTemplate__assetsImagesLogosLogo_colorSvg() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/agent/template/__assets/images/logos/logo_color.svg", size: 2608, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/agent/template/__assets/images/logos/logo_color.svg", size: 2608, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1620,7 +1620,7 @@ func initAgentTemplate__assetsImagesLogosWordmarkSvg() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/agent/template/__assets/images/logos/wordmark.svg", size: 8648, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/agent/template/__assets/images/logos/wordmark.svg", size: 8648, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1640,7 +1640,7 @@ func initAgentTemplate__assetsJsEcharts543MinJs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/agent/template/__assets/js/echarts-5.4.3.min.js", size: 1024740, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/agent/template/__assets/js/echarts-5.4.3.min.js", size: 1024740, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1660,7 +1660,7 @@ func initAgentTemplate__assetsJsHighlightMinJs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/agent/template/__assets/js/highlight.min.js", size: 65157, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/agent/template/__assets/js/highlight.min.js", size: 65157, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1680,7 +1680,7 @@ func initAgentTemplate__assetsJsRemarkableMinJs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/agent/template/__assets/js/remarkable.min.js", size: 122397, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/agent/template/__assets/js/remarkable.min.js", size: 122397, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1700,7 +1700,7 @@ func initAgentTemplate__assetsJsYaoAgentDTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/agent/template/__assets/js/yao-agent.d.ts", size: 2082, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/agent/template/__assets/js/yao-agent.d.ts", size: 2082, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1720,7 +1720,7 @@ func initAgentTemplate__assetsJsYaoAgentJs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/agent/template/__assets/js/yao-agent.js", size: 15828, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/agent/template/__assets/js/yao-agent.js", size: 15828, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1740,7 +1740,7 @@ func initAgentTemplate__dataJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/agent/template/__data.json", size: 538, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/agent/template/__data.json", size: 538, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1760,7 +1760,7 @@ func initAgentTemplate__documentHtml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/agent/template/__document.html", size: 4391, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/agent/template/__document.html", size: 4391, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1780,7 +1780,7 @@ func initAgentTemplatePackageJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/agent/template/package.json", size: 356, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/agent/template/package.json", size: 356, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1800,7 +1800,7 @@ func initAgentTemplatePages401401Css() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/agent/template/pages/401/401.css", size: 700, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/agent/template/pages/401/401.css", size: 700, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1820,7 +1820,7 @@ func initAgentTemplatePages401401Html() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/agent/template/pages/401/401.html", size: 531, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/agent/template/pages/401/401.html", size: 531, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1840,7 +1840,7 @@ func initAgentTemplatePages401401Json() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/agent/template/pages/401/401.json", size: 54, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/agent/template/pages/401/401.json", size: 54, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1860,7 +1860,7 @@ func initAgentTemplatePages401401Ts() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/agent/template/pages/401/401.ts", size: 214, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/agent/template/pages/401/401.ts", size: 214, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1880,7 +1880,7 @@ func initAgentTemplatePages401__localesEnUsYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/agent/template/pages/401/__locales/en-us.yml", size: 145, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/agent/template/pages/401/__locales/en-us.yml", size: 145, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1900,7 +1900,7 @@ func initAgentTemplatePages401__localesZhCnYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/agent/template/pages/401/__locales/zh-cn.yml", size: 139, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/agent/template/pages/401/__locales/zh-cn.yml", size: 139, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1920,7 +1920,7 @@ func initAgentTemplatePages404404Css() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/agent/template/pages/404/404.css", size: 1877, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/agent/template/pages/404/404.css", size: 1877, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1940,7 +1940,7 @@ func initAgentTemplatePages404404Html() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/agent/template/pages/404/404.html", size: 896, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/agent/template/pages/404/404.html", size: 896, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1960,7 +1960,7 @@ func initAgentTemplatePages404404Json() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/agent/template/pages/404/404.json", size: 32, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/agent/template/pages/404/404.json", size: 32, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -1980,7 +1980,7 @@ func initAgentTemplatePages404404Ts() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/agent/template/pages/404/404.ts", size: 450, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/agent/template/pages/404/404.ts", size: 450, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2000,7 +2000,7 @@ func initAgentTemplatePages404__localesEnUsYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/agent/template/pages/404/__locales/en-us.yml", size: 243, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/agent/template/pages/404/__locales/en-us.yml", size: 243, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2020,7 +2020,7 @@ func initAgentTemplatePages404__localesZhCnYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/agent/template/pages/404/__locales/zh-cn.yml", size: 232, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/agent/template/pages/404/__locales/zh-cn.yml", size: 232, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2040,7 +2040,7 @@ func initAiDocsReadmeMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/ai-docs/README.md", size: 6145, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/ai-docs/README.md", size: 6145, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2060,7 +2060,7 @@ func initAiDocsAgentMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/ai-docs/agent.md", size: 11433, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/ai-docs/agent.md", size: 11433, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2080,7 +2080,7 @@ func initAiDocsAttachmentMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/ai-docs/attachment.md", size: 1891, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/ai-docs/attachment.md", size: 1891, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2100,7 +2100,7 @@ func initAiDocsAuthorizedMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/ai-docs/authorized.md", size: 4178, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/ai-docs/authorized.md", size: 4178, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2120,7 +2120,7 @@ func initAiDocsConcurrentMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/ai-docs/concurrent.md", size: 2833, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/ai-docs/concurrent.md", size: 2833, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2140,7 +2140,7 @@ func initAiDocsExcelMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/ai-docs/excel.md", size: 1911, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/ai-docs/excel.md", size: 1911, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2160,7 +2160,7 @@ func initAiDocsExceptionMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/ai-docs/exception.md", size: 1440, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/ai-docs/exception.md", size: 1440, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2180,7 +2180,7 @@ func initAiDocsFfmpegMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/ai-docs/ffmpeg.md", size: 1204, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/ai-docs/ffmpeg.md", size: 1204, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2200,7 +2200,7 @@ func initAiDocsFsMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/ai-docs/fs.md", size: 3614, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/ai-docs/fs.md", size: 3614, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2220,7 +2220,7 @@ func initAiDocsHttpMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/ai-docs/http.md", size: 2110, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/ai-docs/http.md", size: 2110, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2240,7 +2240,7 @@ func initAiDocsJobMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/ai-docs/job.md", size: 3034, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/ai-docs/job.md", size: 3034, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2260,7 +2260,7 @@ func initAiDocsModelMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/ai-docs/model.md", size: 3558, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/ai-docs/model.md", size: 3558, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2280,7 +2280,7 @@ func initAiDocsOfficeMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/ai-docs/office.md", size: 1265, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/ai-docs/office.md", size: 1265, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2300,7 +2300,7 @@ func initAiDocsPdfMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/ai-docs/pdf.md", size: 860, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/ai-docs/pdf.md", size: 860, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2320,7 +2320,7 @@ func initAiDocsRssMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/ai-docs/rss.md", size: 7229, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/ai-docs/rss.md", size: 7229, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2340,7 +2340,7 @@ func initAiDocsSitemapMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/ai-docs/sitemap.md", size: 9902, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/ai-docs/sitemap.md", size: 9902, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2360,7 +2360,7 @@ func initAiDocsStoreMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/ai-docs/store.md", size: 3226, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/ai-docs/store.md", size: 3226, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2380,7 +2380,7 @@ func initAiDocsSuiMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/ai-docs/sui.md", size: 22445, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/ai-docs/sui.md", size: 22445, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2400,7 +2400,7 @@ func initAiDocsTestingMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/ai-docs/testing.md", size: 13980, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/ai-docs/testing.md", size: 13980, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2420,7 +2420,7 @@ func initAiDocsTextMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/ai-docs/text.md", size: 2401, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/ai-docs/text.md", size: 2401, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2440,7 +2440,7 @@ func initAppYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/app.yao", size: 1894, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/app.yao", size: 1894, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2460,7 +2460,7 @@ func initAssistantsLlmsLocalesEnUsYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/assistants/llms/locales/en-us.yml", size: 235, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/assistants/llms/locales/en-us.yml", size: 235, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2480,7 +2480,7 @@ func initAssistantsLlmsLocalesZhCnYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/assistants/llms/locales/zh-cn.yml", size: 231, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/assistants/llms/locales/zh-cn.yml", size: 231, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2500,7 +2500,7 @@ func initAssistantsLlmsPackageYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/assistants/llms/package.yao", size: 546, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/assistants/llms/package.yao", size: 546, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2520,7 +2520,7 @@ func initAssistantsLlmsPromptsYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/assistants/llms/prompts.yml", size: 127, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/assistants/llms/prompts.yml", size: 127, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2540,7 +2540,7 @@ func initAssistantsMessagesLocalesEnUsYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/assistants/messages/locales/en-us.yml", size: 383, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/assistants/messages/locales/en-us.yml", size: 383, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2560,7 +2560,7 @@ func initAssistantsMessagesLocalesZhCnYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/assistants/messages/locales/zh-cn.yml", size: 371, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/assistants/messages/locales/zh-cn.yml", size: 371, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2580,7 +2580,7 @@ func initAssistantsMessagesPackageYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/assistants/messages/package.yao", size: 562, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/assistants/messages/package.yao", size: 562, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2600,7 +2600,7 @@ func initAssistantsMessagesSrcActionTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/assistants/messages/src/action.ts", size: 4752, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/assistants/messages/src/action.ts", size: 4752, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2620,7 +2620,7 @@ func initAssistantsMessagesSrcBasicTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/assistants/messages/src/basic.ts", size: 3310, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/assistants/messages/src/basic.ts", size: 3310, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2640,7 +2640,7 @@ func initAssistantsMessagesSrcCodeTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/assistants/messages/src/code.ts", size: 2463, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/assistants/messages/src/code.ts", size: 2463, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2660,7 +2660,7 @@ func initAssistantsMessagesSrcErrorTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/assistants/messages/src/error.ts", size: 6281, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/assistants/messages/src/error.ts", size: 6281, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2680,7 +2680,7 @@ func initAssistantsMessagesSrcIndexTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/assistants/messages/src/index.ts", size: 3326, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/assistants/messages/src/index.ts", size: 3326, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2700,7 +2700,7 @@ func initAssistantsMessagesSrcMarkdownTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/assistants/messages/src/markdown.ts", size: 7045, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/assistants/messages/src/markdown.ts", size: 7045, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2720,7 +2720,7 @@ func initAssistantsYaoLocalesEnUsYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/assistants/yao/locales/en-us.yml", size: 353, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/assistants/yao/locales/en-us.yml", size: 353, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2740,7 +2740,7 @@ func initAssistantsYaoLocalesZhCnYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/assistants/yao/locales/zh-cn.yml", size: 363, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/assistants/yao/locales/zh-cn.yml", size: 363, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2760,7 +2760,7 @@ func initAssistantsYaoPackageYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/assistants/yao/package.yao", size: 582, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/assistants/yao/package.yao", size: 582, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2780,7 +2780,7 @@ func initAssistantsYaoPromptsYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/assistants/yao/prompts.yml", size: 648, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/assistants/yao/prompts.yml", size: 648, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2800,7 +2800,7 @@ func initConnectorsAnthropicClaudeOpus4_5ConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/anthropic/claude-opus-4_5.conn.yao", size: 385, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/anthropic/claude-opus-4_5.conn.yao", size: 385, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2820,7 +2820,7 @@ func initConnectorsAnthropicClaudeSonnet4_5ConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/anthropic/claude-sonnet-4_5.conn.yao", size: 389, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/anthropic/claude-sonnet-4_5.conn.yao", size: 389, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2840,7 +2840,7 @@ func initConnectorsAzureGpt5_2ConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/azure/gpt-5_2.conn.yao", size: 377, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/azure/gpt-5_2.conn.yao", size: 377, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2860,7 +2860,7 @@ func initConnectorsClaudeHaiku3_0ConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/claude/haiku-3_0.conn.yao", size: 250, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/claude/haiku-3_0.conn.yao", size: 250, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2880,7 +2880,7 @@ func initConnectorsClaudeHaiku4_5ThinkingConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/claude/haiku-4_5-thinking.conn.yao", size: 403, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/claude/haiku-4_5-thinking.conn.yao", size: 403, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2900,7 +2900,7 @@ func initConnectorsClaudeHaiku4_5ConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/claude/haiku-4_5.conn.yao", size: 306, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/claude/haiku-4_5.conn.yao", size: 306, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2920,7 +2920,7 @@ func initConnectorsClaudeOpus4_6ConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/claude/opus-4_6.conn.yao", size: 360, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/claude/opus-4_6.conn.yao", size: 360, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2940,7 +2940,7 @@ func initConnectorsClaudeSonnet4_5ThinkingConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/claude/sonnet-4_5-thinking.conn.yao", size: 405, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/claude/sonnet-4_5-thinking.conn.yao", size: 405, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2960,7 +2960,7 @@ func initConnectorsClaudeSonnet4_5ConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/claude/sonnet-4_5.conn.yao", size: 308, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/claude/sonnet-4_5.conn.yao", size: 308, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -2980,7 +2980,7 @@ func initConnectorsDeepseekDeepseekChatConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/deepseek/deepseek-chat.conn.yao", size: 377, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/deepseek/deepseek-chat.conn.yao", size: 377, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3000,7 +3000,7 @@ func initConnectorsDeepseekDeepseekReasonerConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/deepseek/deepseek-reasoner.conn.yao", size: 385, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/deepseek/deepseek-reasoner.conn.yao", size: 385, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3020,7 +3020,7 @@ func initConnectorsFireworksLlama4MaverickConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/fireworks/llama-4-maverick.conn.yao", size: 449, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/fireworks/llama-4-maverick.conn.yao", size: 449, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3040,7 +3040,7 @@ func initConnectorsGoogleGemini2_5ProConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/google/gemini-2_5-pro.conn.yao", size: 406, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/google/gemini-2_5-pro.conn.yao", size: 406, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3060,7 +3060,7 @@ func initConnectorsGoogleGemini3FlashConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/google/gemini-3-flash.conn.yao", size: 416, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/google/gemini-3-flash.conn.yao", size: 416, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3080,7 +3080,7 @@ func initConnectorsGroqLlama4MaverickConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/groq/llama-4-maverick.conn.yao", size: 420, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/groq/llama-4-maverick.conn.yao", size: 420, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3100,7 +3100,7 @@ func initConnectorsMetaLlama4MaverickConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/meta/llama-4-maverick.conn.yao", size: 400, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/meta/llama-4-maverick.conn.yao", size: 400, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3120,7 +3120,7 @@ func initConnectorsMistralMistralLarge3ConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/mistral/mistral-large-3.conn.yao", size: 381, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/mistral/mistral-large-3.conn.yao", size: 381, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3140,7 +3140,7 @@ func initConnectorsMoonshotKimiK20905PreviewConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/moonshot/kimi-k2-0905-preview.conn.yao", size: 316, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/moonshot/kimi-k2-0905-preview.conn.yao", size: 316, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3160,7 +3160,7 @@ func initConnectorsMoonshotKimiK2ThinkingTurboConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/moonshot/kimi-k2-thinking-turbo.conn.yao", size: 345, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/moonshot/kimi-k2-thinking-turbo.conn.yao", size: 345, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3180,7 +3180,7 @@ func initConnectorsMoonshotKimiK2ThinkingConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/moonshot/kimi-k2-thinking.conn.yao", size: 333, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/moonshot/kimi-k2-thinking.conn.yao", size: 333, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3200,7 +3200,7 @@ func initConnectorsMoonshotKimiK2TurboPreviewConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/moonshot/kimi-k2-turbo-preview.conn.yao", size: 318, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/moonshot/kimi-k2-turbo-preview.conn.yao", size: 318, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3220,7 +3220,7 @@ func initConnectorsMoonshotKimiK2_5CodeConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/moonshot/kimi-k2_5-code.conn.yao", size: 303, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/moonshot/kimi-k2_5-code.conn.yao", size: 303, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3240,7 +3240,7 @@ func initConnectorsMoonshotKimiK2_5ThinkingConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/moonshot/kimi-k2_5-thinking.conn.yao", size: 401, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/moonshot/kimi-k2_5-thinking.conn.yao", size: 401, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3260,7 +3260,7 @@ func initConnectorsMoonshotKimiK2_5ConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/moonshot/kimi-k2_5.conn.yao", size: 368, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/moonshot/kimi-k2_5.conn.yao", size: 368, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3280,7 +3280,7 @@ func initConnectorsOllamaDeepseekR1ConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/ollama/deepseek-r1.conn.yao", size: 356, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/ollama/deepseek-r1.conn.yao", size: 356, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3300,7 +3300,7 @@ func initConnectorsOllamaGemma3ConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/ollama/gemma3.conn.yao", size: 350, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/ollama/gemma3.conn.yao", size: 350, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3320,7 +3320,7 @@ func initConnectorsOllamaLlama3_3ConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/ollama/llama3_3.conn.yao", size: 355, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/ollama/llama3_3.conn.yao", size: 355, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3340,7 +3340,7 @@ func initConnectorsOllamaQwen2_50_5bConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/ollama/qwen2_5-0_5b.conn.yao", size: 362, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/ollama/qwen2_5-0_5b.conn.yao", size: 362, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3360,7 +3360,7 @@ func initConnectorsOllamaQwen2_5Coder0_5bYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/ollama/qwen2_5-coder-0_5b.yao", size: 373, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/ollama/qwen2_5-coder-0_5b.yao", size: 373, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3380,7 +3380,7 @@ func initConnectorsOllamaQwen2_5CoderConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/ollama/qwen2_5-coder.conn.yao", size: 364, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/ollama/qwen2_5-coder.conn.yao", size: 364, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3400,7 +3400,7 @@ func initConnectorsOllamaQwen3ConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/ollama/qwen3.conn.yao", size: 345, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/ollama/qwen3.conn.yao", size: 345, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3420,7 +3420,7 @@ func initConnectorsOpenaiGpt4oMiniConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/openai/gpt-4o-mini.conn.yao", size: 371, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/openai/gpt-4o-mini.conn.yao", size: 371, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3440,7 +3440,7 @@ func initConnectorsOpenaiGpt4oConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/openai/gpt-4o.conn.yao", size: 360, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/openai/gpt-4o.conn.yao", size: 360, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3460,7 +3460,7 @@ func initConnectorsOpenaiGpt5_2ConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/openai/gpt-5_2.conn.yao", size: 362, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/openai/gpt-5_2.conn.yao", size: 362, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3480,7 +3480,7 @@ func initConnectorsOpenaiO3ConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/openai/o3.conn.yao", size: 354, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/openai/o3.conn.yao", size: 354, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3500,7 +3500,7 @@ func initConnectorsOpenaiTextEmbedding3LargeConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/openai/text-embedding-3-large.conn.yao", size: 394, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/openai/text-embedding-3-large.conn.yao", size: 394, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3520,7 +3520,7 @@ func initConnectorsOpenrouterAutoConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/openrouter/auto.conn.yao", size: 395, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/openrouter/auto.conn.yao", size: 395, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3540,7 +3540,7 @@ func initConnectorsOpenrouterClaudeOpus4_5ConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/openrouter/claude-opus-4_5.conn.yao", size: 409, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/openrouter/claude-opus-4_5.conn.yao", size: 409, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3560,7 +3560,7 @@ func initConnectorsOpenrouterNovaPremierConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/openrouter/nova-premier.conn.yao", size: 410, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/openrouter/nova-premier.conn.yao", size: 410, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3580,7 +3580,7 @@ func initConnectorsSiliconflowDeepseekV3ConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/siliconflow/deepseek-v3.conn.yao", size: 405, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/siliconflow/deepseek-v3.conn.yao", size: 405, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3600,7 +3600,7 @@ func initConnectorsSiliconflowQwen2_572bConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/siliconflow/qwen-2_5-72b.conn.yao", size: 408, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/siliconflow/qwen-2_5-72b.conn.yao", size: 408, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3620,7 +3620,7 @@ func initConnectorsTogetherDeepseekR1ConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/together/deepseek-r1.conn.yao", size: 396, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/together/deepseek-r1.conn.yao", size: 396, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3640,7 +3640,7 @@ func initConnectorsTogetherLlama4MaverickConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/together/llama-4-maverick.conn.yao", size: 429, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/together/llama-4-maverick.conn.yao", size: 429, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3660,7 +3660,7 @@ func initConnectorsVolcengineDeepseekR1ConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/volcengine/deepseek-r1.conn.yao", size: 408, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/volcengine/deepseek-r1.conn.yao", size: 408, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3680,7 +3680,7 @@ func initConnectorsVolcengineDeepseekV3ConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/volcengine/deepseek-v3.conn.yao", size: 408, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/volcengine/deepseek-v3.conn.yao", size: 408, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3700,7 +3700,7 @@ func initConnectorsVolcengineDoubao1_5ProConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/volcengine/doubao-1_5-pro.conn.yao", size: 412, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/volcengine/doubao-1_5-pro.conn.yao", size: 412, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3720,7 +3720,7 @@ func initConnectorsVolcengineGlm4PlusConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/volcengine/glm-4-plus.conn.yao", size: 399, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/volcengine/glm-4-plus.conn.yao", size: 399, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3740,7 +3740,7 @@ func initConnectorsVolcengineQwenVlMaxConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/volcengine/qwen-vl-max.conn.yao", size: 403, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/volcengine/qwen-vl-max.conn.yao", size: 403, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3760,7 +3760,7 @@ func initConnectorsXaiGrok4ConnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/connectors/xai/grok-4.conn.yao", size: 352, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/connectors/xai/grok-4.conn.yao", size: 352, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3780,7 +3780,7 @@ func initDataReadmeMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/data/README.md", size: 41, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/data/README.md", size: 41, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3800,7 +3800,7 @@ func initDataTemplatesDefault__assetsReadmeMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/data/templates/default/__assets/README.md", size: 33, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/data/templates/default/__assets/README.md", size: 33, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3820,7 +3820,7 @@ func initDataTemplatesDefault__assetsBrandsAppleSvg() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/data/templates/default/__assets/brands/apple.svg", size: 650, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/data/templates/default/__assets/brands/apple.svg", size: 650, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3840,7 +3840,7 @@ func initDataTemplatesDefault__assetsBrandsDiscordSvg() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/data/templates/default/__assets/brands/discord.svg", size: 1373, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/data/templates/default/__assets/brands/discord.svg", size: 1373, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3860,7 +3860,7 @@ func initDataTemplatesDefault__assetsBrandsGithubSvg() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/data/templates/default/__assets/brands/github.svg", size: 822, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/data/templates/default/__assets/brands/github.svg", size: 822, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3880,7 +3880,7 @@ func initDataTemplatesDefault__assetsBrandsGoogleSvg() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/data/templates/default/__assets/brands/google.svg", size: 457, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/data/templates/default/__assets/brands/google.svg", size: 457, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3900,7 +3900,7 @@ func initDataTemplatesDefault__assetsBrandsMicrosoftSvg() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/data/templates/default/__assets/brands/microsoft.svg", size: 206, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/data/templates/default/__assets/brands/microsoft.svg", size: 206, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3920,7 +3920,7 @@ func initDataTemplatesDefault__assetsBrandsTwitterSvg() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/data/templates/default/__assets/brands/twitter.svg", size: 252, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/data/templates/default/__assets/brands/twitter.svg", size: 252, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3940,7 +3940,7 @@ func initDataTemplatesDefault__assetsBrandsYaoSvg() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/data/templates/default/__assets/brands/yao.svg", size: 2894, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/data/templates/default/__assets/brands/yao.svg", size: 2894, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3960,7 +3960,7 @@ func initDataTemplatesDefault__assetsBrandsYaoagentsSvg() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/data/templates/default/__assets/brands/yaoagents.svg", size: 2608, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/data/templates/default/__assets/brands/yaoagents.svg", size: 2608, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -3980,7 +3980,7 @@ func initDataTemplatesDefault__assetsImagesIconsAppPng() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/data/templates/default/__assets/images/icons/app.png", size: 34558, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/data/templates/default/__assets/images/icons/app.png", size: 34558, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4000,7 +4000,7 @@ func initDataTemplatesDefault__assetsImagesLogosLogo_colorSvg() (*asset, error) return nil, err } - info := bindataFileInfo{name: "init/data/templates/default/__assets/images/logos/logo_color.svg", size: 2909, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/data/templates/default/__assets/images/logos/logo_color.svg", size: 2909, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4020,7 +4020,7 @@ func initDataTemplatesDefault__assetsImagesLogosWordmarkSvg() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/data/templates/default/__assets/images/logos/wordmark.svg", size: 3615, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/data/templates/default/__assets/images/logos/wordmark.svg", size: 3615, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4040,7 +4040,7 @@ func initDataTemplatesDefault__dataJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/data/templates/default/__data.json", size: 32, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/data/templates/default/__data.json", size: 32, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4060,7 +4060,7 @@ func initDataTemplatesDefault__documentHtml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/data/templates/default/__document.html", size: 492, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/data/templates/default/__document.html", size: 492, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4080,7 +4080,7 @@ func initDataTemplatesDefaultIndexIndexBackendTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/data/templates/default/index/index.backend.ts", size: 1033, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/data/templates/default/index/index.backend.ts", size: 1033, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4100,7 +4100,7 @@ func initDataTemplatesDefaultIndexIndexCss() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/data/templates/default/index/index.css", size: 3466, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/data/templates/default/index/index.css", size: 3466, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4120,7 +4120,7 @@ func initDataTemplatesDefaultIndexIndexHtml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/data/templates/default/index/index.html", size: 4708, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/data/templates/default/index/index.html", size: 4708, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4140,7 +4140,7 @@ func initDataTemplatesDefaultIndexIndexJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/data/templates/default/index/index.json", size: 52, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/data/templates/default/index/index.json", size: 52, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4160,7 +4160,7 @@ func initDbReadmeMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/db/README.md", size: 84, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/db/README.md", size: 84, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4180,7 +4180,7 @@ func initIconsAppIcns() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/icons/app.icns", size: 67465, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/icons/app.icns", size: 67465, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4200,7 +4200,7 @@ func initIconsAppIco() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/icons/app.ico", size: 54993, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/icons/app.ico", size: 54993, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4220,7 +4220,7 @@ func initIconsAppPng() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/icons/app.png", size: 34558, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/icons/app.png", size: 34558, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4240,7 +4240,7 @@ func initLogsReadmeMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/logs/README.md", size: 28, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/logs/README.md", size: 28, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4260,7 +4260,7 @@ func initMessengersChannelsYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/messengers/channels.yao", size: 477, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/messengers/channels.yao", size: 477, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4280,7 +4280,7 @@ func initMessengersProvidersPrimarySmtpYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/messengers/providers/primary.smtp.yao", size: 440, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/messengers/providers/primary.smtp.yao", size: 440, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4300,7 +4300,7 @@ func initMessengersProvidersSecondaryMailgunYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/messengers/providers/secondary.mailgun.yao", size: 337, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/messengers/providers/secondary.mailgun.yao", size: 337, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4320,7 +4320,7 @@ func initMessengersProvidersUnifiedTwilioYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/messengers/providers/unified.twilio.yao", size: 508, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/messengers/providers/unified.twilio.yao", size: 508, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4340,7 +4340,7 @@ func initMessengersTemplatesEnInvite_memberMailHtml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/messengers/templates/en/invite_member.mail.html", size: 483, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/messengers/templates/en/invite_member.mail.html", size: 483, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4360,7 +4360,7 @@ func initMessengersTemplatesEnInvite_memberSmsTxt() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/messengers/templates/en/invite_member.sms.txt", size: 114, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/messengers/templates/en/invite_member.sms.txt", size: 114, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4380,7 +4380,7 @@ func initMessengersTemplatesEnVerify_emailMailHtml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/messengers/templates/en/verify_email.mail.html", size: 397, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/messengers/templates/en/verify_email.mail.html", size: 397, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4400,7 +4400,7 @@ func initMessengersTemplatesEnVerify_mobileSmsTxt() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/messengers/templates/en/verify_mobile.sms.txt", size: 124, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/messengers/templates/en/verify_mobile.sms.txt", size: 124, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4420,7 +4420,7 @@ func initMessengersTemplatesZhCnInvite_mailHtml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/messengers/templates/zh-cn/invite_mail.html", size: 373, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/messengers/templates/zh-cn/invite_mail.html", size: 373, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4440,7 +4440,7 @@ func initMessengersTemplatesZhCnInvite_memberMailHtml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/messengers/templates/zh-cn/invite_member.mail.html", size: 441, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/messengers/templates/zh-cn/invite_member.mail.html", size: 441, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4460,7 +4460,7 @@ func initMessengersTemplatesZhCnInvite_smsTxt() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/messengers/templates/zh-cn/invite_sms.txt", size: 122, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/messengers/templates/zh-cn/invite_sms.txt", size: 122, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4480,7 +4480,7 @@ func initMessengersTemplatesZhCnVerify_emailMailHtml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/messengers/templates/zh-cn/verify_email.mail.html", size: 347, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/messengers/templates/zh-cn/verify_email.mail.html", size: 347, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4500,7 +4500,7 @@ func initMessengersTemplatesZhCnVerify_mobileSmsTxt() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/messengers/templates/zh-cn/verify_mobile.sms.txt", size: 114, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/messengers/templates/zh-cn/verify_mobile.sms.txt", size: 114, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4520,7 +4520,7 @@ func initModelsMenuModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/models/menu.mod.yao", size: 3246, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/models/menu.mod.yao", size: 3246, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4540,7 +4540,7 @@ func initOpenapiCertsReadmeMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/certs/README.md", size: 10174, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/certs/README.md", size: 10174, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4560,7 +4560,7 @@ func initOpenapiCertsMtlsClientCaKeyTestingOnlyDoNotUseInProductionPem() (*asset return nil, err } - info := bindataFileInfo{name: "init/openapi/certs/mtls-client-ca-key-TESTING-ONLY-DO-NOT-USE-IN-PRODUCTION.pem", size: 3268, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/certs/mtls-client-ca-key-TESTING-ONLY-DO-NOT-USE-IN-PRODUCTION.pem", size: 3268, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4580,7 +4580,7 @@ func initOpenapiCertsMtlsClientCaPem() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/certs/mtls-client-ca.pem", size: 2029, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/certs/mtls-client-ca.pem", size: 2029, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4600,7 +4600,7 @@ func initOpenapiCertsSigningCertPem() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/certs/signing-cert.pem", size: 2090, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/certs/signing-cert.pem", size: 2090, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4620,7 +4620,7 @@ func initOpenapiCertsSigningKeyPem() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/certs/signing-key.pem", size: 3272, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/certs/signing-key.pem", size: 3272, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4640,7 +4640,7 @@ func initOpenapiFeaturesAliasYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/features/alias.yml", size: 800, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/features/alias.yml", size: 800, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4660,7 +4660,7 @@ func initOpenapiFeaturesFeaturesYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/features/features.yml", size: 1202, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/features/features.yml", size: 1202, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4680,7 +4680,7 @@ func initOpenapiFeaturesUserProfileYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/features/user/profile.yml", size: 96, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/features/user/profile.yml", size: 96, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4700,7 +4700,7 @@ func initOpenapiFeaturesUserTeamYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/features/user/team.yml", size: 286, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/features/user/team.yml", size: 286, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4720,7 +4720,7 @@ func initOpenapiOpenapiYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/openapi.yao", size: 8378, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/openapi.yao", size: 8378, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4740,7 +4740,7 @@ func initOpenapiScopes__yaoYaoYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/__yao/yao.yml", size: 747, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/__yao/yao.yml", size: 747, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4760,7 +4760,7 @@ func initOpenapiScopesAgentAssistantsYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/agent/assistants.yml", size: 2054, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/agent/assistants.yml", size: 2054, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4780,7 +4780,7 @@ func initOpenapiScopesAgentRobotsYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/agent/robots.yml", size: 6180, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/agent/robots.yml", size: 6180, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4800,7 +4800,7 @@ func initOpenapiScopesAliasYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/alias.yml", size: 21166, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/alias.yml", size: 21166, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4820,7 +4820,7 @@ func initOpenapiScopesApiApiYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/api/api.yml", size: 727, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/api/api.yml", size: 727, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4840,7 +4840,7 @@ func initOpenapiScopesAppMenuYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/app/menu.yml", size: 476, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/app/menu.yml", size: 476, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4860,7 +4860,7 @@ func initOpenapiScopesChatCompletionsYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/chat/completions.yml", size: 2001, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/chat/completions.yml", size: 2001, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4880,7 +4880,7 @@ func initOpenapiScopesChatModelsYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/chat/models.yml", size: 589, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/chat/models.yml", size: 589, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4900,7 +4900,7 @@ func initOpenapiScopesChatReferencesYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/chat/references.yml", size: 581, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/chat/references.yml", size: 581, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4920,7 +4920,7 @@ func initOpenapiScopesChatSessionsYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/chat/sessions.yml", size: 1603, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/chat/sessions.yml", size: 1603, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4940,7 +4940,7 @@ func initOpenapiScopesComputerComputersYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/computer/computers.yml", size: 539, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/computer/computers.yml", size: 539, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4960,7 +4960,7 @@ func initOpenapiScopesDslDslsYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/dsl/dsls.yml", size: 2911, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/dsl/dsls.yml", size: 2911, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -4980,7 +4980,7 @@ func initOpenapiScopesFileFilesYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/file/files.yml", size: 1486, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/file/files.yml", size: 1486, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5000,7 +5000,7 @@ func initOpenapiScopesJobCategoriesYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/job/categories.yml", size: 249, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/job/categories.yml", size: 249, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5020,7 +5020,7 @@ func initOpenapiScopesJobExecutionsYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/job/executions.yml", size: 1217, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/job/executions.yml", size: 1217, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5040,7 +5040,7 @@ func initOpenapiScopesJobJobsYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/job/jobs.yml", size: 937, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/job/jobs.yml", size: 937, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5060,7 +5060,7 @@ func initOpenapiScopesJobLogsYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/job/logs.yml", size: 564, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/job/logs.yml", size: 564, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5080,7 +5080,7 @@ func initOpenapiScopesJobStatsYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/job/stats.yml", size: 419, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/job/stats.yml", size: 419, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5100,7 +5100,7 @@ func initOpenapiScopesKbBackupsYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/kb/backups.yml", size: 713, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/kb/backups.yml", size: 713, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5120,7 +5120,7 @@ func initOpenapiScopesKbCollectionsYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/kb/collections.yml", size: 1725, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/kb/collections.yml", size: 1725, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5140,7 +5140,7 @@ func initOpenapiScopesKbDocumentsYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/kb/documents.yml", size: 2235, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/kb/documents.yml", size: 2235, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5160,7 +5160,7 @@ func initOpenapiScopesKbGraphsYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/kb/graphs.yml", size: 1847, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/kb/graphs.yml", size: 1847, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5180,7 +5180,7 @@ func initOpenapiScopesKbHitsYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/kb/hits.yml", size: 1766, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/kb/hits.yml", size: 1766, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5200,7 +5200,7 @@ func initOpenapiScopesKbProvidersYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/kb/providers.yml", size: 351, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/kb/providers.yml", size: 351, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5220,7 +5220,7 @@ func initOpenapiScopesKbSearchYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/kb/search.yml", size: 535, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/kb/search.yml", size: 535, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5240,7 +5240,7 @@ func initOpenapiScopesKbSegmentsYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/kb/segments.yml", size: 2580, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/kb/segments.yml", size: 2580, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5260,7 +5260,7 @@ func initOpenapiScopesKbVotesYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/kb/votes.yml", size: 1805, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/kb/votes.yml", size: 1805, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5280,7 +5280,7 @@ func initOpenapiScopesLlmProvidersYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/llm/providers.yml", size: 268, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/llm/providers.yml", size: 268, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5300,7 +5300,7 @@ func initOpenapiScopesMcpServersYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/mcp/servers.yml", size: 242, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/mcp/servers.yml", size: 242, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5320,7 +5320,7 @@ func initOpenapiScopesMessengerChannelsYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/messenger/channels.yml", size: 244, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/messenger/channels.yml", size: 244, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5340,7 +5340,7 @@ func initOpenapiScopesMessengerProvidersYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/messenger/providers.yml", size: 306, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/messenger/providers.yml", size: 306, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5360,7 +5360,7 @@ func initOpenapiScopesMessengerWebhooksYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/messenger/webhooks.yml", size: 512, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/messenger/webhooks.yml", size: 512, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5380,7 +5380,7 @@ func initOpenapiScopesNodesNodesYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/nodes/nodes.yml", size: 541, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/nodes/nodes.yml", size: 541, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5400,7 +5400,7 @@ func initOpenapiScopesOtpCodesYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/otp/codes.yml", size: 346, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/otp/codes.yml", size: 346, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5420,7 +5420,7 @@ func initOpenapiScopesSandboxSandboxesYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/sandbox/sandboxes.yml", size: 1933, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/sandbox/sandboxes.yml", size: 1933, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5440,7 +5440,7 @@ func initOpenapiScopesSandboxVncYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/sandbox/vnc.yml", size: 707, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/sandbox/vnc.yml", size: 707, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5460,7 +5460,7 @@ func initOpenapiScopesScopesYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/scopes.yml", size: 731, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/scopes.yml", size: 731, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5480,7 +5480,7 @@ func initOpenapiScopesTraceTracesYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/trace/traces.yml", size: 1456, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/trace/traces.yml", size: 1456, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5500,7 +5500,7 @@ func initOpenapiScopesUserEntryYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/user/entry.yml", size: 794, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/user/entry.yml", size: 794, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5520,7 +5520,7 @@ func initOpenapiScopesUserFeaturesYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/user/features.yml", size: 231, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/user/features.yml", size: 231, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5540,7 +5540,7 @@ func initOpenapiScopesUserInvitationsYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/user/invitations.yml", size: 1458, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/user/invitations.yml", size: 1458, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5560,7 +5560,7 @@ func initOpenapiScopesUserMembersYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/user/members.yml", size: 1873, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/user/members.yml", size: 1873, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5580,7 +5580,7 @@ func initOpenapiScopesUserProfileYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/user/profile.yml", size: 366, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/user/profile.yml", size: 366, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5600,7 +5600,7 @@ func initOpenapiScopesUserTeamsYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/user/teams.yml", size: 1724, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/user/teams.yml", size: 1724, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5620,7 +5620,7 @@ func initOpenapiScopesWorkspaceWorkspacesYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/scopes/workspace/workspaces.yml", size: 2663, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/scopes/workspace/workspaces.yml", size: 2663, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5640,7 +5640,7 @@ func initOpenapiUserClientYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/user/client.yao", size: 624, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/user/client.yao", size: 624, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5660,7 +5660,7 @@ func initOpenapiUserEntryEnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/user/entry/en.yao", size: 2494, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/user/entry/en.yao", size: 2494, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5680,7 +5680,7 @@ func initOpenapiUserEntryZhCnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/user/entry/zh-cn.yao", size: 2378, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/user/entry/zh-cn.yao", size: 2378, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5700,7 +5700,7 @@ func initOpenapiUserProvidersAppleYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/user/providers/apple.yao", size: 946, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/user/providers/apple.yao", size: 946, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5720,7 +5720,7 @@ func initOpenapiUserProvidersGithubYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/user/providers/github.yao", size: 428, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/user/providers/github.yao", size: 428, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5740,7 +5740,7 @@ func initOpenapiUserProvidersGoogleYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/user/providers/google.yao", size: 434, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/user/providers/google.yao", size: 434, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5760,7 +5760,7 @@ func initOpenapiUserProvidersMicrosoftYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/user/providers/microsoft.yao", size: 487, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/user/providers/microsoft.yao", size: 487, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5780,7 +5780,7 @@ func initOpenapiUserTeamEnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/user/team/en.yao", size: 2662, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/user/team/en.yao", size: 2662, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5800,7 +5800,7 @@ func initOpenapiUserTeamZhCnYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/openapi/user/team/zh-cn.yao", size: 2576, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/openapi/user/team/zh-cn.yao", size: 2576, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5820,7 +5820,7 @@ func initScriptsMenuTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/scripts/menu.ts", size: 15362, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/scripts/menu.ts", size: 15362, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5840,7 +5840,7 @@ func initScriptsSetupTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/scripts/setup.ts", size: 12586, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/scripts/setup.ts", size: 12586, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5860,7 +5860,7 @@ func initSeedsInvitation_codesCsv() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/seeds/invitation_codes.csv", size: 643, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/seeds/invitation_codes.csv", size: 643, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5880,7 +5880,7 @@ func initSeedsMenusCsv() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/seeds/menus.csv", size: 976, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/seeds/menus.csv", size: 976, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5900,7 +5900,7 @@ func initSeedsRolesCsv() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/seeds/roles.csv", size: 2799, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/seeds/roles.csv", size: 2799, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5920,7 +5920,7 @@ func initSeedsTypesCsv() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/seeds/types.csv", size: 3357, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/seeds/types.csv", size: 3357, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5940,7 +5940,7 @@ func initServicesReademeMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/services/READEME.md", size: 18, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/services/READEME.md", size: 18, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5960,7 +5960,7 @@ func initSuisWebSuiYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/suis/web.sui.yao", size: 675, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/suis/web.sui.yao", size: 675, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -5980,7 +5980,7 @@ func initTsconfigJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "init/tsconfig.json", size: 178, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "init/tsconfig.json", size: 178, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6000,7 +6000,7 @@ func libsuiIndexTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "libsui/index.ts", size: 13051, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "libsui/index.ts", size: 13051, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6020,7 +6020,7 @@ func libsuiOpenapiTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "libsui/openapi.ts", size: 22959, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "libsui/openapi.ts", size: 22959, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6040,7 +6040,7 @@ func libsuiUtilsTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "libsui/utils.ts", size: 5959, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "libsui/utils.ts", size: 5959, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6060,7 +6060,7 @@ func libsuiYaoTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "libsui/yao.ts", size: 4338, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "libsui/yao.ts", size: 4338, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6080,7 +6080,7 @@ func publicIndexHtml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "public/index.html", size: 11, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "public/index.html", size: 11, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6100,12 +6100,12 @@ func uiIndexHtml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "ui/index.html", size: 11, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "ui/index.html", size: 11, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _yaoAssistantsEntityPackageYao = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x2c\xcd\x41\xaa\x84\x30\x0c\xc6\xf1\x7d\x4f\x11\xb2\x7e\x0b\x79\x4b\xf7\x9e\x63\xc8\xd8\x80\x41\x6d\x4b\x92\x61\x14\xe9\xdd\x87\x56\x97\xe5\xff\xeb\x97\x2b\x00\x60\xa2\x9d\x71\x04\x9c\x92\x8b\x9f\x30\x1d\xae\x34\x7b\x56\xfc\x6b\x35\xb2\xcd\x2a\xc5\x25\xa7\x8e\xee\x0a\xdc\xb0\xb0\x01\xa5\x08\xca\x1b\x35\x60\x8b\x14\xbb\xbf\xf9\x59\xfa\xe8\x37\xeb\xca\xcf\xd4\xc7\xd8\x70\x84\x0b\xd0\x98\x74\x5e\x5a\x8f\x62\xf4\xde\x38\x22\xd4\x6e\x72\xbf\xf4\xb0\x9d\x8e\x97\xe7\x95\xfb\xfb\x7f\x18\x06\xa8\xa1\x86\xf0\x0b\x00\x00\xff\xff\x35\x91\xf8\xa4\xb6\x00\x00\x00") +var _yaoAssistantsEntityPackageYao = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x2c\xce\x41\xaa\x84\x30\x0c\xc6\xf1\xbd\xa7\x08\x59\xbf\x85\xbc\x65\xf7\x9e\x63\xc8\xb4\x61\x0c\x6a\x2b\x4d\x64\x14\xf1\xee\x43\xa3\xcb\xf2\xfd\xfa\x27\x67\x07\x80\x99\x16\xc6\x00\x38\x64\x13\x3b\x60\xd8\xad\x52\xb4\x52\xf1\xaf\xad\x89\x35\x56\x59\x4d\x4a\x76\x74\xaf\xc0\x0d\x0b\x2b\x50\x4e\x50\x79\xa6\x06\x74\x94\x55\xef\x6f\x76\xac\x1e\xfd\x96\x3a\xf1\x93\x8a\x25\x67\xf6\x72\x00\xdc\x94\x43\x98\xe5\x33\xda\x3d\x6e\xca\x8a\x01\x4e\x40\x65\xaa\x71\x6c\x26\x89\xd2\x7b\xe6\x84\x70\xb9\x29\x7e\xc6\xc3\x16\xda\x5f\x56\x26\xf6\xf7\x7f\xdf\xf7\x70\x75\x57\xf7\x0b\x00\x00\xff\xff\x26\xd4\x4d\x7b\xd2\x00\x00\x00") func yaoAssistantsEntityPackageYaoBytes() ([]byte, error) { return bindataRead( @@ -6120,7 +6120,7 @@ func yaoAssistantsEntityPackageYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/assistants/entity/package.yao", size: 182, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/assistants/entity/package.yao", size: 210, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6140,12 +6140,12 @@ func yaoAssistantsEntityPromptsYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/assistants/entity/prompts.yml", size: 930, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/assistants/entity/prompts.yml", size: 930, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _yaoAssistantsFetchPackageYao = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4c\x8e\x41\x0a\xc2\x30\x10\x45\xf7\x3d\xc5\x30\x6b\x4f\xd0\x03\x88\x0b\x57\x82\x07\x98\x26\x5f\x1a\x6c\x93\x30\x99\xa0\x52\x72\x77\x69\x44\x74\xfb\xe6\xcd\xe3\x6f\x03\x11\x47\x59\xc1\x23\xf1\x11\xe6\x66\x3a\x61\xc9\x50\x3e\xec\x17\x8f\xe2\x34\x64\x0b\x29\xfe\x04\x89\x9e\xf0\x34\x15\x67\xe4\x52\x34\x44\xa3\x9b\xa6\x95\xae\x97\x73\xf9\xfc\xd9\x2b\xf7\xe2\x23\xe9\xfd\xdb\x92\x6a\x69\x15\x83\xe7\x91\x4c\x2b\x3a\xcc\x75\x5a\x82\xfb\x27\xb5\xa0\xf0\x48\x1b\x71\x81\xa8\x9b\xf7\x8c\x0f\x45\xa6\x05\x9e\xa9\x75\x27\xf5\x45\x5d\x6b\x43\x1b\xde\x01\x00\x00\xff\xff\x5e\x36\x26\x98\xc5\x00\x00\x00") +var _yaoAssistantsFetchPackageYao = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4c\x8e\x41\x6a\xc4\x30\x0c\x45\xf7\x39\x85\xd0\xba\x27\xf0\x01\x4a\x17\x5d\x15\x7a\x00\x45\x56\x88\xa9\x63\x19\x59\xa6\x33\x84\xdc\x7d\x88\xc3\x30\xb3\xfd\xef\xe9\xa1\x7d\x02\xc0\x42\x9b\x60\x00\xfc\x14\xe7\x15\xbe\x24\x57\x31\xfc\x38\x49\x94\xc6\x96\xaa\x27\x2d\x2f\x81\x4a\x04\xb9\xb9\x11\x3b\xb0\x16\x97\xe2\xb0\x98\x6e\xf0\xfb\xf3\xdd\xae\x3b\xbf\xd7\x51\xfc\x57\xfb\x7b\xb6\x58\x4b\x11\x76\xb5\x13\xf4\x26\x21\x44\x59\xa8\x67\xbf\x30\x75\xd7\x8d\x5c\x22\x06\x70\xeb\x32\xc6\xda\xe7\x9c\xf8\x7d\xe9\x4d\x1a\x06\xd8\x01\x9b\x90\xf1\x7a\xc6\x62\x6a\x34\x67\x89\x08\xc7\x70\x74\x3c\x3c\xb4\x63\x3a\xa6\x47\x00\x00\x00\xff\xff\x67\x6d\x22\xa8\xe4\x00\x00\x00") func yaoAssistantsFetchPackageYaoBytes() ([]byte, error) { return bindataRead( @@ -6160,7 +6160,7 @@ func yaoAssistantsFetchPackageYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/assistants/fetch/package.yao", size: 197, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/assistants/fetch/package.yao", size: 228, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6180,7 +6180,7 @@ func yaoAssistantsFetchPromptsYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/assistants/fetch/prompts.yml", size: 429, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/assistants/fetch/prompts.yml", size: 429, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6200,12 +6200,12 @@ func yaoAssistantsFetchSrcIndexTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/assistants/fetch/src/index.ts", size: 3001, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/assistants/fetch/src/index.ts", size: 3001, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _yaoAssistantsKeywordPackageYao = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x2c\x8c\x3d\x0a\xc3\x30\x0c\x46\x77\x9f\x42\x68\xee\x90\xa5\x4b\xf6\x4e\x3d\x44\x71\x6d\x41\x8d\x9b\x28\x48\x2a\x49\x08\xbe\x7b\xf1\xcf\xf8\xf1\xde\xfb\x2e\x07\x80\xab\x5f\x08\x67\xc0\x27\x9d\x3b\x4b\x84\xc7\x61\xe2\x83\xb1\xe0\xad\xe2\x48\x1a\x24\x6d\x96\x78\xad\xd6\xa0\xa0\xe4\x25\x7c\x20\xf7\x48\xbb\x6b\xe7\xd6\xae\x76\x96\x4c\xa3\xff\x29\x29\xce\x70\x01\xf6\xa4\xf2\x98\xd4\xbf\xbf\x14\x11\x4a\x73\xb8\xdd\x0f\x6d\xf1\xc7\xcb\x38\x53\xdb\xf7\x69\x82\xe2\x8a\xfb\x07\x00\x00\xff\xff\x2f\x47\xac\x1f\xaa\x00\x00\x00") +var _yaoAssistantsKeywordPackageYao = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x2c\x8d\x31\x0e\x83\x30\x0c\x45\x77\x4e\x61\x79\xee\xc0\xd2\x25\x7b\xa7\x1e\xa2\x4a\x13\xab\x44\x40\x8c\x6c\x23\x40\x88\xbb\x57\x24\x19\xad\xf7\xfe\xf3\xd9\x01\x60\xf6\x33\xa1\x03\x7c\xd3\xb1\xb1\x44\x78\xed\x26\x3e\x18\x0b\x3e\x6e\x1c\x49\x83\xa4\xc5\x12\xe7\xdb\x6a\x14\x94\xbc\x84\x01\xc6\x3a\xd2\xea\xda\xb1\x94\xd4\xc6\x32\x52\xdb\x07\xce\x99\x4a\xce\x01\xae\x4a\xce\x4d\xe9\x37\x58\x85\xab\x92\xa2\x83\x13\xb0\xf6\x6e\x27\x26\xf5\xdf\x89\x22\xc2\x55\x1c\x2e\xbf\x9b\x36\xfb\xfd\x63\x3c\x52\xb9\x9f\x7d\x0f\x57\x77\x75\xff\x00\x00\x00\xff\xff\xf7\x88\x8c\x17\xc7\x00\x00\x00") func yaoAssistantsKeywordPackageYaoBytes() ([]byte, error) { return bindataRead( @@ -6220,7 +6220,7 @@ func yaoAssistantsKeywordPackageYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/assistants/keyword/package.yao", size: 170, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/assistants/keyword/package.yao", size: 199, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6240,7 +6240,7 @@ func yaoAssistantsKeywordPromptsYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/assistants/keyword/prompts.yml", size: 990, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/assistants/keyword/prompts.yml", size: 990, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6260,12 +6260,12 @@ func yaoAssistantsKeywordSrcIndexTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/assistants/keyword/src/index.ts", size: 4104, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/assistants/keyword/src/index.ts", size: 4104, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _yaoAssistantsNeedsearchPackageYao = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x3c\x8d\x3b\x0e\xc2\x30\x10\x44\xfb\x9c\x62\xb4\x35\x45\x44\x99\x96\x1b\x70\x01\x64\xec\x89\x62\x85\xd8\xd1\x6e\x10\xa0\xc8\x77\x47\x36\x9f\x72\xf5\xde\xbe\xd9\x3b\x40\x92\x5b\x28\x03\xe4\xcc\x91\xca\xe4\x89\xd3\x44\x3f\x53\xe5\x50\x71\xa0\x79\x8d\xeb\x16\x73\xaa\x56\x63\x88\x23\xf4\xa7\x1b\x9c\x12\x89\x0c\x0c\x9f\x97\xed\xb5\xb6\xe2\x23\xeb\x3f\x73\x37\x9a\x0c\xd8\x21\x46\xa7\x7e\xaa\x3c\x44\x73\xd7\x1b\x83\xa0\x34\x27\xb7\x95\xaf\xb6\xb8\xe7\x65\xcb\x33\xdb\x7d\xec\x7b\x94\xae\x74\xef\x00\x00\x00\xff\xff\xa1\x9c\x51\x32\xb1\x00\x00\x00") +var _yaoAssistantsNeedsearchPackageYao = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x3c\xce\x41\x0e\xc2\x20\x10\x85\xe1\x7d\x4f\x31\x99\xb5\x8b\xc6\x25\x5b\x6f\xe0\x05\x0c\xc2\xab\x25\x6d\xa1\x99\xa1\x51\xd3\x70\x77\x03\x55\x97\xe4\xff\x78\x99\xbd\x23\xe2\x68\x17\xb0\x21\xbe\x62\x80\x20\x3a\xd0\x65\x84\x9b\x20\x7c\xaa\xd9\x43\x9d\x84\x35\x87\x14\xab\x6a\x8d\xc2\x40\xf2\xe3\x4a\x56\x40\x11\xf0\xf0\xc7\x97\xfc\x5e\xdb\xe2\x33\xc9\x7f\xc6\xa5\x18\xe1\x72\x92\x1a\x36\x85\x31\x73\x78\x8c\xf9\x88\x9b\x42\xd9\xd0\x4e\xac\xb0\xe2\xc6\x6a\x7c\x50\x7b\x9f\xe1\x99\x4a\x33\xa9\x9d\xf0\x65\x8b\x7d\xdd\x72\x9a\xd0\xde\xe7\xbe\xa7\xd2\x95\xee\x13\x00\x00\xff\xff\x30\x7a\x39\x5c\xce\x00\x00\x00") func yaoAssistantsNeedsearchPackageYaoBytes() ([]byte, error) { return bindataRead( @@ -6280,7 +6280,7 @@ func yaoAssistantsNeedsearchPackageYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/assistants/needsearch/package.yao", size: 177, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/assistants/needsearch/package.yao", size: 206, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6300,7 +6300,7 @@ func yaoAssistantsNeedsearchPromptsYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/assistants/needsearch/prompts.yml", size: 3092, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/assistants/needsearch/prompts.yml", size: 3092, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6320,12 +6320,12 @@ func yaoAssistantsNeedsearchSrcIndexTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/assistants/needsearch/src/index.ts", size: 2767, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/assistants/needsearch/src/index.ts", size: 2767, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _yaoAssistantsPromptPackageYao = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x34\xcd\xc1\x0d\xc2\x30\x0c\x85\xe1\x7b\xa6\x78\xf2\x99\x09\xba\x04\xac\x90\x36\x46\x44\x34\x8d\x65\xbb\x42\x50\x65\x77\x94\x54\x3d\xff\x9f\x9f\x8f\x00\xd0\x16\x0b\xd3\x04\x7a\x68\x2d\xe2\xb8\x8b\xe7\x92\x7f\xac\x74\xeb\x35\xb1\x2d\x9a\xc5\x73\xdd\x3a\xba\x2a\x64\x68\xc3\xb3\x2a\x66\x76\x67\x85\xb2\xed\xab\xdb\x79\xe7\x5f\x19\xab\x9f\xaa\xef\x6b\x6b\x37\x36\x9a\x70\x80\x8c\xa3\x2e\xaf\xde\x53\xb6\x38\xaf\x9c\x08\x6d\x98\x3a\x5e\x9d\xac\x85\x16\xfe\x01\x00\x00\xff\xff\x86\x0e\xe9\x72\xa3\x00\x00\x00") +var _yaoAssistantsPromptPackageYao = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x34\xce\xc1\x0d\xc2\x30\x0c\x85\xe1\x7b\xa7\xb0\x7c\x66\x82\x2c\x01\x2b\xb4\xa9\xa1\x16\x4d\x1c\xd9\x8e\x10\x54\xd9\x1d\x25\x55\xcf\xff\xe7\x27\x1f\x13\x00\xe6\x39\x11\x06\xc0\x87\x4a\x2a\x0e\xf7\xe2\x9c\xf8\x47\x8a\xb7\x5e\x57\xb2\xa8\x5c\x9c\x25\x77\x74\x55\x28\x43\x1b\x3c\x45\x61\x21\x77\x52\x50\xb2\xba\xbb\x9d\x77\xfe\x2d\x63\xf5\x23\xfa\xbe\xb6\xa2\xe4\x4c\xd1\x45\x7b\xa8\x46\x21\xec\xfc\xda\xfc\x8c\xd5\xc8\x30\xc0\x01\x68\x34\x6b\xdc\xba\x59\xd9\xe6\x65\xa7\x15\xa1\x0d\x23\xe3\x8f\xc1\xda\xd4\xa6\x7f\x00\x00\x00\xff\xff\x49\x90\x91\xbd\xbf\x00\x00\x00") func yaoAssistantsPromptPackageYaoBytes() ([]byte, error) { return bindataRead( @@ -6340,7 +6340,7 @@ func yaoAssistantsPromptPackageYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/assistants/prompt/package.yao", size: 163, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/assistants/prompt/package.yao", size: 191, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6360,12 +6360,12 @@ func yaoAssistantsPromptPromptsYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/assistants/prompt/prompts.yml", size: 621, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/assistants/prompt/prompts.yml", size: 621, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _yaoAssistantsQuerydslPackageYao = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4c\x8e\x3b\x8a\xc3\x40\x10\x44\x73\x9d\xa2\xe9\x78\x93\xdd\x68\x57\xe1\xde\xc0\x27\x30\x2d\x4d\x81\x07\x7d\x46\xee\x0f\xb6\x10\xba\xbb\xd1\xd8\x06\x87\x5d\xf5\xfa\x51\x5b\x43\xc4\xb3\x4c\xe0\x96\xf8\x14\xd0\x95\xfe\x23\x8f\x09\xca\x5f\x47\x95\x60\xbd\xe6\xc5\x73\x99\x0f\xa2\x76\x94\xc4\xa5\x13\x03\x5d\x03\x9a\x61\x4f\xd4\xd7\xa5\x5a\x6e\x45\x87\xf7\xbb\x84\x97\x49\x1c\x89\x5b\x72\x0d\xd4\x70\x89\x6e\xcc\xfd\x67\x12\x06\xe3\x96\x36\x62\x83\x68\x7f\x39\x34\x29\x9b\x74\x23\x12\xd3\x5e\x99\x52\x47\xbc\xb0\x49\xee\x67\x2f\x03\xea\xfd\xfb\xfd\xf7\x43\x7b\xb3\x37\x8f\x00\x00\x00\xff\xff\xa9\x04\xf0\x90\xcd\x00\x00\x00") +var _yaoAssistantsQuerydslPackageYao = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4c\x8e\x4b\x4e\xc4\x30\x10\x44\xf7\x39\x45\xab\xd7\x6c\x60\x05\x5e\x72\x03\x4e\x80\x3a\x76\x21\xac\x49\xe2\xd0\x1f\xc1\x68\x94\xbb\x23\x3b\x20\xcd\xb2\xeb\xbd\x2e\xd5\x6d\x22\xe2\x4d\x56\x70\x22\x7e\x0b\xe8\x95\x5e\xa3\x2e\x05\xca\x0f\x1d\x15\x58\xd6\xba\x7b\x6d\x5b\x37\x06\xa3\x22\x2e\xb3\x18\xe8\x2b\xa0\x15\x76\xaa\x7e\xdd\x47\xcb\x77\xd3\xcb\xff\x7b\x6e\xdb\x86\xec\x4d\x3b\x08\x43\x4a\x05\x1f\x12\x8b\x9f\x58\xc2\xdb\x2a\x8e\xc2\x89\x5c\x03\x23\xdc\x63\x5e\x6a\xbe\x4f\xc2\x60\x9c\xe8\x46\x6c\x10\xcd\x9f\xbd\xac\x54\x93\x79\x41\x61\x3a\x86\xd3\xc6\xc6\x3f\x6d\x95\x9f\x77\x6f\x17\x8c\xfb\xf9\xf1\xe5\x89\x8e\xe9\x98\x7e\x03\x00\x00\xff\xff\x91\xa7\x65\x19\xec\x00\x00\x00") func yaoAssistantsQuerydslPackageYaoBytes() ([]byte, error) { return bindataRead( @@ -6380,7 +6380,7 @@ func yaoAssistantsQuerydslPackageYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/assistants/querydsl/package.yao", size: 205, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/assistants/querydsl/package.yao", size: 236, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6400,7 +6400,7 @@ func yaoAssistantsQuerydslPromptsAggregationYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/assistants/querydsl/prompts/aggregation.yml", size: 6982, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/assistants/querydsl/prompts/aggregation.yml", size: 6982, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6420,7 +6420,7 @@ func yaoAssistantsQuerydslPromptsComplexYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/assistants/querydsl/prompts/complex.yml", size: 7352, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/assistants/querydsl/prompts/complex.yml", size: 7352, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6440,7 +6440,7 @@ func yaoAssistantsQuerydslPromptsFilterYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/assistants/querydsl/prompts/filter.yml", size: 7087, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/assistants/querydsl/prompts/filter.yml", size: 7087, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6460,7 +6460,7 @@ func yaoAssistantsQuerydslPromptsJoinYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/assistants/querydsl/prompts/join.yml", size: 8167, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/assistants/querydsl/prompts/join.yml", size: 8167, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6480,7 +6480,7 @@ func yaoAssistantsQuerydslPromptsYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/assistants/querydsl/prompts.yml", size: 5836, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/assistants/querydsl/prompts.yml", size: 5836, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6500,12 +6500,12 @@ func yaoAssistantsQuerydslSrcIndexTs() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/assistants/querydsl/src/index.ts", size: 1873, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/assistants/querydsl/src/index.ts", size: 1873, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _yaoAssistantsRobot_promptPackageYao = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x2c\x8d\x41\x0e\xc2\x30\x0c\x04\xef\x7d\xc5\xca\x67\x5e\xd0\x0f\x70\x45\xfc\x20\x6d\x8d\x88\x20\x71\x64\x3b\x42\x55\x95\xbf\xa3\xa4\x3d\xef\xec\xcc\x31\x01\x94\x43\x62\x9a\x41\x4f\x59\xc4\xf1\x50\x49\xc5\x71\xe7\xcc\x1a\x5c\x94\x6e\x9d\xd9\xd8\x56\x8d\xc5\xa3\xe4\x8e\x5e\x2b\xc3\x76\x73\x4e\x28\xe3\x64\x78\x89\x22\x54\x97\x2c\x49\xaa\x41\xbb\xd1\x4e\x83\xef\x65\x54\x7e\xa2\x1f\xbe\xac\xd5\xd8\x68\xc6\x01\x32\x0e\xba\xbe\xfb\xbe\x45\x0b\xcb\x97\x37\x42\x1b\x8c\x8c\xe8\x89\xb5\xa9\x4d\xff\x00\x00\x00\xff\xff\xc8\xe7\xa6\x83\xb3\x00\x00\x00") +var _yaoAssistantsRobot_promptPackageYao = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x2c\xce\xc1\x6d\x80\x30\x0c\x05\xd0\x3b\x53\x7c\xf9\xdc\x09\xb2\x40\xaf\x55\x37\x08\x89\x51\x51\x49\x1c\xd9\x8e\x2a\x84\xd8\xbd\x4a\xe0\xfc\x9f\xff\xf7\xb5\x00\x54\x63\x61\x0a\xa0\x6f\x59\xc5\xf1\xa5\x52\x9a\xe3\x93\x2b\x6b\x74\x51\xfa\x18\x26\xb3\x25\xdd\x9b\xef\x52\x07\x7d\x53\x86\x9d\xe6\x5c\xd0\xe6\x91\x61\x13\x45\xec\x2e\x55\x8a\x74\x83\x8e\x46\x7b\x1a\xfc\x6c\x73\xe5\x4f\xf4\x97\xdf\xd6\x24\xb5\x72\x1a\x23\x01\xd4\x8d\x43\xc8\xbc\xc5\x7e\xf8\x13\x77\x63\xa3\x80\x0b\x64\x1c\x35\xfd\x0c\x95\x77\x8b\xeb\xc1\x99\x70\x4f\x23\xf3\xa7\xc9\xee\xe5\x5e\xfe\x03\x00\x00\xff\xff\x72\xa2\xab\x6a\xd1\x00\x00\x00") func yaoAssistantsRobot_promptPackageYaoBytes() ([]byte, error) { return bindataRead( @@ -6520,7 +6520,7 @@ func yaoAssistantsRobot_promptPackageYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/assistants/robot_prompt/package.yao", size: 179, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/assistants/robot_prompt/package.yao", size: 209, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6540,12 +6540,12 @@ func yaoAssistantsRobot_promptPromptsYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/assistants/robot_prompt/prompts.yml", size: 2606, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/assistants/robot_prompt/prompts.yml", size: 2606, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _yaoAssistantsTitlePackageYao = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x2c\x8d\xc1\x0d\xc2\x30\x0c\x45\xef\x99\xc2\xf2\x99\x09\xba\x00\x0b\xb0\x40\x48\xbe\x44\x44\x89\x2b\xdb\x80\x50\x95\xdd\x91\xd3\x9e\xdf\xfb\xef\xef\x89\x88\x7b\x7e\x81\x17\xe2\x5b\xf3\x15\x74\x45\x87\x66\x17\xe5\x4b\xc0\x0a\x2b\xda\x36\x6f\xd2\xc3\x39\x29\xa8\x48\xff\x40\x2d\x07\x20\x8f\xa5\x1d\x03\xff\x6d\xb3\xf6\x15\x7d\xe2\x8c\xbc\x0d\xc6\x0b\xed\xc4\x86\xac\xe5\x11\xbc\x36\xcb\xf7\x15\x95\x69\x4c\x47\xe6\xc7\xa1\x8d\x34\xd2\x3f\x00\x00\xff\xff\x32\x02\xe7\x0d\x9b\x00\x00\x00") +var _yaoAssistantsTitlePackageYao = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x2c\x8e\xc1\x8d\xc3\x30\x0c\x04\xff\xae\x82\xe0\xfb\x2a\x50\x03\xd7\x40\x1a\x50\xe4\x45\x2c\xc4\x11\x0d\x92\x4e\x10\x18\xea\x3d\xa0\xec\xf7\xcc\x0e\xf6\x98\x88\xb8\xe5\x17\x38\x11\xdf\xaa\xaf\xa0\x7f\x34\x68\x76\x51\xfe\x0b\x38\xc3\x8a\xd6\xcd\xab\xb4\x70\x2e\x0a\x2a\xd2\xde\x50\xcb\x01\xc8\x63\x69\xe7\xc0\xbf\xdb\xa8\x7d\x44\x9f\xb8\x22\x45\x5a\x43\x89\x66\x22\xde\x0d\x29\xad\xf5\xb1\xf8\x09\x77\x83\x71\xa2\x83\xd8\x90\xb5\x2c\xe1\xcc\xd5\xf2\x7d\xc5\xcc\xd4\x87\x23\xe3\xc0\xd0\xfa\xd4\xa7\x5f\x00\x00\x00\xff\xff\x5b\x48\x23\x34\xb7\x00\x00\x00") func yaoAssistantsTitlePackageYaoBytes() ([]byte, error) { return bindataRead( @@ -6560,7 +6560,7 @@ func yaoAssistantsTitlePackageYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/assistants/title/package.yao", size: 155, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/assistants/title/package.yao", size: 183, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6580,12 +6580,12 @@ func yaoAssistantsTitlePromptsYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/assistants/title/prompts.yml", size: 958, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/assistants/title/prompts.yml", size: 958, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _yaoAssistantsVisionPackageYao = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x34\x8e\x31\xae\xc2\x30\x10\x44\xfb\x9c\x62\xb4\xcd\x6f\xfe\x09\xd2\xd1\x71\x02\x7a\x13\xaf\xc8\x0a\x7b\xd7\xf2\x3a\x44\x21\xca\xdd\x51\x8c\xa8\xe7\xe9\xbd\xd9\x07\x80\x34\x64\xa6\x11\x74\x13\x17\x53\x5c\x39\x15\xae\xf4\x7f\x4e\x91\x7d\xaa\x52\x9a\x98\x9e\xc4\x45\x43\xda\xde\x0c\xc9\xe1\xc1\x8e\x75\x66\x45\x9b\x19\x39\x88\x22\x5b\xe4\x84\x68\xec\xfa\xd7\xe0\x4b\x29\x56\x1b\x5e\x5d\xfa\xb5\xb5\xad\xf4\xd0\x6a\xf5\xf9\x2b\x2c\xce\x4e\x23\x76\x90\x73\xa8\xd3\x7c\xee\x51\x3c\xdc\x13\x47\xc2\xd1\x19\xeb\x07\x3a\x76\x0c\xc7\xf0\x09\x00\x00\xff\xff\xbd\xe5\x5e\x6f\xb5\x00\x00\x00") +var _yaoAssistantsVisionPackageYao = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x4c\xce\x31\x0e\x02\x21\x10\x05\xd0\x7e\x4f\x31\xa1\xb1\xf1\x04\x74\x76\x9e\xc0\x1e\xe1\xc7\x25\xc2\x0c\x61\x58\x37\xeb\x66\xef\x6e\xc0\x98\x58\xff\x37\xff\xcf\x3e\x11\x19\x76\x19\xc6\x92\xb9\x45\x8d\xc2\x74\x45\x2a\xa8\xe6\xdc\xa3\x00\xf5\x35\x96\x16\x85\xbb\xb8\xb0\x4b\xdb\x1b\x14\xb3\x7b\x40\x69\x9d\xc1\xd4\x66\x50\x76\x91\x29\x4b\x40\xa2\x20\x50\x3e\x35\xd2\xa5\x14\xa9\x8d\x5e\xa3\xf4\xdb\xd6\xb6\x32\x86\x56\xa9\xcf\xdf\x82\x17\x66\xf8\x26\xb5\x07\x8b\xc2\xda\xff\x8b\x45\xa1\xc6\xd2\x4e\x46\xe1\xaa\x9f\x3b\x0a\x51\xdd\x3d\x21\x18\x3a\x86\x91\xf1\xde\x60\xc7\x74\x4c\x9f\x00\x00\x00\xff\xff\xc9\xbe\xb8\x68\xd3\x00\x00\x00") func yaoAssistantsVisionPackageYaoBytes() ([]byte, error) { return bindataRead( @@ -6600,7 +6600,7 @@ func yaoAssistantsVisionPackageYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/assistants/vision/package.yao", size: 181, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/assistants/vision/package.yao", size: 211, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6620,7 +6620,7 @@ func yaoAssistantsVisionPromptsYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/assistants/vision/prompts.yml", size: 320, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/assistants/vision/prompts.yml", size: 320, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6640,7 +6640,7 @@ func yaoDataIcons404Png() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/icons/404.png", size: 9342, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/data/icons/404.png", size: 9342, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6660,7 +6660,7 @@ func yaoDataIconsIconIcns() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/icons/icon.icns", size: 67465, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/data/icons/icon.icns", size: 67465, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6680,7 +6680,7 @@ func yaoDataIconsIconIco() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/icons/icon.ico", size: 54993, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/data/icons/icon.ico", size: 54993, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6700,7 +6700,7 @@ func yaoDataIconsIconPng() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/icons/icon.png", size: 34558, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/data/icons/icon.png", size: 34558, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6720,7 +6720,7 @@ func yaoDataIndexHtml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/index.html", size: 282, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/data/index.html", size: 282, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6740,7 +6740,7 @@ func yaoDataKbProvidersChunkingSemanticEnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/chunking/semantic/en.json", size: 5543, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/chunking/semantic/en.json", size: 5543, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6760,7 +6760,7 @@ func yaoDataKbProvidersChunkingSemanticZhCnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/chunking/semantic/zh-cn.json", size: 5446, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/chunking/semantic/zh-cn.json", size: 5446, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6780,7 +6780,7 @@ func yaoDataKbProvidersChunkingStructuredEnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/chunking/structured/en.json", size: 2423, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/chunking/structured/en.json", size: 2423, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6800,7 +6800,7 @@ func yaoDataKbProvidersChunkingStructuredZhCnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/chunking/structured/zh-cn.json", size: 2321, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/chunking/structured/zh-cn.json", size: 2321, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6820,7 +6820,7 @@ func yaoDataKbProvidersConverterMcpEnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/converter/mcp/en.json", size: 4235, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/converter/mcp/en.json", size: 4235, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6840,7 +6840,7 @@ func yaoDataKbProvidersConverterMcpZhCnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/converter/mcp/zh-cn.json", size: 4060, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/converter/mcp/zh-cn.json", size: 4060, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6860,7 +6860,7 @@ func yaoDataKbProvidersConverterOcrEnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/converter/ocr/en.json", size: 6631, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/converter/ocr/en.json", size: 6631, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6880,7 +6880,7 @@ func yaoDataKbProvidersConverterOcrZhCnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/converter/ocr/zh-cn.json", size: 6501, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/converter/ocr/zh-cn.json", size: 6501, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6900,7 +6900,7 @@ func yaoDataKbProvidersConverterOfficeEnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/converter/office/en.json", size: 5476, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/converter/office/en.json", size: 5476, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6920,7 +6920,7 @@ func yaoDataKbProvidersConverterOfficeZhCnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/converter/office/zh-cn.json", size: 5356, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/converter/office/zh-cn.json", size: 5356, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6940,7 +6940,7 @@ func yaoDataKbProvidersConverterUtf8EnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/converter/utf8/en.json", size: 292, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/converter/utf8/en.json", size: 292, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6960,7 +6960,7 @@ func yaoDataKbProvidersConverterUtf8ZhCnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/converter/utf8/zh-cn.json", size: 281, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/converter/utf8/zh-cn.json", size: 281, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -6980,7 +6980,7 @@ func yaoDataKbProvidersConverterVideoEnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/converter/video/en.json", size: 6411, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/converter/video/en.json", size: 6411, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7000,7 +7000,7 @@ func yaoDataKbProvidersConverterVideoZhCnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/converter/video/zh-cn.json", size: 6297, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/converter/video/zh-cn.json", size: 6297, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7020,7 +7020,7 @@ func yaoDataKbProvidersConverterVisionEnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/converter/vision/en.json", size: 4085, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/converter/vision/en.json", size: 4085, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7040,7 +7040,7 @@ func yaoDataKbProvidersConverterVisionZhCnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/converter/vision/zh-cn.json", size: 3949, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/converter/vision/zh-cn.json", size: 3949, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7060,7 +7060,7 @@ func yaoDataKbProvidersConverterWhisperEnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/converter/whisper/en.json", size: 4449, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/converter/whisper/en.json", size: 4449, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7080,7 +7080,7 @@ func yaoDataKbProvidersConverterWhisperZhCnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/converter/whisper/zh-cn.json", size: 4312, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/converter/whisper/zh-cn.json", size: 4312, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7100,7 +7100,7 @@ func yaoDataKbProvidersEmbeddingFastembedEnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/embedding/fastembed/en.json", size: 6865, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/embedding/fastembed/en.json", size: 6865, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7120,7 +7120,7 @@ func yaoDataKbProvidersEmbeddingFastembedZhCnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/embedding/fastembed/zh-cn.json", size: 6685, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/embedding/fastembed/zh-cn.json", size: 6685, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7140,7 +7140,7 @@ func yaoDataKbProvidersEmbeddingOpenaiEnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/embedding/openai/en.json", size: 5636, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/embedding/openai/en.json", size: 5636, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7160,7 +7160,7 @@ func yaoDataKbProvidersEmbeddingOpenaiZhCnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/embedding/openai/zh-cn.json", size: 5463, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/embedding/openai/zh-cn.json", size: 5463, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7180,7 +7180,7 @@ func yaoDataKbProvidersExtractionOpenaiEnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/extraction/openai/en.json", size: 9110, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/extraction/openai/en.json", size: 9110, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7200,7 +7200,7 @@ func yaoDataKbProvidersExtractionOpenaiZhCnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/extraction/openai/zh-cn.json", size: 8827, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/extraction/openai/zh-cn.json", size: 8827, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7220,7 +7220,7 @@ func yaoDataKbProvidersFetcherHttpEnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/fetcher/http/en.json", size: 5885, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/fetcher/http/en.json", size: 5885, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7240,7 +7240,7 @@ func yaoDataKbProvidersFetcherHttpZhCnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/fetcher/http/zh-cn.json", size: 5925, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/fetcher/http/zh-cn.json", size: 5925, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7260,7 +7260,7 @@ func yaoDataKbProvidersFetcherMcpEnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/fetcher/mcp/en.json", size: 6819, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/fetcher/mcp/en.json", size: 6819, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7280,7 +7280,7 @@ func yaoDataKbProvidersFetcherMcpZhCnJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/kb/providers/fetcher/mcp/zh-cn.json", size: 6611, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/data/kb/providers/fetcher/mcp/zh-cn.json", size: 6611, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7300,7 +7300,7 @@ func yaoFieldsModelTransJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/fields/model.trans.json", size: 14938, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/fields/model.trans.json", size: 14938, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7320,7 +7320,7 @@ func yaoLangsEnUsJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/langs/en-US.json", size: 66, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/langs/en-US.json", size: 66, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7340,7 +7340,7 @@ func yaoLangsZhCnGlobalYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/langs/zh-cn/global.yml", size: 1762, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/langs/zh-cn/global.yml", size: 1762, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7360,7 +7360,7 @@ func yaoLangsZhCnLoginsAdminLoginYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/langs/zh-cn/logins/admin.login.yml", size: 94, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/langs/zh-cn/logins/admin.login.yml", size: 94, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7380,7 +7380,7 @@ func yaoLangsZhCnLoginsUserLoginYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/langs/zh-cn/logins/user.login.yml", size: 90, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/langs/zh-cn/logins/user.login.yml", size: 90, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7400,7 +7400,7 @@ func yaoLangsZhHkGlobalYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/langs/zh-hk/global.yml", size: 1762, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/langs/zh-hk/global.yml", size: 1762, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7420,7 +7420,7 @@ func yaoLangsZhHkLoginsAdminLoginYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/langs/zh-hk/logins/admin.login.yml", size: 94, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/langs/zh-hk/logins/admin.login.yml", size: 94, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7440,7 +7440,7 @@ func yaoLangsZhHkLoginsUserLoginYml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/langs/zh-hk/logins/user.login.yml", size: 90, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/langs/zh-hk/logins/user.login.yml", size: 90, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7460,7 +7460,7 @@ func yaoModelsAgentAssistantModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/agent/assistant.mod.yao", size: 7598, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/models/agent/assistant.mod.yao", size: 7598, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7480,7 +7480,7 @@ func yaoModelsAgentChatModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/agent/chat.mod.yao", size: 3093, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/models/agent/chat.mod.yao", size: 3093, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7500,7 +7500,7 @@ func yaoModelsAgentExecutionModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/agent/execution.mod.yao", size: 6651, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/models/agent/execution.mod.yao", size: 6651, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7520,7 +7520,7 @@ func yaoModelsAgentMessageModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/agent/message.mod.yao", size: 3712, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/models/agent/message.mod.yao", size: 3712, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7540,7 +7540,7 @@ func yaoModelsAgentResumeModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/agent/resume.mod.yao", size: 3896, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/models/agent/resume.mod.yao", size: 3896, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7560,7 +7560,7 @@ func yaoModelsAgentSearchModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/agent/search.mod.yao", size: 3103, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/models/agent/search.mod.yao", size: 3103, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7580,7 +7580,7 @@ func yaoModelsAttachmentModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/attachment.mod.yao", size: 4689, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/models/attachment.mod.yao", size: 4689, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7600,7 +7600,7 @@ func yaoModelsAuditModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/audit.mod.yao", size: 5588, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/models/audit.mod.yao", size: 5588, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7620,7 +7620,7 @@ func yaoModelsConfigModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/config.mod.yao", size: 1649, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/models/config.mod.yao", size: 1649, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7640,7 +7640,7 @@ func yaoModelsDslModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/dsl.mod.yao", size: 3826, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/models/dsl.mod.yao", size: 3826, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7660,7 +7660,7 @@ func yaoModelsInvitationModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/invitation.mod.yao", size: 6693, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/models/invitation.mod.yao", size: 6693, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7680,7 +7680,7 @@ func yaoModelsJobCategoryModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/job/category.mod.yao", size: 2041, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/models/job/category.mod.yao", size: 2041, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7700,7 +7700,7 @@ func yaoModelsJobExecutionModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/job/execution.mod.yao", size: 7201, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/models/job/execution.mod.yao", size: 7201, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7720,7 +7720,7 @@ func yaoModelsJobJobModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/job/job.mod.yao", size: 6429, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/models/job/job.mod.yao", size: 6429, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7740,7 +7740,7 @@ func yaoModelsJobLogModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/job/log.mod.yao", size: 4711, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/models/job/log.mod.yao", size: 4711, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7760,7 +7760,7 @@ func yaoModelsKbCollectionModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/kb/collection.mod.yao", size: 5390, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/models/kb/collection.mod.yao", size: 5390, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7780,7 +7780,7 @@ func yaoModelsKbDocumentModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/kb/document.mod.yao", size: 9906, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/models/kb/document.mod.yao", size: 9906, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7800,7 +7800,7 @@ func yaoModelsMemberModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/member.mod.yao", size: 15038, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/models/member.mod.yao", size: 15038, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7820,7 +7820,7 @@ func yaoModelsRoleModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/role.mod.yao", size: 6434, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/models/role.mod.yao", size: 6434, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7840,7 +7840,7 @@ func yaoModelsTeamModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/team.mod.yao", size: 15823, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/models/team.mod.yao", size: 15823, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7860,7 +7860,7 @@ func yaoModelsUserOauth_accountModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/user/oauth_account.mod.yao", size: 6928, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/models/user/oauth_account.mod.yao", size: 6928, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7880,7 +7880,7 @@ func yaoModelsUserTypeModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/user/type.mod.yao", size: 7502, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/models/user/type.mod.yao", size: 7502, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7900,7 +7900,7 @@ func yaoModelsUserModYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/user.mod.yao", size: 12335, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/models/user.mod.yao", size: 12335, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7920,7 +7920,7 @@ func yaoReleaseAppYaz() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/release/app.yaz", size: 181682, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/release/app.yaz", size: 181682, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7940,7 +7940,7 @@ func yaoStoresAgentCacheLruYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/stores/agent/cache.lru.yao", size: 301, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/stores/agent/cache.lru.yao", size: 301, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7960,7 +7960,7 @@ func yaoStoresAgentMemoryChatXunYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/stores/agent/memory/chat.xun.yao", size: 497, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/stores/agent/memory/chat.xun.yao", size: 497, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -7980,7 +7980,7 @@ func yaoStoresAgentMemoryContextXunYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/stores/agent/memory/context.xun.yao", size: 507, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/stores/agent/memory/context.xun.yao", size: 507, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -8000,7 +8000,7 @@ func yaoStoresAgentMemoryTeamXunYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/stores/agent/memory/team.xun.yao", size: 483, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/stores/agent/memory/team.xun.yao", size: 483, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -8020,7 +8020,7 @@ func yaoStoresAgentMemoryUserXunYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/stores/agent/memory/user.xun.yao", size: 489, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/stores/agent/memory/user.xun.yao", size: 489, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -8040,7 +8040,7 @@ func yaoStoresCacheLruYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/stores/cache.lru.yao", size: 285, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/stores/cache.lru.yao", size: 285, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -8060,7 +8060,7 @@ func yaoStoresKbCacheLruYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/stores/kb/cache.lru.yao", size: 304, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/stores/kb/cache.lru.yao", size: 304, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -8080,7 +8080,7 @@ func yaoStoresKbStoreXunYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/stores/kb/store.xun.yao", size: 373, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/stores/kb/store.xun.yao", size: 373, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -8100,7 +8100,7 @@ func yaoStoresOauthCacheLruYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/stores/oauth/cache.lru.yao", size: 301, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/stores/oauth/cache.lru.yao", size: 301, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -8120,7 +8120,7 @@ func yaoStoresOauthClientXunYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/stores/oauth/client.xun.yao", size: 377, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/stores/oauth/client.xun.yao", size: 377, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -8140,7 +8140,7 @@ func yaoStoresOauthStoreXunYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/stores/oauth/store.xun.yao", size: 401, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/stores/oauth/store.xun.yao", size: 401, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -8160,7 +8160,7 @@ func yaoStoresStoreXunYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/stores/store.xun.yao", size: 369, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/stores/store.xun.yao", size: 369, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -8180,7 +8180,7 @@ func yaoUploadersAttachmentLocalYao() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/uploaders/attachment.local.yao", size: 1163, mode: os.FileMode(420), modTime: time.Unix(1775791309, 0)} + info := bindataFileInfo{name: "yao/uploaders/attachment.local.yao", size: 1163, mode: os.FileMode(420), modTime: time.Unix(1777541323, 0)} a := &asset{bytes: bytes, info: info} return a, nil } diff --git a/llmprovider/models.go b/llmprovider/models.go index ae1bc9f6..4052f262 100644 --- a/llmprovider/models.go +++ b/llmprovider/models.go @@ -310,12 +310,19 @@ func ownerMatch(po, want *ProviderOwner) bool { return po.Type == "user" && po.UserID == want.UserID } -// capabilitiesFromConn extracts *llm.Capabilities from a connector's settings. +// capabilitiesFromConn extracts *llm.Capabilities from a connector. +// Prefers LLMConnector.GetCapabilities() when available. func capabilitiesFromConn(conn connector.Connector) *goullm.Capabilities { if conn == nil { return defaultCaps() } + if lc, ok := conn.(goullm.LLMConnector); ok { + if caps := lc.GetCapabilities(); caps != nil { + return caps + } + } + settings := conn.Setting() if settings != nil { if caps, ok := settings["capabilities"]; ok { diff --git a/llmprovider/presets.yml b/llmprovider/presets.yml index 8340968e..0eab9a32 100644 --- a/llmprovider/presets.yml +++ b/llmprovider/presets.yml @@ -18,14 +18,20 @@ default_models: - id: gpt-4o name: GPT-4o + max_input_tokens: 128000 + max_output_tokens: 16384 capabilities: [vision, tool_calls, streaming, json] enabled: true - id: gpt-4o-mini name: GPT-4o Mini + max_input_tokens: 128000 + max_output_tokens: 16384 capabilities: [tool_calls, streaming, json] enabled: true - id: o3-mini name: o3-mini + max_input_tokens: 200000 + max_output_tokens: 100000 capabilities: [tool_calls, streaming, reasoning] enabled: false @@ -37,10 +43,14 @@ default_models: - id: claude-sonnet-4-20250514 name: Claude Sonnet 4 + max_input_tokens: 200000 + max_output_tokens: 16000 capabilities: [vision, tool_calls, streaming, reasoning] enabled: true - id: claude-haiku-3-5-20241022 name: Claude Haiku 3.5 + max_input_tokens: 200000 + max_output_tokens: 8192 capabilities: [tool_calls, streaming] enabled: true diff --git a/llmprovider/roles.go b/llmprovider/roles.go index 9d45941f..aa2670e7 100644 --- a/llmprovider/roles.go +++ b/llmprovider/roles.go @@ -141,9 +141,14 @@ func (r *Registry) extractConnectorID(target interface{}) string { p, err := r.Get(rt.Provider, true) if err != nil { - // Builtin providers: Key == ConnectorID + if rt.Model != "" { + return rt.Provider + ":" + rt.Model + } return rt.Provider } + if rt.Model != "" { + return p.ConnectorID + ":" + rt.Model + } return p.ConnectorID } diff --git a/llmprovider/roles_test.go b/llmprovider/roles_test.go index 0d7b8741..e270f9e4 100644 --- a/llmprovider/roles_test.go +++ b/llmprovider/roles_test.go @@ -76,7 +76,7 @@ func TestGetRole(t *testing.T) { cid, err := r.GetRole("default") require.NoError(t, err) - assert.Equal(t, p.ConnectorID, cid) + assert.Equal(t, p.ConnectorID+":gpt-4o", cid) } func TestGetRoleByUser(t *testing.T) { @@ -101,11 +101,11 @@ func TestGetRoleByUser(t *testing.T) { cid, err := r.GetRoleByUser("default", "u1") require.NoError(t, err) - assert.Equal(t, userP.ConnectorID, cid, "user scope should override system") + assert.Equal(t, userP.ConnectorID+":gpt-4o", cid, "user scope should override system") cidSys, err := r.GetRole("default") require.NoError(t, err) - assert.Equal(t, sysP.ConnectorID, cidSys, "system scope should still return system provider") + assert.Equal(t, sysP.ConnectorID+":gpt-4o", cidSys, "system scope should still return system provider") } func TestGetRoleByTeam(t *testing.T) { @@ -130,7 +130,45 @@ func TestGetRoleByTeam(t *testing.T) { cid, err := r.GetRoleByTeam("default", "t1") require.NoError(t, err) - assert.Equal(t, teamP.ConnectorID, cid, "team scope should override system") + assert.Equal(t, teamP.ConnectorID+":gpt-4o", cid, "team scope should override system") +} + +func TestGetRoleIncludesModel(t *testing.T) { + r := setupRegistryWithSetting(t) + p := createTestProviderForRole(t, r, "model-inc-prov") + + err := r.SetDefaults(map[string]string{"default": p.Key}) + require.NoError(t, err) + + cid, err := r.GetRole("default") + require.NoError(t, err) + assert.Contains(t, cid, ":", "connector ID should contain ':' separator for model") + assert.Equal(t, p.ConnectorID+":gpt-4o", cid, "should include model suffix") +} + +func TestGetRoleNoModel(t *testing.T) { + r := setupRegistryWithSetting(t) + + noModelProvider := llmprovider.Provider{ + Key: "nomodel-prov", + Name: "No Model Provider", + Type: "openai", + APIURL: "https://api.openai.com", + APIKey: "sk-test", + Enabled: true, + Models: []llmprovider.ModelInfo{}, + Owner: llmprovider.ProviderOwner{Type: "system"}, + } + created, err := r.Create(&noModelProvider) + require.NoError(t, err) + + err = r.SetDefaults(map[string]string{"default": created.Key}) + require.NoError(t, err) + + cid, err := r.GetRole("default") + require.NoError(t, err) + assert.Equal(t, created.ConnectorID, cid, "should return base connector ID without model when no models defined") + assert.NotContains(t, cid, ":", "should not contain model separator") } func TestGetRoleNotConfigured(t *testing.T) { @@ -195,7 +233,7 @@ func TestProcessGetRole(t *testing.T) { proc := process.New("llmprovider.getrole", "default") result, err := proc.Exec() require.NoError(t, err) - assert.Equal(t, p.ConnectorID, result) + assert.Equal(t, p.ConnectorID+":gpt-4o", result) } func TestProcessListRoles(t *testing.T) { diff --git a/llmprovider/scope_test.go b/llmprovider/scope_test.go index 42fb30fe..fffa04f7 100644 --- a/llmprovider/scope_test.go +++ b/llmprovider/scope_test.go @@ -245,7 +245,7 @@ func TestGetRoleBy_TeamPriority(t *testing.T) { info := &oauthTypes.AuthorizedInfo{UserID: "u1", TeamID: "grb-t1"} cid, err := r.GetRoleBy("default", info) require.NoError(t, err) - assert.Equal(t, teamP.ConnectorID, cid, "should resolve via team scope when TeamID is set") + assert.Equal(t, teamP.ConnectorID+":gpt-4o", cid, "should resolve via team scope when TeamID is set") } func TestGetRoleBy_UserFallback(t *testing.T) { @@ -272,7 +272,7 @@ func TestGetRoleBy_UserFallback(t *testing.T) { info := &oauthTypes.AuthorizedInfo{UserID: "grbu-u1"} cid, err := r.GetRoleBy("default", info) require.NoError(t, err) - assert.Equal(t, userP.ConnectorID, cid, "should resolve via user scope when no TeamID") + assert.Equal(t, userP.ConnectorID+":gpt-4o", cid, "should resolve via user scope when no TeamID") } func TestListRolesBy(t *testing.T) { diff --git a/llmprovider/sync.go b/llmprovider/sync.go index 518eb07e..0720e8a4 100644 --- a/llmprovider/sync.go +++ b/llmprovider/sync.go @@ -5,6 +5,7 @@ import ( "fmt" "github.com/yaoapp/gou/connector" + goullm "github.com/yaoapp/gou/llm" ) // connectorID builds the runtime ID for registering into connector.Connectors. @@ -51,6 +52,12 @@ func marshalDSL(p *Provider) ([]byte, error) { "label": p.Name, "options": opts, } + + // Propagate auth_mode for providers that use non-Bearer authentication + if p.PresetKey == "azure" { + dsl["auth_mode"] = "api-key" + } + return json.Marshal(dsl) } @@ -140,7 +147,7 @@ func ensureModelConnector(p *Provider, m *ModelInfo) error { // marshalModelDSL builds a connector DSL for a specific model within a provider. func marshalModelDSL(p *Provider, m *ModelInfo) ([]byte, error) { - caps := make(map[string]bool) + caps := make(map[string]interface{}) for _, c := range m.Capabilities { caps[c] = true } @@ -152,6 +159,12 @@ func marshalModelDSL(p *Provider, m *ModelInfo) ([]byte, error) { caps["temperature_adjustable"] = true } } + if m.MaxInputTokens > 0 { + caps["max_input_tokens"] = m.MaxInputTokens + } + if m.MaxOutputTokens > 0 { + caps["max_output_tokens"] = m.MaxOutputTokens + } opts := map[string]interface{}{ "host": p.APIURL, @@ -172,6 +185,11 @@ func marshalModelDSL(p *Provider, m *ModelInfo) ([]byte, error) { "label": name, "options": opts, } + + if p.PresetKey == "azure" { + dsl["auth_mode"] = "api-key" + } + return json.Marshal(dsl) } @@ -228,13 +246,34 @@ func providerFromConnector(id string, conn connector.Connector) Provider { } typ := connectorType(conn) - apiURL, _ := setting["host"].(string) - apiKey, _ := setting["key"].(string) - model, _ := setting["model"].(string) + + var apiURL, apiKey, model string + if lc, ok := conn.(goullm.LLMConnector); ok { + apiURL = lc.GetURL() + apiKey = lc.GetKey() + model = lc.GetModel() + } + if apiURL == "" { + apiURL, _ = setting["host"].(string) + } + if apiKey == "" { + apiKey, _ = setting["key"].(string) + } + if model == "" { + model, _ = setting["model"].(string) + } var models []ModelInfo if model != "" { - caps := capabilitiesFromSetting(setting) + var caps []string + if lc, ok := conn.(goullm.LLMConnector); ok { + if c := lc.GetCapabilities(); c != nil { + caps = capabilitiesFromCapabilities(c) + } + } + if len(caps) == 0 { + caps = capabilitiesFromSetting(setting) + } models = []ModelInfo{{ ID: model, Name: model, @@ -258,6 +297,48 @@ func providerFromConnector(id string, conn connector.Connector) Provider { } } +// capabilitiesFromCapabilities converts a typed Capabilities struct to a string slice. +func capabilitiesFromCapabilities(c *goullm.Capabilities) []string { + var out []string + if c.Streaming { + out = append(out, "streaming") + } + if c.ToolCalls { + out = append(out, "tool_calls") + } + if c.TemperatureAdjustable { + out = append(out, "temperature_adjustable") + } + if c.Vision != nil { + switch v := c.Vision.(type) { + case bool: + if v { + out = append(out, "vision") + } + case string: + if v != "" { + out = append(out, "vision") + } + } + } + if c.Audio { + out = append(out, "audio") + } + if c.STT { + out = append(out, "stt") + } + if c.Reasoning { + out = append(out, "reasoning") + } + if c.JSON { + out = append(out, "json") + } + if c.Multimodal { + out = append(out, "multimodal") + } + return out +} + func connectorType(conn connector.Connector) string { switch { case conn.Is(6): // OPENAI diff --git a/llmprovider/types.go b/llmprovider/types.go index d3d574d4..415084d7 100644 --- a/llmprovider/types.go +++ b/llmprovider/types.go @@ -29,10 +29,12 @@ type Provider struct { // ModelInfo describes a single model within a provider. // Fields align with the frontend ModelInfo interface. type ModelInfo struct { - ID string `json:"id" yaml:"id"` - Name string `json:"name" yaml:"name"` - Capabilities []string `json:"capabilities" yaml:"capabilities"` - Enabled bool `json:"enabled" yaml:"enabled"` + ID string `json:"id" yaml:"id"` + Name string `json:"name" yaml:"name"` + Capabilities []string `json:"capabilities" yaml:"capabilities"` + Enabled bool `json:"enabled" yaml:"enabled"` + MaxInputTokens int `json:"max_input_tokens,omitempty" yaml:"max_input_tokens,omitempty"` + MaxOutputTokens int `json:"max_output_tokens,omitempty" yaml:"max_output_tokens,omitempty"` } // ProviderOwner identifies who owns a provider. diff --git a/openai/openai.go b/openai/openai.go index 766ef790..03d77105 100644 --- a/openai/openai.go +++ b/openai/openai.go @@ -31,7 +31,7 @@ type OpenAI struct { baseURL string organization string maxToken int - azure bool // Azure Credentials, "true" or "false" or "" + authMode string } // New create a new OpenAI instance by connector id @@ -95,9 +95,9 @@ func NewOpenAI(setting map[string]interface{}) (*OpenAI, error) { maxToken = v } - azure := false - if v, ok := setting["azure"].(string); ok { - azure = v == "true" || v == "1" + authMode := "" + if v, ok := setting["auth_mode"].(string); ok { + authMode = v } return &OpenAI{ @@ -107,7 +107,7 @@ func NewOpenAI(setting map[string]interface{}) (*OpenAI, error) { baseURL: baseURL, organization: organization, maxToken: maxToken, - azure: azure, + authMode: authMode, }, nil } @@ -269,7 +269,7 @@ func (openai OpenAI) AudioTranscriptionsFile(filePath string, option map[string] } req := http.New(url) - if openai.azure { + if openai.authMode == "api-key" { req.WithHeader(map[string][]string{ "Content-Type": {"multipart/form-data"}, "api-key": {openai.key}, @@ -414,7 +414,7 @@ func (openai OpenAI) post(path string, payload map[string]interface{}) (interfac payload["model"] = openai.model req := http.New(url) - if openai.azure { + if openai.authMode == "api-key" { req.WithHeader(map[string][]string{ "Content-Type": {"application/json; charset=utf-8"}, "api-key": {openai.key}, @@ -438,7 +438,7 @@ func (openai OpenAI) postWithoutModel(path string, payload map[string]interface{ url := fmt.Sprintf("%s%s", openai.host, path) req := http.New(url) - if openai.azure { + if openai.authMode == "api-key" { req.WithHeader(map[string][]string{"api-key": {openai.key}}) } else { req.WithHeader(map[string][]string{"Authorization": {fmt.Sprintf("Bearer %s", openai.key)}}) @@ -461,7 +461,7 @@ func (openai OpenAI) postFile(path string, files map[string][]byte, option map[s req := http.New(url) - if openai.azure { + if openai.authMode == "api-key" { req.WithHeader(map[string][]string{ "Content-Type": {"multipart/form-data"}, "api-key": {openai.key}, @@ -496,7 +496,7 @@ func (openai OpenAI) postFileWithoutModel(path string, files map[string][]byte, key := fmt.Sprintf("Bearer %s", openai.key) req := http.New(url).WithHeader(map[string][]string{"Authorization": {key}}) - if openai.azure { + if openai.authMode == "api-key" { req.WithHeader(map[string][]string{"api-key": {openai.key}}) } else { req.WithHeader(map[string][]string{"Authorization": {fmt.Sprintf("Bearer %s", openai.key)}}) @@ -528,7 +528,7 @@ func (openai OpenAI) stream(ctx context.Context, path string, payload map[string } req := http.New(url) - if openai.azure { + if openai.authMode == "api-key" { req.WithHeader(map[string][]string{ "Content-Type": {"application/json; charset=utf-8"}, "api-key": {openai.key}, diff --git a/openapi/agent/assistant.go b/openapi/agent/assistant.go index 9ecad868..778aeccc 100644 --- a/openapi/agent/assistant.go +++ b/openapi/agent/assistant.go @@ -175,7 +175,7 @@ func ListAssistants(c *gin.Context) { // Convert sandbox to boolean and filter built-in sensitive fields resp := map[string]interface{}{ - "data": AssistantsToResponse(result.Data), + "data": AssistantsToResponse(result.Data, authInfo), "total": result.Total, "page": result.Page, "pagesize": result.PageSize, @@ -274,7 +274,7 @@ func GetAssistant(c *gin.Context) { // Convert sandbox to boolean and filter built-in sensitive fields hasSandbox := assistant.Sandbox != nil FilterBuiltInAssistant(assistant) - resp := AssistantToResponse(assistant, hasSandbox) + resp := AssistantToResponse(assistant, hasSandbox, authInfo) // Return the result with standard response format response.RespondWithSuccess(c, response.StatusOK, resp) @@ -602,7 +602,11 @@ func GetAssistantInfo(c *gin.Context) { return } - response.RespondWithSuccess(c, response.StatusOK, ast.GetInfo(locale)) + info := ast.GetInfo(locale) + resolved, raw := resolveConnectorForResponse(info.Connector, authInfo) + info.Connector = resolved + info.ConnectorRaw = raw + response.RespondWithSuccess(c, response.StatusOK, info) } // checkAssistantPermission checks if the user has permission to access the assistant diff --git a/openapi/agent/filter.go b/openapi/agent/filter.go index 177f5230..24802627 100644 --- a/openapi/agent/filter.go +++ b/openapi/agent/filter.go @@ -2,11 +2,13 @@ package agent import ( "encoding/json" + "strings" "github.com/gin-gonic/gin" "github.com/yaoapp/gou/model" "github.com/yaoapp/xun/dbal/query" agenttypes "github.com/yaoapp/yao/agent/store/types" + "github.com/yaoapp/yao/llmprovider" "github.com/yaoapp/yao/openapi/oauth/authorized" "github.com/yaoapp/yao/openapi/oauth/types" ) @@ -160,10 +162,49 @@ func FilterBuiltInAssistant(assistant *agenttypes.AssistantModel) { } } +// resolveConnectorForResponse resolves a "use::" prefixed connector value +// to the actual connector ID for API responses. +// Returns (resolvedID, rawValue). rawValue is non-empty only when the original was a use:: prefix. +func resolveConnectorForResponse(connectorValue string, identity llmprovider.Identity) (string, string) { + if !strings.HasPrefix(connectorValue, "use::") { + return connectorValue, "" + } + + role := strings.TrimPrefix(connectorValue, "use::") + if role == "" { + role = "default" + } + + if identity != nil && llmprovider.Global != nil { + if cid, err := llmprovider.Global.GetRoleBy(role, identity); err == nil && cid != "" { + return cid, connectorValue + } + } + if llmprovider.Global != nil { + if cid, err := llmprovider.Global.GetRole(role); err == nil && cid != "" { + return cid, connectorValue + } + } + return connectorValue, connectorValue +} + +// applyConnectorResolve resolves the connector field in a response map. +func applyConnectorResolve(result map[string]interface{}, identity llmprovider.Identity) { + connVal, ok := result["connector"].(string) + if !ok || connVal == "" { + return + } + resolved, raw := resolveConnectorForResponse(connVal, identity) + result["connector"] = resolved + if raw != "" { + result["connector_raw"] = raw + } +} + // AssistantToResponse converts an AssistantModel to a response map, // replacing the sandbox JSON object with a boolean indicating whether sandbox is configured. // hasSandbox must be captured before FilterBuiltInAssistant clears the Sandbox field. -func AssistantToResponse(assistant *agenttypes.AssistantModel, hasSandbox bool) map[string]interface{} { +func AssistantToResponse(assistant *agenttypes.AssistantModel, hasSandbox bool, identity llmprovider.Identity) map[string]interface{} { if assistant == nil { return nil } @@ -182,13 +223,14 @@ func AssistantToResponse(assistant *agenttypes.AssistantModel, hasSandbox bool) if assistant.ComputerFilter != nil { result["computer_filter"] = assistant.ComputerFilter } + applyConnectorResolve(result, identity) return result } // AssistantsToResponse converts a slice of AssistantModel to response maps, // replacing sandbox with a boolean for each assistant. // Captures sandbox state before filtering, then applies FilterBuiltInAssistant. -func AssistantsToResponse(assistants []*agenttypes.AssistantModel) []map[string]interface{} { +func AssistantsToResponse(assistants []*agenttypes.AssistantModel, identity llmprovider.Identity) []map[string]interface{} { if assistants == nil { return nil } @@ -197,7 +239,7 @@ func AssistantsToResponse(assistants []*agenttypes.AssistantModel) []map[string] for _, a := range assistants { hasSandbox := a.Sandbox != nil || a.IsSandbox FilterBuiltInAssistant(a) - result = append(result, AssistantToResponse(a, hasSandbox)) + result = append(result, AssistantToResponse(a, hasSandbox, identity)) } return result } diff --git a/openapi/agent/filter_test.go b/openapi/agent/filter_test.go new file mode 100644 index 00000000..958731ed --- /dev/null +++ b/openapi/agent/filter_test.go @@ -0,0 +1,80 @@ +package agent + +import ( + "testing" + + "github.com/stretchr/testify/assert" + "github.com/yaoapp/yao/llmprovider" +) + +func TestResolveConnectorForResponse_ExplicitID(t *testing.T) { + resolved, raw := resolveConnectorForResponse("some-connector-id", nil) + assert.Equal(t, "some-connector-id", resolved) + assert.Empty(t, raw, "non use:: prefix should not set raw value") +} + +func TestResolveConnectorForResponse_ExplicitIDWithModel(t *testing.T) { + resolved, raw := resolveConnectorForResponse("t123.openai:gpt-4o", nil) + assert.Equal(t, "t123.openai:gpt-4o", resolved) + assert.Empty(t, raw) +} + +func TestResolveConnectorForResponse_EmptyString(t *testing.T) { + resolved, raw := resolveConnectorForResponse("", nil) + assert.Empty(t, resolved) + assert.Empty(t, raw) +} + +func TestResolveConnectorForResponse_NilGlobal(t *testing.T) { + orig := llmprovider.Global + llmprovider.Global = nil + defer func() { llmprovider.Global = orig }() + + resolved, raw := resolveConnectorForResponse("use::default", nil) + assert.Equal(t, "use::default", resolved, "should return original when Global is nil") + assert.Equal(t, "use::default", raw) +} + +func TestResolveConnectorForResponse_UseUnresolvable(t *testing.T) { + orig := llmprovider.Global + llmprovider.Global = nil + defer func() { llmprovider.Global = orig }() + + resolved, raw := resolveConnectorForResponse("use::light", nil) + assert.Equal(t, "use::light", resolved, "unresolvable role returns original") + assert.Equal(t, "use::light", raw) +} + +func TestResolveConnectorForResponse_UseEmptyRole(t *testing.T) { + orig := llmprovider.Global + llmprovider.Global = nil + defer func() { llmprovider.Global = orig }() + + resolved, raw := resolveConnectorForResponse("use::", nil) + assert.Equal(t, "use::", resolved, "empty role with nil Global returns original") + assert.Equal(t, "use::", raw) +} + +func TestApplyConnectorResolve_NoConnector(t *testing.T) { + result := map[string]interface{}{"name": "test"} + applyConnectorResolve(result, nil) + assert.Nil(t, result["connector_raw"], "should not add connector_raw when no connector") +} + +func TestApplyConnectorResolve_ExplicitConnector(t *testing.T) { + result := map[string]interface{}{"connector": "t123.openai:gpt-4o"} + applyConnectorResolve(result, nil) + assert.Equal(t, "t123.openai:gpt-4o", result["connector"]) + assert.Nil(t, result["connector_raw"], "should not add connector_raw for explicit IDs") +} + +func TestApplyConnectorResolve_UsePrefix(t *testing.T) { + orig := llmprovider.Global + llmprovider.Global = nil + defer func() { llmprovider.Global = orig }() + + result := map[string]interface{}{"connector": "use::default"} + applyConnectorResolve(result, nil) + assert.Equal(t, "use::default", result["connector"], "unresolvable returns original") + assert.Equal(t, "use::default", result["connector_raw"]) +} diff --git a/openapi/chat/session.go b/openapi/chat/session.go index af78dcdc..8913ff47 100644 --- a/openapi/chat/session.go +++ b/openapi/chat/session.go @@ -9,6 +9,7 @@ import ( "github.com/yaoapp/xun/dbal/query" "github.com/yaoapp/yao/agent/assistant" storetypes "github.com/yaoapp/yao/agent/store/types" + "github.com/yaoapp/yao/llmprovider" "github.com/yaoapp/yao/openapi/oauth/authorized" oauthtypes "github.com/yaoapp/yao/openapi/oauth/types" "github.com/yaoapp/yao/openapi/response" @@ -378,6 +379,7 @@ func GetMessages(c *gin.Context) { // Collect unique assistant IDs from messages and fetch their info assistantIDs := collectAssistantIDs(messages) assistants := assistant.GetInfoByIDs(assistantIDs, locale) + resolveAssistantInfoConnectors(assistants, authInfo) response.RespondWithSuccess(c, response.StatusOK, gin.H{ "chat_id": chatID, @@ -598,3 +600,32 @@ func checkChatPermission(chatStore storetypes.ChatStore, authInfo *oauthtypes.Au return false, nil } + +// resolveAssistantInfoConnectors resolves use:: prefixed connectors in a map of AssistantInfo. +func resolveAssistantInfoConnectors(infos map[string]*storetypes.AssistantInfo, identity llmprovider.Identity) { + for _, info := range infos { + if info == nil || !strings.HasPrefix(info.Connector, "use::") { + continue + } + role := strings.TrimPrefix(info.Connector, "use::") + if role == "" { + role = "default" + } + raw := info.Connector + if identity != nil && llmprovider.Global != nil { + if cid, err := llmprovider.Global.GetRoleBy(role, identity); err == nil && cid != "" { + info.ConnectorRaw = raw + info.Connector = cid + continue + } + } + if llmprovider.Global != nil { + if cid, err := llmprovider.Global.GetRole(role); err == nil && cid != "" { + info.ConnectorRaw = raw + info.Connector = cid + continue + } + } + info.ConnectorRaw = raw + } +} diff --git a/openapi/llm/llm.go b/openapi/llm/llm.go index 745fd17a..b17e2a52 100644 --- a/openapi/llm/llm.go +++ b/openapi/llm/llm.go @@ -1,7 +1,6 @@ package llm import ( - "fmt" "strings" "github.com/gin-gonic/gin" @@ -46,10 +45,7 @@ func listProviders(c *gin.Context) { } } - fmt.Printf("[llm/providers] filtersParam=%q\n", filtersParam) - info := authorized.GetInfo(c) - fmt.Printf("[llm/providers] identity: UserID=%q TeamID=%q\n", info.GetUserID(), info.GetTeamID()) var opts []connector.Option if llmprovider.Global != nil { @@ -57,10 +53,6 @@ func listProviders(c *gin.Context) { } else { opts = connector.AIConnectors } - fmt.Printf("[llm/providers] ListModelsBy returned %d options\n", len(opts)) - for i, o := range opts { - fmt.Printf("[llm/providers] [%d] label=%q value=%q\n", i, o.Label, o.Value) - } for _, opt := range opts { var conn connector.Connector @@ -71,19 +63,16 @@ func listProviders(c *gin.Context) { conn, err = connector.Select(opt.Value) } if err != nil { - fmt.Printf("[llm/providers] GetModel(%q) FAILED: %v\n", opt.Value, err) continue } connType := connectorType(conn) if connType != "openai" && connType != "anthropic" { - fmt.Printf("[llm/providers] SKIP %q: type=%q (not openai/anthropic)\n", opt.Value, connType) continue } capabilities := getCapabilitiesFromConn(conn) if len(filters) > 0 && !matchesFilters(capabilities, filters) { - fmt.Printf("[llm/providers] SKIP %q: caps filter %v not matched (streaming=%v)\n", opt.Value, filters, capabilities["streaming"]) continue } @@ -96,7 +85,6 @@ func listProviders(c *gin.Context) { }) } - fmt.Printf("[llm/providers] returning %d providers\n", len(allProviders)) response.RespondWithSuccess(c, response.StatusOK, allProviders) } diff --git a/yao/assistants/entity/package.yao b/yao/assistants/entity/package.yao index e95b7f2d..4a1c7d0a 100644 --- a/yao/assistants/entity/package.yao +++ b/yao/assistants/entity/package.yao @@ -2,7 +2,7 @@ "name": "Entity Extractor", "description": "Extract entities and relationships", "type": "worker", + "connector": "use::light", "uses": { "search": "disabled" }, "options": { "max_tokens": 2000 } } - diff --git a/yao/assistants/fetch/package.yao b/yao/assistants/fetch/package.yao index f559286d..ddd00ed1 100644 --- a/yao/assistants/fetch/package.yao +++ b/yao/assistants/fetch/package.yao @@ -2,6 +2,7 @@ "name": "Fetch Helper", "description": "Fetch and extract content from URLs", "type": "worker", + "connector": "use::default", "automated": true, "public": true, "uses": { "search": "disabled" }, diff --git a/yao/assistants/keyword/package.yao b/yao/assistants/keyword/package.yao index a7f9f042..281ffad8 100644 --- a/yao/assistants/keyword/package.yao +++ b/yao/assistants/keyword/package.yao @@ -2,6 +2,7 @@ "name": "Keyword Extractor", "description": "Extract search keywords", "type": "worker", + "connector": "use::light", "uses": { "search": "disabled" }, "options": { "max_tokens": 500 } } diff --git a/yao/assistants/needsearch/package.yao b/yao/assistants/needsearch/package.yao index 00c691d4..a3e87651 100644 --- a/yao/assistants/needsearch/package.yao +++ b/yao/assistants/needsearch/package.yao @@ -2,6 +2,7 @@ "name": "Reference Checker", "description": "Check if references are needed", "type": "worker", + "connector": "use::light", "uses": { "search": "disabled" }, "options": { "max_tokens": 200 } } diff --git a/yao/assistants/prompt/package.yao b/yao/assistants/prompt/package.yao index a8f2ce6b..70f73dc5 100644 --- a/yao/assistants/prompt/package.yao +++ b/yao/assistants/prompt/package.yao @@ -2,6 +2,7 @@ "name": "Prompt Optimizer", "description": "Optimize prompts for better results", "type": "worker", + "connector": "use::light", "uses": { "search": "disabled" }, - "options": { } + "options": {} } diff --git a/yao/assistants/querydsl/package.yao b/yao/assistants/querydsl/package.yao index ddbd49f2..ad899fde 100644 --- a/yao/assistants/querydsl/package.yao +++ b/yao/assistants/querydsl/package.yao @@ -2,6 +2,7 @@ "name": "Query Builder", "description": "Build database queries", "type": "worker", + "connector": "use::default", "automated": true, "public": true, "uses": { "search": "disabled" }, diff --git a/yao/assistants/robot_prompt/package.yao b/yao/assistants/robot_prompt/package.yao index 83d8b6cd..5e88b82b 100644 --- a/yao/assistants/robot_prompt/package.yao +++ b/yao/assistants/robot_prompt/package.yao @@ -2,6 +2,7 @@ "name": "Robot Prompt Generator", "description": "Generate system prompts for autonomous robots", "type": "worker", + "connector": "use::default", "uses": { "search": "disabled" }, - "options": { } + "options": {} } diff --git a/yao/assistants/title/package.yao b/yao/assistants/title/package.yao index 25164996..a9b2ac90 100644 --- a/yao/assistants/title/package.yao +++ b/yao/assistants/title/package.yao @@ -2,6 +2,7 @@ "name": "Title Generator", "description": "Generate conversation titles", "type": "worker", + "connector": "use::light", "uses": { "search": "disabled" }, - "options": { } + "options": {} } diff --git a/yao/assistants/vision/package.yao b/yao/assistants/vision/package.yao index fb732605..7256e230 100644 --- a/yao/assistants/vision/package.yao +++ b/yao/assistants/vision/package.yao @@ -2,6 +2,7 @@ "name": "Vision Helper", "description": "Analyze images when the main model doesn't support vision", "type": "worker", + "connector": "use::vision", "uses": { "search": "disabled" }, "options": {} }