Skip to content

Commit 0606587

Browse files
committed
Move default instructions from code constants to configuration schema defaults
- default 'commit message instructions', 'intelligent search instructions', 'agentic search instructions', 'edit files system instructions' should all be defined in package.json only, make sure they're correctly passed to frontent for the default value-restore feature. ├── README.md └── apps └── editor ├── package.json └── src ├── commands │ ├── code-at-cursor-command │ │ └── utils │ │ └── perform-code-at-cursor.ts │ └── generate-commit-message-commands │ └── utils │ └── build-commit-message-prompt.ts ├── constants │ └── instructions.ts ├── extension.ts ├── features │ └── search-files │ ├── search-modes │ │ └── perform-intelligent-search-mode.ts │ └── utils │ └── search-files-by-intelligent.ts ├── migrations │ └── migrate-edit-context-to-edit-files-system-instructions.ts └── views ├── prompt │ └── backend │ └── message-handlers │ ├── handle-agentic-search │ │ └── utils │ │ └── build-agent-prompt.ts │ ├── handle-make-api-call.ts │ ├── handle-patch-repair.ts │ ├── handle-voice-input.ts │ └── utils │ └── patch-repair-utils.ts └── settings ├── backend │ ├── message-handlers │ │ ├── handle-get-commit-message-instructions.ts │ │ ├── handle-get-edit-files-system-instructions.ts │ │ ├── handle-update-commit-message-instructions.ts │ │ ├── handle-update-edit-files-system-instructions.ts │ │ └── index.ts │ └── settings-view-provider.ts ├── frontend │ ├── Home │ │ ├── Home.tsx │ │ └── sections │ │ ├── ApiSection.tsx │ │ └── GeneralSection.tsx │ ├── Settings.tsx │ └── hooks │ └── use-settings.ts └── types └── messages.ts
1 parent 7def2df commit 0606587

16 files changed

Lines changed: 99 additions & 83 deletions

File tree

‎apps/editor/package.json‎

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -933,7 +933,8 @@
933933
},
934934
"codeWebChat.commitMessageInstructions": {
935935
"type": "string",
936-
"scope": "resource"
936+
"scope": "resource",
937+
"default": "Write a brief and precise summary for the changes, limited to a single sentence. Because the summary will be used for a commit message, don't use any markdown formatting and don't include a trailing dot. Use an imperative tone to ensure clarity and focus on the primary change or purpose."
937938
},
938939
"codeWebChat.attachAsciiTreeOfContext": {
939940
"type": "string",
@@ -985,11 +986,13 @@
985986
},
986987
"codeWebChat.intelligentSearchInstructions": {
987988
"type": "string",
988-
"scope": "resource"
989+
"scope": "resource",
990+
"default": "Among the attached files, find the complete set of primary and structural files relevant to the query."
989991
},
990992
"codeWebChat.agenticSearchInstructions": {
991993
"type": "string",
992-
"scope": "resource"
994+
"scope": "resource",
995+
"default": "In the project, find the complete set of primary and structural files relevant to the query."
993996
},
994997
"codeWebChat.agenticSearchAntigravityFlags": {
995998
"type": "array",
@@ -1042,7 +1045,8 @@
10421045
},
10431046
"codeWebChat.editFilesSystemInstructions": {
10441047
"type": "string",
1045-
"scope": "resource"
1048+
"scope": "resource",
1049+
"default": "You're a helpful coding assistant."
10461050
},
10471051
"codeWebChat.chatbots": {
10481052
"type": "array",

‎apps/editor/src/commands/generate-commit-message-commands/utils/build-commit-message-prompt.ts‎

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
import * as vscode from 'vscode'
2-
import {
3-
commit_message_instructions,
4-
commit_message_format
5-
} from '@/constants/instructions'
2+
import { commit_message_format } from '@/constants/instructions'
63
import type { GitRepository } from '@/utils/git-repository-utils'
74
import { MAX_FILE_TOKENS_FOR_COMMIT_MESSAGE } from '@/constants/values'
85
import { PromptBuilder } from '@/utils/prompt-builder'
@@ -15,8 +12,10 @@ export const build_commit_message_prompt = async (
1512
workspace_provider?: WorkspaceProvider
1613
): Promise<{ api_prompt: string; chatbot_prompt: string }> => {
1714
const config = vscode.workspace.getConfiguration('codeWebChat')
18-
const instructions = config.get<string>('commitMessageInstructions')
19-
const commit_message_prompt = instructions || commit_message_instructions
15+
const commit_message_prompt =
16+
config.get<string>('commitMessageInstructions') ||
17+
config.inspect<string>('commitMessageInstructions')?.defaultValue ||
18+
''
2019

2120
const file_diffs = diff.split(/^diff --git /m).filter((d) => d.trim() != '')
2221

‎apps/editor/src/constants/instructions.ts‎

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -38,19 +38,10 @@ def subtract(a, b):
3838
return a - b
3939
\`\`\``
4040

41-
export const commit_message_instructions =
42-
"Write a brief and precise summary for the changes, limited to a single sentence. Because the summary will be used for a commit message, don't use any markdown formatting and don't include a trailing dot. Use an imperative tone to ensure clarity and focus on the primary change or purpose."
43-
4441
export const commit_message_format = `Your response must begin with "**Commit message:**", then proceed with the message. Example:
4542
4643
**Commit message:** Bump version to 1.0.1`
4744

48-
export const agentic_search_task_instructions =
49-
'In the project, find the complete set of primary and structural files relevant to the query.'
50-
51-
export const intelligent_search_task_instructions =
52-
'Among the attached files, find the complete set of primary and structural files relevant to the query.'
53-
5445
export const ai_file_search_format_instructions = `Output strictly as a bulleted list of file paths without explanations or any other text. Example:
5546
5647
- \`src/index.ts\`

‎apps/editor/src/features/search-files/search-modes/perform-intelligent-search-mode.ts‎

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,7 @@ import { ProvidersManager } from '@/services/providers-manager'
1818
import { WebSocketManager } from '@/services/websocket-manager'
1919
import { display_token_count } from '@shared/utils/display-token-count'
2020
import { show_configurations_quick_pick } from '@/utils/show-configurations-quick-pick'
21-
import {
22-
intelligent_search_task_instructions,
23-
intelligent_file_search_format_for_prompt_view
24-
} from '@/constants/instructions'
21+
import { intelligent_file_search_format_for_prompt_view } from '@/constants/instructions'
2522
import { show_no_configurations_warning } from '@/utils/show-no-configurations-warning'
2623
import { ConfigWebConfigurationFormat } from '@/utils/web-configuration-format-converters'
2724

@@ -236,7 +233,9 @@ export const perform_intelligent_search_mode = async (params: {
236233
const config = vscode.workspace.getConfiguration('codeWebChat')
237234
const base_instructions =
238235
config.get<string>('intelligentSearchInstructions') ||
239-
intelligent_search_task_instructions
236+
config.inspect<string>('intelligentSearchInstructions')
237+
?.defaultValue ||
238+
''
240239

241240
let display_folder_path = params.folder_path
242241
if (params.folder_path) {

‎apps/editor/src/features/search-files/utils/search-files-by-intelligent.ts‎

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
import * as vscode from 'vscode'
22
import axios from 'axios'
33
import { send_llm_message } from '@/utils/send-llm-message'
4-
import {
5-
intelligent_search_task_instructions,
6-
ai_file_search_format_instructions
7-
} from '@/constants/instructions'
4+
import { ai_file_search_format_instructions } from '@/constants/instructions'
85
import { apply_reasoning_effort } from '@/utils/apply-reasoning-effort'
96
import { build_user_content } from '@/utils/build-user-content'
107
import { extract_paths_from_bullet_list } from '@/utils/extract-paths-from-bullet-list'
@@ -30,7 +27,8 @@ export const search_files_by_intelligent = async (
3027
const config = vscode.workspace.getConfiguration('codeWebChat')
3128
const base_instructions =
3229
config.get<string>('intelligentSearchInstructions') ||
33-
intelligent_search_task_instructions
30+
config.inspect<string>('intelligentSearchInstructions')?.defaultValue ||
31+
''
3432

3533
const part1 = `# Files\n\n${md_files}`
3634
const part2 = `# Task\n\n${base_instructions}\n\n# Output formatting\n\n${ai_file_search_format_instructions}\n\n# Query\n\n${instructions}`
Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
import * as vscode from 'vscode'
2-
import {
3-
ai_file_search_format_instructions,
4-
agentic_search_task_instructions
5-
} from '@/constants/instructions'
2+
import { ai_file_search_format_instructions } from '@/constants/instructions'
63

74
export const build_agent_prompt = (query: string) => {
85
const config = vscode.workspace.getConfiguration('codeWebChat')
96
const task_instructions =
107
config.get<string>('agenticSearchInstructions') ||
11-
agentic_search_task_instructions
8+
config.inspect<string>('agenticSearchInstructions')?.defaultValue ||
9+
''
1210

1311
return `# Task\n\n${task_instructions}\n\n# Output formatting\n\n${ai_file_search_format_instructions}\n\n# Query\n\n${query}`
1412
}

‎apps/editor/src/views/prompt/backend/message-handlers/handle-make-api-call.ts‎

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import { PromptViewProvider } from '@/views/prompt/backend/prompt-view-provider'
1515
import { apply_reasoning_effort } from '@/utils/apply-reasoning-effort'
1616
import { MakeApiCallMessage } from '@/views/prompt/types/messages'
1717
import { dictionary } from '@shared/constants/dictionary'
18-
import { default_system_instructions } from '@shared/constants/default-system-instructions'
1918
import { build_user_content } from '@/utils/build-user-content'
2019
import { show_configurations_quick_pick } from '@/utils/show-configurations-quick-pick'
2120
import { PromptBuilder } from '@/utils/prompt-builder'
@@ -221,11 +220,11 @@ export const handle_make_api_call = async (
221220
formatted_system_instructions = `# Output formatting\n\n${edit_format_instructions}`
222221
}
223222

223+
const config = vscode.workspace.getConfiguration('codeWebChat')
224224
system_instructions =
225-
vscode.workspace
226-
.getConfiguration('codeWebChat')
227-
.get<string>('editFilesSystemInstructions') ||
228-
default_system_instructions
225+
config.get<string>('editFilesSystemInstructions') ||
226+
config.inspect<string>('editFilesSystemInstructions')?.defaultValue ||
227+
''
229228

230229
const { part1, part2 } = PromptBuilder.build_prompt({
231230
other_files,
Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
import * as vscode from 'vscode'
22
import { SettingsViewProvider } from '@/views/settings/backend/settings-view-provider'
3-
import { commit_message_instructions } from '@/constants/instructions'
43

54
export const handle_get_commit_message_instructions = async (
65
provider: SettingsViewProvider
76
): Promise<void> => {
87
const config = vscode.workspace.getConfiguration('codeWebChat')
8+
const default_instructions =
9+
config.inspect<string>('commitMessageInstructions')?.defaultValue || ''
910
const instructions =
10-
config.get<string>('commitMessageInstructions') ||
11-
commit_message_instructions
11+
config.get<string>('commitMessageInstructions') || default_instructions
1212
provider.postMessage({
1313
command: 'COMMIT_MESSAGE_INSTRUCTIONS',
14-
instructions
14+
instructions,
15+
default_instructions
1516
})
1617
}
Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
import * as vscode from 'vscode'
22
import { SettingsViewProvider } from '@/views/settings/backend/settings-view-provider'
3-
import { default_system_instructions } from '@shared/constants/default-system-instructions'
43

54
export const handle_get_edit_files_system_instructions = async (
65
provider: SettingsViewProvider
76
): Promise<void> => {
87
const config = vscode.workspace.getConfiguration('codeWebChat')
8+
const default_instructions =
9+
config.inspect<string>('editFilesSystemInstructions')?.defaultValue || ''
910
const instructions =
10-
config.get<string>('editFilesSystemInstructions') ||
11-
default_system_instructions
11+
config.get<string>('editFilesSystemInstructions') || default_instructions
1212
provider.postMessage({
1313
command: 'EDIT_FILES_SYSTEM_INSTRUCTIONS',
14-
instructions
14+
instructions,
15+
default_instructions
1516
})
1617
}
Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
11
import * as vscode from 'vscode'
22
import { UpdateCommitMessageInstructionsMessage } from '@/views/settings/types/messages'
3-
import { commit_message_instructions } from '@/constants/instructions'
43

54
export const handle_update_commit_message_instructions = async (
65
message: UpdateCommitMessageInstructionsMessage
76
): Promise<void> => {
8-
await vscode.workspace
9-
.getConfiguration('codeWebChat')
10-
.update(
11-
'commitMessageInstructions',
12-
message.instructions == '' ||
13-
message.instructions == commit_message_instructions
14-
? undefined
15-
: message.instructions,
16-
vscode.ConfigurationTarget.Global
17-
)
7+
const config = vscode.workspace.getConfiguration('codeWebChat')
8+
const default_instructions =
9+
config.inspect<string>('commitMessageInstructions')?.defaultValue || ''
10+
await config.update(
11+
'commitMessageInstructions',
12+
message.instructions == '' || message.instructions == default_instructions
13+
? undefined
14+
: message.instructions,
15+
vscode.ConfigurationTarget.Global
16+
)
1817
}

0 commit comments

Comments
 (0)