diff --git a/packages/opencode/src/config/config.ts b/packages/opencode/src/config/config.ts index 786ddcc6..f4b8608d 100644 --- a/packages/opencode/src/config/config.ts +++ b/packages/opencode/src/config/config.ts @@ -499,6 +499,7 @@ export namespace Config { .optional(), }) .optional(), + disable_paste_summary: z.boolean().optional(), }) .optional(), }) diff --git a/packages/sdk/go/config.go b/packages/sdk/go/config.go index b0473f84..b79bcb2e 100644 --- a/packages/sdk/go/config.go +++ b/packages/sdk/go/config.go @@ -698,16 +698,18 @@ func (r configCommandJSON) RawJSON() string { } type ConfigExperimental struct { - Hook ConfigExperimentalHook `json:"hook"` - JSON configExperimentalJSON `json:"-"` + Hook ConfigExperimentalHook `json:"hook"` + DisablePasteSummary bool `json:"disable_paste_summary"` + JSON configExperimentalJSON `json:"-"` } // configExperimentalJSON contains the JSON metadata for the struct // [ConfigExperimental] type configExperimentalJSON struct { - Hook apijson.Field - raw string - ExtraFields map[string]apijson.Field + Hook apijson.Field + SummarizePaste apijson.Field + raw string + ExtraFields map[string]apijson.Field } func (r *ConfigExperimental) UnmarshalJSON(data []byte) (err error) { @@ -1751,15 +1753,15 @@ func (r ConfigShare) IsKnown() bool { // TUI specific settings type ConfigTui struct { // TUI scroll speed - ScrollSpeed float64 `json:"scroll_speed,required"` - JSON configTuiJSON `json:"-"` + ScrollSpeed float64 `json:"scroll_speed,required"` + JSON configTuiJSON `json:"-"` } // configTuiJSON contains the JSON metadata for the struct [ConfigTui] type configTuiJSON struct { - ScrollSpeed apijson.Field - raw string - ExtraFields map[string]apijson.Field + ScrollSpeed apijson.Field + raw string + ExtraFields map[string]apijson.Field } func (r *ConfigTui) UnmarshalJSON(data []byte) (err error) { diff --git a/packages/tui/internal/components/chat/editor.go b/packages/tui/internal/components/chat/editor.go index 31de346f..2841e2cc 100644 --- a/packages/tui/internal/components/chat/editor.go +++ b/packages/tui/internal/components/chat/editor.go @@ -668,6 +668,11 @@ func (m *editorComponent) shouldSummarizePastedText(text string) bool { if m.app.IsBashMode { return false } + + if m.app.Config != nil && m.app.Config.Experimental.DisablePasteSummary { + return false + } + lines := strings.Split(text, "\n") lineCount := len(lines) charCount := len(text)