42 lines
1.2 KiB
Go
42 lines
1.2 KiB
Go
package plugins
|
|
|
|
// InstallConfig holds the configuration needed to install an agent plugin.
|
|
type InstallConfig struct {
|
|
AgentName string
|
|
OrgID string
|
|
AgentID string
|
|
PrivateKey string
|
|
KID string
|
|
Token string
|
|
BaseURL string
|
|
HookScript string // absolute path to the generated hook script
|
|
GuardScriptPath string // absolute path to the generated guard script (PreToolUse)
|
|
}
|
|
|
|
// PluginStatus describes the current state of a plugin installation.
|
|
type PluginStatus struct {
|
|
Installed bool
|
|
AgentName string
|
|
DisplayName string
|
|
HookConfigured bool
|
|
HookScriptExists bool
|
|
ConfigPath string
|
|
}
|
|
|
|
// AgentPlugin is the interface that every agent integration must implement.
|
|
type AgentPlugin interface {
|
|
Install(config InstallConfig) error
|
|
Uninstall(agentID string) error
|
|
Status() (PluginStatus, error)
|
|
}
|
|
|
|
// InstallPreflighter validates provider and runtime sources before CLI writes.
|
|
type InstallPreflighter interface {
|
|
PreflightInstall(config InstallConfig) error
|
|
}
|
|
|
|
// GuardRuntimeManager owns provider-specific guard generation transactionally.
|
|
type GuardRuntimeManager interface {
|
|
ManagesGuardRuntime() bool
|
|
}
|