Просмотр исходного кода

feat: Add an experimental option to disable paste summaries (#2552)

Co-authored-by: rekram1-node <[email protected]>
Chris Covington 5 месяцев назад
Родитель
Сommit
53f1f16122

+ 1 - 0
packages/opencode/src/config/config.ts

@@ -499,6 +499,7 @@ export namespace Config {
                 .optional(),
             })
             .optional(),
+          disable_paste_summary: z.boolean().optional(),
         })
         .optional(),
     })

+ 12 - 10
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) {

+ 5 - 0
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)