Documentation
¶
Index ¶
- Constants
- type ConfigProvider
- type Configuration
- type GuardrailConfig
- type NodeGuardrailCfg
- type OpenSSHParser
- type Provider
- func (cp Provider) AddHost(hostID string, host models.Host)
- func (cp Provider) AddIdentity(identityID string, identity models.Identity)
- func (cp Provider) AddNode(nodeID string, node models.Node)
- func (cp Provider) DeleteIdentity(name string)
- func (cp Provider) DeleteNode(nodeID string)
- func (cp Provider) Find(input string) string
- func (cp Provider) FindAlias(alias string) string
- func (cp Provider) GetConfig() *Configuration
- func (cp Provider) GetHost(nodeID string) (models.Host, bool)
- func (cp Provider) GetIdentity(nodeID string) (models.Identity, bool)
- func (cp Provider) GetNode(nodeID string) (models.Node, bool)
- func (cp Provider) GetNodesByTag(tag string) map[string]models.Node
- func (cp Provider) ListIdentities() map[string]models.Identity
- func (cp Provider) ListNodes() map[string]models.Node
- type Store
Constants ¶
View Source
const OpenSSHNodePrefix = "openssh:"
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ConfigProvider ¶
type ConfigProvider interface {
GetNode(name string) (models.Node, bool)
GetHost(name string) (models.Host, bool)
GetIdentity(name string) (models.Identity, bool)
AddHost(name string, host models.Host)
AddIdentity(name string, identity models.Identity)
AddNode(name string, node models.Node)
DeleteNode(name string)
ListNodes() map[string]models.Node
GetNodesByTag(tag string) map[string]models.Node
ListIdentities() map[string]models.Identity
DeleteIdentity(name string)
Find(input string) string
FindAlias(alias string) string
GetConfig() *Configuration
}
ConfigProvider 定义 Connector 获取配置数据的接口
type Configuration ¶
type Configuration struct {
Identities *concurrent.Map[string, models.Identity] `yaml:"identities"`
Hosts *concurrent.Map[string, models.Host] `yaml:"hosts"`
Nodes *concurrent.Map[string, models.Node] `yaml:"nodes"`
Guardrail *GuardrailConfig `yaml:"guardrail,omitempty"`
}
Configuration 对应 yaml 文件的顶层结构
type GuardrailConfig ¶
type GuardrailConfig struct {
Enabled bool `yaml:"enabled"`
AuditLog string `yaml:"audit_log,omitempty"`
ApprovalThreshold string `yaml:"approval_threshold,omitempty"` // "safe"|"moderate"|"dangerous"
BlockedPatterns []string `yaml:"blocked_patterns,omitempty"`
ProtectedPaths []string `yaml:"protected_paths,omitempty"`
NodeOverrides map[string]NodeGuardrailCfg `yaml:"nodes,omitempty"`
// NoElicitFallback controls behavior when the MCP client does not support
// Elicitation (e.g. Gemini CLI).
// "deny" — reject all operations that need approval (most secure)
// "allow" — allow all, trust client-side tool approval + ToolAnnotations
// "downgrade" — allow moderate, still deny dangerous (recommended default)
NoElicitFallback string `yaml:"no_elicit_fallback,omitempty"`
}
GuardrailConfig configures the MCP safety guardrail.
type NodeGuardrailCfg ¶
type NodeGuardrailCfg struct {
ApprovalThreshold string `yaml:"approval_threshold"`
}
NodeGuardrailCfg holds per-node (glob pattern) policy overrides.
type OpenSSHParser ¶ added in v0.5.0
type OpenSSHParser struct {
// contains filtered or unexported fields
}
OpenSSHParser 提供针对 ~/.ssh/config 的解析和模型映射功能
func NewOpenSSHParser ¶ added in v0.5.0
func NewOpenSSHParser() *OpenSSHParser
NewOpenSSHParser 尝试加载用户的 SSH 配置文件
func (*OpenSSHParser) Find ¶ added in v0.5.0
func (p *OpenSSHParser) Find(alias string) (string, bool)
Find 尝试在 ssh_config 中寻找匹配的主机名 如果用户输入了未知主机,我们一律返回带前缀的虚拟 NodeID, 在连接时利用 ssh_config 的默认回退属性来尝试连接, 这样使得 xops 表现得和原生 ssh 命令的体验完全一致。
func (*OpenSSHParser) GetVirtualNode ¶ added in v0.5.0
GetVirtualNode 根据 alias 从 ssh_config 生成运行时的内存 Node / Host / Identity
type Provider ¶
type Provider struct {
// contains filtered or unexported fields
}
Provider 提供了基础的配置查询和管理功能
func (Provider) AddIdentity ¶
func (Provider) DeleteIdentity ¶
func (Provider) DeleteNode ¶
func (Provider) GetConfig ¶ added in v0.3.0
func (cp Provider) GetConfig() *Configuration
type Store ¶
type Store interface {
Load() (*Configuration, error)
Save(cfg *Configuration) error
}
Store 定义了配置存储和持久化的接口
func NewDefaultStore ¶
NewDefaultStore 创建一个默认的文件系统配置存储实例
Click to show internal directories.
Click to hide internal directories.