diff --git a/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx b/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx index d63c248fb83e..46ce2a7fca3e 100644 --- a/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx +++ b/packages/opencode/src/cli/cmd/tui/component/prompt/index.tsx @@ -962,8 +962,10 @@ export function Prompt(props: PromptProps) { } const lineCount = (pastedContent.match(/\n/g)?.length ?? 0) + 1 + const minLines = sync.data.config.experimental?.paste_min_lines ?? 3 + const minLength = sync.data.config.experimental?.paste_min_length ?? 150 if ( - (lineCount >= 3 || pastedContent.length > 150) && + (lineCount >= minLines || pastedContent.length > minLength) && !sync.data.config.experimental?.disable_paste_summary ) { event.preventDefault() diff --git a/packages/opencode/src/config/config.ts b/packages/opencode/src/config/config.ts index 6b4242a225aa..a95d7916ee38 100644 --- a/packages/opencode/src/config/config.ts +++ b/packages/opencode/src/config/config.ts @@ -1166,6 +1166,18 @@ export namespace Config { .positive() .optional() .describe("Timeout in milliseconds for model context protocol (MCP) requests"), + paste_min_lines: z + .number() + .int() + .positive() + .optional() + .describe("Minimum number of lines in pasted content before it is summarized (default: 3)"), + paste_min_length: z + .number() + .int() + .positive() + .optional() + .describe("Minimum character length of pasted content before it is summarized (default: 150)"), }) .optional(), }) diff --git a/packages/sdk/js/src/v2/gen/types.gen.ts b/packages/sdk/js/src/v2/gen/types.gen.ts index 71e075b39169..8acf195a9bf8 100644 --- a/packages/sdk/js/src/v2/gen/types.gen.ts +++ b/packages/sdk/js/src/v2/gen/types.gen.ts @@ -1496,6 +1496,14 @@ export type Config = { * Timeout in milliseconds for model context protocol (MCP) requests */ mcp_timeout?: number + /** + * Minimum number of lines in pasted content before it is summarized (default: 3) + */ + paste_min_lines?: number + /** + * Minimum character length of pasted content before it is summarized (default: 150) + */ + paste_min_length?: number } }