summaryrefslogtreecommitdiffhomepage
path: root/cmd/root.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/root.go')
-rw-r--r--cmd/root.go65
1 files changed, 5 insertions, 60 deletions
diff --git a/cmd/root.go b/cmd/root.go
index a6b82c409..7c7795552 100644
--- a/cmd/root.go
+++ b/cmd/root.go
@@ -15,9 +15,6 @@ import (
"github.com/spf13/cobra"
"github.com/sst/opencode/internal/app"
"github.com/sst/opencode/internal/config"
- "github.com/sst/opencode/internal/db"
- "github.com/sst/opencode/internal/format"
- "github.com/sst/opencode/internal/llm/agent"
"github.com/sst/opencode/internal/logging"
"github.com/sst/opencode/internal/lsp/discovery"
"github.com/sst/opencode/internal/pubsub"
@@ -90,52 +87,17 @@ to assist developers in writing, debugging, and understanding code directly from
return err
}
- // Check if we're in non-interactive mode
- prompt, _ := cmd.Flags().GetString("prompt")
-
- // Check for piped input if no prompt was provided via flag
- if prompt == "" {
- pipedInput, hasPipedInput := checkStdinPipe()
- if hasPipedInput {
- prompt = pipedInput
- }
- }
-
- // If we have a prompt (either from flag or piped input), run in non-interactive mode
- if prompt != "" {
- outputFormatStr, _ := cmd.Flags().GetString("output-format")
- outputFormat := format.OutputFormat(outputFormatStr)
- if !outputFormat.IsValid() {
- return fmt.Errorf("invalid output format: %s", outputFormatStr)
- }
-
- quiet, _ := cmd.Flags().GetBool("quiet")
- verbose, _ := cmd.Flags().GetBool("verbose")
-
- // Get tool restriction flags
- allowedTools, _ := cmd.Flags().GetStringSlice("allowedTools")
- excludedTools, _ := cmd.Flags().GetStringSlice("excludedTools")
-
- return handleNonInteractiveMode(cmd.Context(), prompt, outputFormat, quiet, verbose, allowedTools, excludedTools)
- }
-
// Run LSP auto-discovery
if err := discovery.IntegrateLSPServers(cwd); err != nil {
slog.Warn("Failed to auto-discover LSP servers", "error", err)
// Continue anyway, this is not a fatal error
}
- // Connect DB, this will also run migrations
- conn, err := db.Connect()
- if err != nil {
- return err
- }
-
// Create main context for the application
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
- app, err := app.New(ctx, conn)
+ app, err := app.New(ctx)
if err != nil {
slog.Error("Failed to create app", "error", err)
return err
@@ -149,9 +111,6 @@ to assist developers in writing, debugging, and understanding code directly from
tea.WithAltScreen(),
)
- // Initialize MCP tools in the background
- initMCPTools(ctx, app)
-
// Setup the subscriptions, this will send services events to the TUI
ch, cancelSubs := setupSubscriptions(app, ctx)
@@ -234,20 +193,6 @@ func attemptTUIRecovery(program *tea.Program) {
program.Quit()
}
-func initMCPTools(ctx context.Context, app *app.App) {
- go func() {
- defer logging.RecoverPanic("MCP-goroutine", nil)
-
- // Create a context with timeout for the initial MCP tools fetch
- ctxWithTimeout, cancel := context.WithTimeout(ctx, 30*time.Second)
- defer cancel()
-
- // Set this up once with proper error handling
- agent.GetMcpTools(ctxWithTimeout, app.Permissions)
- slog.Info("MCP message handling goroutine exiting")
- }()
-}
-
func setupSubscriber[T any](
ctx context.Context,
wg *sync.WaitGroup,
@@ -298,10 +243,10 @@ func setupSubscriptions(app *app.App, parentCtx context.Context) (chan tea.Msg,
wg := sync.WaitGroup{}
ctx, cancel := context.WithCancel(parentCtx) // Inherit from parent context
- setupSubscriber(ctx, &wg, "logging", app.Logs.Subscribe, ch)
- setupSubscriber(ctx, &wg, "sessions", app.Sessions.Subscribe, ch)
- setupSubscriber(ctx, &wg, "messages", app.Messages.Subscribe, ch)
- setupSubscriber(ctx, &wg, "permissions", app.Permissions.Subscribe, ch)
+ // setupSubscriber(ctx, &wg, "logging", app.Logs.Subscribe, ch)
+ // setupSubscriber(ctx, &wg, "sessions", app.Sessions.Subscribe, ch)
+ // setupSubscriber(ctx, &wg, "messages", app.Messages.Subscribe, ch)
+ // setupSubscriber(ctx, &wg, "permissions", app.Permissions.Subscribe, ch)
setupSubscriber(ctx, &wg, "status", app.Status.Subscribe, ch)
cleanupFunc := func() {