Allow prompt templates to be overridden in the zed configuration directory (#15887)
I need this to refine our prompts on the fly as I work. Release Notes: - Templates for prompts driving inline transformation in editors and the terminal can now be overridden in the `~/.config/zed/prompts/templates` directory. This is an advanced feature, and prevents you from getting upstream changes. It's intended for use by Zed developers.
This commit is contained in:
parent
6065db174a
commit
c8f1358629
12 changed files with 569 additions and 168 deletions
61
assets/prompts/content_prompt.hbs
Normal file
61
assets/prompts/content_prompt.hbs
Normal file
|
@ -0,0 +1,61 @@
|
|||
{{#if language_name}}
|
||||
Here's a file of {{language_name}} that I'm going to ask you to make an edit to.
|
||||
{{else}}
|
||||
Here's a file of text that I'm going to ask you to make an edit to.
|
||||
{{/if}}
|
||||
|
||||
{{#if is_insert}}
|
||||
The point you'll need to insert at is marked with <insert_here></insert_here>.
|
||||
{{else}}
|
||||
The section you'll need to rewrite is marked with <rewrite_this></rewrite_this> tags.
|
||||
{{/if}}
|
||||
|
||||
<document>
|
||||
{{{document_content}}}
|
||||
</document>
|
||||
|
||||
{{#if is_truncated}}
|
||||
The context around the relevant section has been truncated (possibly in the middle of a line) for brevity.
|
||||
{{/if}}
|
||||
|
||||
{{#if is_insert}}
|
||||
You can't replace {{content_type}}, your answer will be inserted in place of the `<insert_here></insert_here>` tags. Don't include the insert_here tags in your output.
|
||||
|
||||
Generate {{content_type}} based on the following prompt:
|
||||
|
||||
<prompt>
|
||||
{{{user_prompt}}}
|
||||
</prompt>
|
||||
|
||||
Match the indentation in the original file in the inserted {{content_type}}, don't include any indentation on blank lines.
|
||||
|
||||
Immediately start with the following format with no remarks:
|
||||
|
||||
```
|
||||
{{INSERTED_CODE}}
|
||||
```
|
||||
{{else}}
|
||||
Edit the section of {{content_type}} in <rewrite_this></rewrite_this> tags based on the following prompt:
|
||||
|
||||
<prompt>
|
||||
{{{user_prompt}}}
|
||||
</prompt>
|
||||
|
||||
{{#if rewrite_section}}
|
||||
And here's the section to rewrite based on that prompt again for reference:
|
||||
|
||||
<rewrite_this>
|
||||
{{{rewrite_section}}}
|
||||
</rewrite_this>
|
||||
{{/if}}
|
||||
|
||||
Only make changes that are necessary to fulfill the prompt, leave everything else as-is. All surrounding {{content_type}} will be preserved.
|
||||
|
||||
Start at the indentation level in the original file in the rewritten {{content_type}}. Don't stop until you've rewritten the entire section, even if you have no more changes to make, always write out the whole section with no unnecessary elisions.
|
||||
|
||||
Immediately start with the following format with no remarks:
|
||||
|
||||
```
|
||||
{{REWRITTEN_CODE}}
|
||||
```
|
||||
{{/if}}
|
18
assets/prompts/terminal_assistant_prompt.hbs
Normal file
18
assets/prompts/terminal_assistant_prompt.hbs
Normal file
|
@ -0,0 +1,18 @@
|
|||
You are an expert terminal user.
|
||||
You will be given a description of a command and you need to respond with a command that matches the description.
|
||||
Do not include markdown blocks or any other text formatting in your response, always respond with a single command that can be executed in the given shell.
|
||||
Current OS name is '{{os}}', architecture is '{{arch}}'.
|
||||
{{#if shell}}
|
||||
Current shell is '{{shell}}'.
|
||||
{{/if}}
|
||||
{{#if working_directory}}
|
||||
Current working directory is '{{working_directory}}'.
|
||||
{{/if}}
|
||||
{{#if latest_output}}
|
||||
Latest non-empty terminal output:
|
||||
{{#each latest_output as |line|}}
|
||||
{{line}}
|
||||
{{/each}}
|
||||
{{/if}}
|
||||
Here is the description of the command:
|
||||
{{{user_prompt}}}
|
Loading…
Add table
Add a link
Reference in a new issue