first commit

This commit is contained in:
2026-08-14 23:41:57 +08:00
commit 086803a8dd
471 changed files with 91938 additions and 0 deletions
+59
View File
@@ -0,0 +1,59 @@
package tui
import (
"github.com/smallnest/pigo/internal/agentcore"
"github.com/smallnest/pigo/internal/plugin"
"github.com/smallnest/pigo/internal/provider"
"github.com/smallnest/pigo/internal/runtime"
)
// Options carries the resolved run configuration into Run. It deliberately
// mirrors repl.Options (see internal/cli/repl/interactive.go) field-for-field so
// cmd/pigo's dispatch can map the same assembled environment to either path, and
// so downstream nodes can port the REPL's session/live/slash/trust wiring into
// the TUI without reshaping the entry seam. This skeleton node does not yet
// consume most fields — they are here to lock the contract.
type Options struct {
Model string
ProviderName string
Provider provider.Provider
BaseURL string
APIKey string
Protocol string
// Version is the running build version (main.version), shown in the startup
// banner. Empty or "dev"/"unknown" renders as-is with no update hint.
Version string
// ThinkingLevel is the resolved reasoning-effort level (US-023): it seeds the
// live run config so every turn requests it, until a control command changes
// it.
ThinkingLevel agentcore.ThinkingLevel
Tools []agentcore.AgentTool
SysPrompt string
// ResumeID, when non-empty, resumes an existing session: its messages seed
// the context and replayed transcript. Otherwise a fresh session is created.
ResumeID string
// Approve, when true, grants the launch directory session trust before the
// run so the first-launch trust prompt is skipped and side-effect tools run
// without per-call confirmation (mirrors pi's --approve/-a).
Approve bool
// Skills is the pre-loaded skill set (loaded once by run.SetupEnv, shared with
// prompt injection). Each is registered as a /skill-name command. Empty under
// --no-skills, so nothing is registered.
Skills []*runtime.Skill
// Plugins holds the loaded plugin manager so the TUI can deliver lifecycle
// events to subscribed plugins (US-017, #133). It may be nil (no plugins).
Plugins *plugin.Manager
// ConfigPrompts holds prompt-template paths from the config.toml `prompts`
// array (settings tier); each is a file or dir loaded non-recursively.
ConfigPrompts []string
// CliPrompts holds --prompt-template paths (CLI tier, repeatable).
CliPrompts []string
// NoPromptTemplates disables all prompt-template discovery (global, project,
// settings, CLI); built-in slash commands are unaffected. Independent of
// --no-skills.
NoPromptTemplates bool
}