Documentation
¶
Overview ¶
Package opencodeinstall owns the explicit OpenCode notification lifecycle.
Index ¶
- Constants
- func Apply(ctx context.Context, r Request) error
- func ChannelsFromSnapshot(s installruntime.PolicySnapshot, executable, goos, goarch string) (bool, bool)
- func PrepareNativeSpool(ctx context.Context, controlRoot string) (string, error)
- func RegisteredFromSnapshot(s installruntime.PolicySnapshot, executable, goos, goarch string) bool
- func RevokeChannels(ctx context.Context, controlRoot, runtimeRoot string) error
- func SetupPermission(ctx context.Context, controlRoot string, request bool) (string, error)
- type Action
- type CurrentGate
- type NativeInstallation
- type Request
Constants ¶
const OpenCodeToastAppID = "Genius.AgentNotifications.OpenCode"
Variables ¶
This section is empty.
Functions ¶
func ChannelsFromSnapshot ¶
func ChannelsFromSnapshot(s installruntime.PolicySnapshot, executable, goos, goarch string) (bool, bool)
ChannelsFromSnapshot validates OpenCode ownership and explicit consent in an already-read policy snapshot. It is safe to use inside a setup/native lease callback after the caller revalidates that snapshot under the component lock.
func PrepareNativeSpool ¶
PrepareNativeSpool owns a separate OpenCode-only private namespace. Portable setup may later initialize controlRoot/state without colliding with it. Keep the spool on remove so a previously admitted bounded callback can complete.
func RegisteredFromSnapshot ¶
func RegisteredFromSnapshot(s installruntime.PolicySnapshot, executable, goos, goarch string) bool
RegisteredFromSnapshot checks the owned OpenCode command without requiring desktop consent, so explicit permission setup can precede channel enablement.
func RevokeChannels ¶
RevokeChannels turns off only OpenCode's two channel consents. It is the first removal step and remains available when a delivery asset is missing or damaged; cleanup may report its own conflict afterward.
func SetupPermission ¶
SetupPermission is an explicit OpenCode setup operation. Registration and trusted native evidence are checked before the helper may probe or request OS authorization. No event handler calls this function.
Types ¶
type CurrentGate ¶
type CurrentGate struct{ ControlRoot, Executable, GOOS, GOARCH string }
CurrentGate reads the product registration on each event. No recovery or config mutation occurs on this observation path.
type NativeInstallation ¶
type NativeInstallation struct {
ControlRoot string
Expected installruntime.PolicySnapshot
Executable string
GOOS, GOARCH string
}
NativeInstallation is bound to one event's policy snapshot. Its lease checks OpenCode registration and desktop consent independently of portable enablement while holding both managed locks through native handoff.
func (NativeInstallation) Acquire ¶
func (n NativeInstallation) Acquire(ctx context.Context) (notifier.NativeLease, error)
type Request ¶
type Request struct {
Action Action
ControlRoot, RuntimeRoot, BinarySource string
NativeSource string
HomeDir, XDGConfigHome, OpenCodeConfigDir string
Desktop, Webhook bool
// Platform is supplied by the CLI. Tests use disposable platform fixtures.
GOOS, GOARCH string
}