Files
agent-radar 2ed3415fb7
Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
源码快照 @ 2026-09-01 (source-only, 剔除非源码素材)
2026-09-01 20:17:27 +08:00

55 lines
2.1 KiB
Go

package implementationhost
import market "github.com/tutti-os/tutti/packages/connector/daemon/core"
type SkillSummary = market.ConnectorSkillSummary
type ConnectorSummary = market.ConnectorSummary
type ConnectorInterfaceSummary = market.ConnectorInterfaceSummary
// ConnectorRoutingHint is a bounded, non-secret projection of one active
// route for Agent runtime preparation.
type ConnectorRoutingHint struct {
Key string
DisplayName string
Aliases []string
SkillRoot string
}
// ConnectorSummaries returns immutable discovery metadata already validated
// before each route was committed. It never rescans installed artifacts.
func (registry *RouteRegistry) ConnectorSummaries() []ConnectorSummary {
routes := registry.Routes()
connectors := make([]ConnectorSummary, 0, len(routes))
for _, route := range routes {
connectors = append(connectors, connectorSummaryFromDescriptor(route))
}
return connectors
}
func connectorSummaryFromDescriptor(route RouteDescriptor) ConnectorSummary {
interfaces := make([]ConnectorInterfaceSummary, 0, 2)
if route.HasMCP {
interfaces = append(interfaces, ConnectorInterfaceSummary{Kind: "mcp", ServerName: "connector",
ToolPrefix: route.ConnectorKey + "_", Status: string(route.InterfaceState("mcp"))})
}
if route.CLIInvocationCommand != "" {
interfaces = append(interfaces, ConnectorInterfaceSummary{Kind: "cli", Command: route.CLIInvocationCommand,
Status: string(route.InterfaceState("cli"))})
}
return ConnectorSummary{Key: route.ConnectorKey, Version: route.ConnectorVersion, Name: route.DisplayName, Description: route.Description,
Skills: append([]SkillSummary(nil), route.Skills...), Interfaces: interfaces}
}
// RoutingHints returns a detached snapshot for Agent runtime preparation.
func (registry *RouteRegistry) RoutingHints() []ConnectorRoutingHint {
routes := registry.Routes()
hints := make([]ConnectorRoutingHint, 0, len(routes))
for _, route := range routes {
hints = append(hints, ConnectorRoutingHint{
Key: route.ConnectorKey, DisplayName: route.DisplayName,
Aliases: append([]string(nil), route.RoutingAliases...), SkillRoot: route.SkillRoot,
})
}
return hints
}