diff options
Diffstat (limited to 'cmd/root.go')
| -rw-r--r-- | cmd/root.go | 65 |
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() { |
