Files
BlackBean/pigo/internal/cli/repl/host.go
T
2026-08-14 23:41:57 +08:00

54 lines
2.9 KiB
Go

// This file makes replDeps satisfy cli.Host: the accessor and mutator methods
// let the /goal, /btw, /status and REPL logic reach the session's collaborators
// and mutable state through the cli.Host contract rather than the concrete
// aggregate. The compile-time assertion below fails the build if replDeps drifts
// out of conformance.
package repl
import (
"bufio"
"sync"
"github.com/smallnest/pigo/internal/agentcore"
"github.com/smallnest/pigo/internal/agenttool"
"github.com/smallnest/pigo/internal/cli"
"github.com/smallnest/pigo/internal/cli/run"
"github.com/smallnest/pigo/internal/hooks"
"github.com/smallnest/pigo/internal/plugin"
"github.com/smallnest/pigo/internal/provider"
"github.com/smallnest/pigo/internal/runtime"
"github.com/smallnest/pigo/internal/session"
"github.com/smallnest/pigo/internal/trust"
)
var _ cli.Host = (*replDeps)(nil)
func (d *replDeps) Store() *session.Store { return d.store }
func (d *replDeps) Header() session.SessionHeader { return d.header }
func (d *replDeps) AgentCtx() *agentcore.AgentContext { return d.agentCtx }
func (d *replDeps) Live() *cli.LiveConfig { return d.live }
func (d *replDeps) Registry() *agenttool.ToolRegistry { return d.reg }
func (d *replDeps) Reminders() *runtime.ReminderRegistry { return d.reminders }
func (d *replDeps) Slash() *runtime.SlashRegistry { return d.slash }
func (d *replDeps) Creds() *provider.CredentialStore { return d.creds }
func (d *replDeps) Notifier() *plugin.EventNotifier { return d.notifier }
func (d *replDeps) NotifierHandle() func(agentcore.AgentEvent) { return d.notifierHandle() }
func (d *replDeps) Trust() *trust.Manager { return d.trust }
func (d *replDeps) Goal() *agenttool.GoalState { return d.goal }
func (d *replDeps) Telemetry() *cli.TelemetryHolder { return d.telemetry }
func (d *replDeps) Dispatcher() *hooks.Dispatcher { return d.dispatcher }
func (d *replDeps) HookDeps() run.HookDeps { return d.hookDeps }
func (d *replDeps) Cwd() string { return d.cwd }
func (d *replDeps) Input() *bufio.Reader { return d.in }
func (d *replDeps) ConfirmMu() *sync.Mutex { return d.confirmMu }
func (d *replDeps) CurLeaf() string { return d.curLeaf }
func (d *replDeps) SetCurLeaf(id string) { d.curLeaf = id }
func (d *replDeps) Persisted() int { return d.persisted }
func (d *replDeps) SetPersisted(n int) { d.persisted = n }
func (d *replDeps) LastBtw() *agentcore.AgentContext { return d.lastBtw }
func (d *replDeps) SetLastBtw(ctx *agentcore.AgentContext) { d.lastBtw = ctx }
func (d *replDeps) LastBtwBase() int { return d.lastBtwBase }
func (d *replDeps) SetLastBtwBase(n int) { d.lastBtwBase = n }