Download src/tools/ConfigTool/prompt.ts from chenbhao/codev: direct link, hf CLI and curl.
- Browser
- Download file 2.88 kB
-
https://huggingface.co/chenbhao/codev/resolve/e91c8197c9918ff9e5df3140e8c36282bb30e9a2/src/tools/ConfigTool/prompt.ts
- Command line
-
hf download hf://chenbhao/codev@e91c8197c9918ff9e5df3140e8c36282bb30e9a2/src/tools/ConfigTool/prompt.ts
-
curl -L -o prompt.ts https://huggingface.co/chenbhao/codev/resolve/e91c8197c9918ff9e5df3140e8c36282bb30e9a2/src/tools/ConfigTool/prompt.ts
2.88 kB
| import { feature } from 'bun:bundle' | |
| import { getModelOptions } from '../../utils/model/modelOptions.js' | |
| import { isVoiceGrowthBookEnabled } from '../../voice/voiceModeEnabled.js' | |
| import { | |
| getOptionsForSetting, | |
| SUPPORTED_SETTINGS, | |
| } from './supportedSettings.js' | |
| export const DESCRIPTION = 'Get or set Claude Code configuration settings.' | |
| /** | |
| * Generate the prompt documentation from the registry | |
| */ | |
| export function generatePrompt(): string { | |
| const globalSettings: string[] = [] | |
| const projectSettings: string[] = [] | |
| for (const [key, config] of Object.entries(SUPPORTED_SETTINGS)) { | |
| // Skip model - it gets its own section with dynamic options | |
| if (key === 'model') continue | |
| // Voice settings are registered at build-time but gated by GrowthBook | |
| // at runtime. Hide from model prompt when the kill-switch is on. | |
| if ( | |
| feature('VOICE_MODE') && | |
| key === 'voiceEnabled' && | |
| !isVoiceGrowthBookEnabled() | |
| ) | |
| continue | |
| const options = getOptionsForSetting(key) | |
| let line = `- ${key}` | |
| if (options) { | |
| line += `: ${options.map(o => `"${o}"`).join(', ')}` | |
| } else if (config.type === 'boolean') { | |
| line += `: true/false` | |
| } | |
| line += ` - ${config.description}` | |
| if (config.source === 'global') { | |
| globalSettings.push(line) | |
| } else { | |
| projectSettings.push(line) | |
| } | |
| } | |
| const modelSection = generateModelSection() | |
| return `Get or set Claude Code configuration settings. | |
| View or change Claude Code settings. Use when the user requests configuration changes, asks about current settings, or when adjusting a setting would benefit them. | |
| ## Usage | |
| - **Get current value:** Omit the "value" parameter | |
| - **Set new value:** Include the "value" parameter | |
| ## Configurable settings list | |
| The following settings are available for you to change: | |
| ### Global Settings (stored in ~/.claude.json) | |
| ${globalSettings.join('\n')} | |
| ### Project Settings (stored in settings.json) | |
| ${projectSettings.join('\n')} | |
| ${modelSection} | |
| ## Examples | |
| - Get theme: { "setting": "theme" } | |
| - Set dark theme: { "setting": "theme", "value": "dark" } | |
| - Enable vim mode: { "setting": "editorMode", "value": "vim" } | |
| - Enable verbose: { "setting": "verbose", "value": true } | |
| - Change model: { "setting": "model", "value": "opus" } | |
| - Change permission mode: { "setting": "permissions.defaultMode", "value": "plan" } | |
| ` | |
| } | |
| function generateModelSection(): string { | |
| try { | |
| const options = getModelOptions() | |
| const lines = options.map(o => { | |
| const value = o.value === null ? 'null/"default"' : `"${o.value}"` | |
| return ` - ${value}: ${o.descriptionForModel ?? o.description}` | |
| }) | |
| return `## Model | |
| - model - Override the default model. Available options: | |
| ${lines.join('\n')}` | |
| } catch { | |
| return `## Model | |
| - model - Override the default model (sonnet, opus, haiku, best, or full model ID)` | |
| } | |
| } | |