feat: turn Explore into a full /explore command
Promote the last plain-prompt draft chip into a proper /explore command so all draft welcome presets are now commands. Its hidden prompt investigates the repository and gives a structured orientation — big picture, main modules, how they connect, conventions, and where to start — instead of a file-by-file dump. Follows the established pattern: visible + hidden magic prompts wired into command autocomplete, the submit handler, the draft chip, and the Magic Prompts settings page, with i18n across all locales. Drops the now-unused explore prompt string.
This commit is contained in:
@@ -99,7 +99,7 @@ type DraftPreset = {
|
||||
command?: string;
|
||||
};
|
||||
const DRAFT_PRESETS: readonly DraftPreset[] = [
|
||||
{ id: 'explore', icon: 'compass-3', labelKey: 'chat.draftPresets.explore.label', promptKey: 'chat.draftPresets.explore.prompt' },
|
||||
{ id: 'explore', icon: 'compass-3', labelKey: 'chat.draftPresets.explore.label', command: '/explore' },
|
||||
{ id: 'catchup', icon: 'history', labelKey: 'chat.draftPresets.catchup.label', command: '/catch-up' },
|
||||
{ id: 'weigh', icon: 'scales-3', labelKey: 'chat.draftPresets.weigh.label', command: '/weigh' },
|
||||
{ id: 'plan', icon: 'survey', labelKey: 'chat.draftPresets.plan.label', command: '/plan-feature' },
|
||||
@@ -1124,7 +1124,7 @@ const ChatInputComponent: React.FC<ChatInputProps> = ({ onOpenSettings, scrollTo
|
||||
const availableSkills = useSkillsStore((s) => s.skills);
|
||||
const knownSlashNames = React.useMemo(() => {
|
||||
const names = new Set<string>([
|
||||
'init', 'review', 'undo', 'redo', 'timeline', 'compact', 'summary', 'workspace-review', 'plan-feature', 'catch-up', 'debug', 'weigh',
|
||||
'init', 'review', 'undo', 'redo', 'timeline', 'compact', 'summary', 'workspace-review', 'plan-feature', 'catch-up', 'debug', 'weigh', 'explore',
|
||||
]);
|
||||
for (const command of availableCommands) names.add(command.name.toLowerCase());
|
||||
for (const skill of availableSkills) names.add(skill.name.toLowerCase());
|
||||
@@ -2040,6 +2040,28 @@ const ChatInputComponent: React.FC<ChatInputProps> = ({ onOpenSettings, scrollTo
|
||||
}
|
||||
return;
|
||||
}
|
||||
else if (commandName === 'explore' && (currentSessionId || newSessionDraftOpen)) {
|
||||
try {
|
||||
await sessionActions.waitForConnectionOrThrow();
|
||||
const visibleText = await renderMagicPrompt('session.explore.visible');
|
||||
const instructionsText = await renderMagicPrompt('session.explore.instructions');
|
||||
await sendMessage(
|
||||
visibleText,
|
||||
providerIdToSend,
|
||||
modelIdToSend,
|
||||
agentNameToSend,
|
||||
[],
|
||||
agentMentionName,
|
||||
[{ text: instructionsText, synthetic: true }],
|
||||
variantToSend,
|
||||
inputMode,
|
||||
);
|
||||
scrollToBottom?.();
|
||||
} catch (error) {
|
||||
toast.error(error instanceof Error ? error.message : t('chat.chatInput.toast.exploreFailed'));
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
const currentSessionDirectory = currentSessionId
|
||||
|
||||
@@ -168,6 +168,10 @@ export const CommandAutocomplete = React.forwardRef<CommandAutocompleteHandle, C
|
||||
? [{ id: 'openchamber:weigh', name: 'weigh', source: 'openchamber' as const, description: t('chat.commandAutocomplete.command.weighDescription'), isOpenChamber: true }]
|
||||
: []
|
||||
),
|
||||
...(canStartSessionCommand
|
||||
? [{ id: 'openchamber:explore', name: 'explore', source: 'openchamber' as const, description: t('chat.commandAutocomplete.command.exploreDescription'), isOpenChamber: true }]
|
||||
: []
|
||||
),
|
||||
];
|
||||
const allCommands = [...builtInCommands, ...customCommands, ...skillCommands];
|
||||
|
||||
@@ -229,6 +233,10 @@ export const CommandAutocomplete = React.forwardRef<CommandAutocompleteHandle, C
|
||||
? [{ id: 'openchamber:weigh', name: 'weigh', source: 'openchamber' as const, description: t('chat.commandAutocomplete.command.weighDescription'), isOpenChamber: true }]
|
||||
: []
|
||||
),
|
||||
...(canStartSessionCommand
|
||||
? [{ id: 'openchamber:explore', name: 'explore', source: 'openchamber' as const, description: t('chat.commandAutocomplete.command.exploreDescription'), isOpenChamber: true }]
|
||||
: []
|
||||
),
|
||||
];
|
||||
|
||||
const filtered = (searchQuery
|
||||
|
||||
@@ -172,6 +172,14 @@ const PROMPT_PAGE_MAP: Record<string, PromptPageConfig> = {
|
||||
{ id: 'session.weigh.instructions', titleKey: 'settings.magicPrompts.page.block.instructions' },
|
||||
],
|
||||
},
|
||||
'session.explore': {
|
||||
titleKey: 'settings.magicPrompts.page.group.sessionExplore.title',
|
||||
descriptionKey: 'settings.magicPrompts.page.group.sessionExplore.description',
|
||||
blocks: [
|
||||
{ id: 'session.explore.visible', titleKey: 'settings.magicPrompts.page.block.visiblePrompt' },
|
||||
{ id: 'session.explore.instructions', titleKey: 'settings.magicPrompts.page.block.instructions' },
|
||||
],
|
||||
},
|
||||
'session.fusion': {
|
||||
titleKey: 'settings.magicPrompts.page.group.sessionFusion.title',
|
||||
descriptionKey: 'settings.magicPrompts.page.group.sessionFusion.description',
|
||||
|
||||
@@ -45,6 +45,7 @@ export const MagicPromptsSidebar: React.FC<MagicPromptsSidebarProps> = ({ onItem
|
||||
{
|
||||
groupKey: 'settings.magicPrompts.sidebar.group.session',
|
||||
items: [
|
||||
{ id: 'session.explore', titleKey: 'settings.magicPrompts.sidebar.item.sessionExplore' },
|
||||
{ id: 'session.summary', titleKey: 'settings.magicPrompts.sidebar.item.sessionSummary' },
|
||||
{ id: 'session.review', titleKey: 'settings.magicPrompts.sidebar.item.sessionWorkspaceReview' },
|
||||
{ id: 'session.plan', titleKey: 'settings.magicPrompts.sidebar.item.sessionFeaturePlan' },
|
||||
|
||||
@@ -223,6 +223,7 @@ export const settingsDict = {
|
||||
'settings.magicPrompts.sidebar.item.planImplement': 'Implement Plan',
|
||||
'settings.magicPrompts.sidebar.item.sessionSummary': 'Session Summary',
|
||||
'settings.magicPrompts.sidebar.item.sessionWorkspaceReview': 'Workspace Review',
|
||||
'settings.magicPrompts.sidebar.item.sessionExplore': 'Codebase Tour',
|
||||
'settings.magicPrompts.sidebar.item.sessionFeaturePlan': 'Feature Planning',
|
||||
'settings.magicPrompts.sidebar.item.sessionCatchUp': 'Catch Up',
|
||||
'settings.magicPrompts.sidebar.item.sessionDebug': 'Debugging',
|
||||
@@ -1689,6 +1690,8 @@ export const settingsDict = {
|
||||
'settings.magicPrompts.page.group.sessionSummary.title': 'Session Summary',
|
||||
'settings.magicPrompts.page.group.sessionSummary.description': 'Prompts used by the /summary slash command: visible user message + hidden instructions. Non-destructive - does not compact session history.',
|
||||
'settings.magicPrompts.page.group.sessionWorkspaceReview.title': 'Workspace Review',
|
||||
'settings.magicPrompts.page.group.sessionExplore.title': 'Codebase Tour',
|
||||
'settings.magicPrompts.page.group.sessionExplore.description': 'Prompts used by the /explore slash command: visible user message + hidden instructions. Investigates the repository and gives a structured orientation — the big picture, main modules, how they connect, and where to start — rather than a file-by-file dump.',
|
||||
'settings.magicPrompts.page.group.sessionWorkspaceReview.description': 'Prompts used by the /workspace-review slash command: visible user message + hidden instructions. Reviews current workspace changes for high-signal issues only.',
|
||||
'settings.magicPrompts.page.group.sessionFeaturePlan.title': 'Feature Planning',
|
||||
'settings.magicPrompts.page.group.sessionFeaturePlan.description': 'Prompts used by the /plan-feature slash command: visible user message + hidden instructions. Runs a guided dialogue that researches the code and asks clarifying questions in small batches before producing an implementation plan.',
|
||||
|
||||
@@ -1454,7 +1454,6 @@ export const dict = {
|
||||
'chat.emptyState.draftTitle': 'What are we working on?',
|
||||
'chat.emptyState.draftTitleWithProject': 'What are we working on in {project}?',
|
||||
'chat.draftPresets.explore.label': 'Explore the codebase',
|
||||
'chat.draftPresets.explore.prompt': 'Give me a high-level tour of this codebase — the architecture, the main modules, and how they fit together.',
|
||||
'chat.draftPresets.catchup.label': 'Catch me up',
|
||||
'chat.draftPresets.weigh.label': 'Weigh my options',
|
||||
'chat.draftPresets.plan.label': 'Start feature planning',
|
||||
@@ -1524,6 +1523,7 @@ export const dict = {
|
||||
'chat.commandAutocomplete.command.catchUpDescription': 'Re-establish context: what you were doing and where to pick up.',
|
||||
'chat.commandAutocomplete.command.debugDescription': 'Guided root-cause investigation for a bug before proposing a fix.',
|
||||
'chat.commandAutocomplete.command.weighDescription': 'Weigh 2-3 approaches with trade-offs and a recommendation before you commit.',
|
||||
'chat.commandAutocomplete.command.exploreDescription': 'Get oriented in this codebase: a high-level tour of the architecture and main parts.',
|
||||
'chat.commandAutocomplete.badge.skill': 'skill',
|
||||
'chat.commandAutocomplete.badge.command': 'command',
|
||||
'chat.commandAutocomplete.badge.system': 'system',
|
||||
@@ -1643,6 +1643,7 @@ export const dict = {
|
||||
'chat.chatInput.toast.catchUpFailed': 'Failed to catch up',
|
||||
'chat.chatInput.toast.debugFailed': 'Failed to start debugging',
|
||||
'chat.chatInput.toast.weighFailed': 'Failed to weigh options',
|
||||
'chat.chatInput.toast.exploreFailed': 'Failed to start the tour',
|
||||
'chat.chatInput.toast.attachmentsTooLarge': 'Attachments are too large to send. Please try reducing the number or size of images.',
|
||||
'chat.chatInput.toast.sendAttachmentsFailed': 'Failed to send attachments. Try fewer files or smaller images.',
|
||||
'chat.chatInput.toast.messageSendFailed': 'Message failed to send. Attachments restored.',
|
||||
|
||||
@@ -190,6 +190,7 @@ export const settingsDict = {
|
||||
"settings.magicPrompts.sidebar.item.planImplement": "Implementar plan",
|
||||
"settings.magicPrompts.sidebar.item.sessionSummary": "Resumen de sesión",
|
||||
"settings.magicPrompts.sidebar.item.sessionWorkspaceReview": "Revisión del espacio de trabajo",
|
||||
"settings.magicPrompts.sidebar.item.sessionExplore": "Recorrido del código",
|
||||
"settings.magicPrompts.sidebar.item.sessionFeaturePlan": "Planificación de funciones",
|
||||
"settings.magicPrompts.sidebar.item.sessionCatchUp": "Ponerse al día",
|
||||
"settings.magicPrompts.sidebar.item.sessionDebug": "Depuración",
|
||||
@@ -1656,6 +1657,8 @@ export const settingsDict = {
|
||||
"settings.magicPrompts.page.group.sessionSummary.title": "Resumen de sesión",
|
||||
"settings.magicPrompts.page.group.sessionSummary.description": "Prompts usados por el comando /summary: mensaje visible del usuario + instrucciones ocultas. No destructivo: no compacta el historial de la sesión.",
|
||||
"settings.magicPrompts.page.group.sessionWorkspaceReview.title": "Revisión del espacio de trabajo",
|
||||
"settings.magicPrompts.page.group.sessionExplore.title": "Recorrido del código",
|
||||
"settings.magicPrompts.page.group.sessionExplore.description": "Prompts usados por el comando /explore: mensaje visible del usuario + instrucciones ocultas. Investiga el repositorio y ofrece una orientación estructurada — la visión general, los módulos principales, cómo se conectan y por dónde empezar — en lugar de un listado archivo por archivo.",
|
||||
"settings.magicPrompts.page.group.sessionWorkspaceReview.description": "Prompts usados por el comando /workspace-review: mensaje visible del usuario + instrucciones ocultas. Revisa los cambios actuales del espacio de trabajo solo para problemas de alta señal.",
|
||||
"settings.magicPrompts.page.group.sessionFeaturePlan.title": "Planificación de funciones",
|
||||
"settings.magicPrompts.page.group.sessionFeaturePlan.description": "Prompts usados por el comando /plan-feature: mensaje visible del usuario + instrucciones ocultas. Ejecuta un diálogo guiado que investiga el código y hace preguntas aclaratorias en lotes pequeños antes de producir un plan de implementación.",
|
||||
|
||||
@@ -1420,7 +1420,6 @@ export const dict: Record<I18nKey, string> = {
|
||||
"chat.emptyState.draftTitle": "What are we working on?",
|
||||
"chat.emptyState.draftTitleWithProject": "What are we working on in {project}?",
|
||||
"chat.draftPresets.explore.label": "Explore the codebase",
|
||||
"chat.draftPresets.explore.prompt": "Give me a high-level tour of this codebase — the architecture, the main modules, and how they fit together.",
|
||||
"chat.draftPresets.catchup.label": "Catch me up",
|
||||
"chat.draftPresets.weigh.label": "Weigh my options",
|
||||
"chat.draftPresets.plan.label": "Start feature planning",
|
||||
@@ -1490,6 +1489,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
"chat.commandAutocomplete.command.catchUpDescription": "Recupera el contexto: qué estabas haciendo y por dónde continuar.",
|
||||
"chat.commandAutocomplete.command.debugDescription": "Investigación guiada de la causa raíz de un error antes de proponer una solución.",
|
||||
"chat.commandAutocomplete.command.weighDescription": "Compara 2-3 enfoques con sus ventajas y desventajas y una recomendación antes de decidir.",
|
||||
"chat.commandAutocomplete.command.exploreDescription": "Oriéntate en este código: un recorrido general de la arquitectura y las partes principales.",
|
||||
"chat.commandAutocomplete.badge.skill": "habilidad",
|
||||
"chat.commandAutocomplete.badge.command": "comando",
|
||||
"chat.commandAutocomplete.badge.system": "sistema",
|
||||
@@ -1609,6 +1609,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
"chat.chatInput.toast.catchUpFailed": "No se pudo recuperar el contexto",
|
||||
"chat.chatInput.toast.debugFailed": "No se pudo iniciar la depuración",
|
||||
"chat.chatInput.toast.weighFailed": "No se pudieron comparar las opciones",
|
||||
"chat.chatInput.toast.exploreFailed": "No se pudo iniciar el recorrido",
|
||||
"chat.chatInput.toast.attachmentsTooLarge": "Los adjuntos son demasiado grandes para enviar. Intenta reducir la cantidad o el tamaño de las imágenes.",
|
||||
"chat.chatInput.toast.sendAttachmentsFailed": "No se pudieron enviar los adjuntos. Intenta con menos archivos o imágenes más pequeñas.",
|
||||
"chat.chatInput.toast.messageSendFailed": "El mensaje no se pudo enviar. Los adjuntos se restauraron.",
|
||||
|
||||
@@ -190,6 +190,7 @@ export const settingsDict = {
|
||||
'settings.magicPrompts.sidebar.item.planImplement': '계획 구현',
|
||||
'settings.magicPrompts.sidebar.item.sessionSummary': '세션 요약',
|
||||
'settings.magicPrompts.sidebar.item.sessionWorkspaceReview': '워크스페이스 리뷰',
|
||||
'settings.magicPrompts.sidebar.item.sessionExplore': '코드베이스 둘러보기',
|
||||
'settings.magicPrompts.sidebar.item.sessionFeaturePlan': '기능 계획',
|
||||
'settings.magicPrompts.sidebar.item.sessionCatchUp': '따라잡기',
|
||||
'settings.magicPrompts.sidebar.item.sessionDebug': '디버깅',
|
||||
@@ -1656,6 +1657,8 @@ export const settingsDict = {
|
||||
'settings.magicPrompts.page.group.sessionSummary.title': '세션 요약',
|
||||
'settings.magicPrompts.page.group.sessionSummary.description': '/summary slash command에서 사용하는 프롬프트입니다: 표시 사용자 메시지 + 숨겨진 지침. 비파괴적이며 세션 기록을 압축하지 않습니다.',
|
||||
'settings.magicPrompts.page.group.sessionWorkspaceReview.title': '워크스페이스 리뷰',
|
||||
'settings.magicPrompts.page.group.sessionExplore.title': '코드베이스 둘러보기',
|
||||
'settings.magicPrompts.page.group.sessionExplore.description': '/explore slash command에서 사용하는 프롬프트입니다: 표시 사용자 메시지 + 숨겨진 지침. 저장소를 조사하여 파일별 나열이 아니라 큰 그림, 주요 모듈, 연결 방식, 시작점 등 구조적인 방향을 제시합니다.',
|
||||
'settings.magicPrompts.page.group.sessionWorkspaceReview.description': '/workspace-review slash command에서 사용하는 프롬프트입니다: 표시 사용자 메시지 + 숨겨진 지침. 현재 workspace 변경 사항에서 중요한 문제만 리뷰합니다.',
|
||||
'settings.magicPrompts.page.group.sessionFeaturePlan.title': '기능 계획',
|
||||
'settings.magicPrompts.page.group.sessionFeaturePlan.description': '/plan-feature slash command에서 사용하는 프롬프트입니다: 표시 사용자 메시지 + 숨겨진 지침. 코드를 조사하고 작은 묶음으로 명확화 질문을 한 뒤 구현 계획을 만드는 가이드 대화를 실행합니다.',
|
||||
|
||||
@@ -1456,7 +1456,6 @@ export const dict: Record<I18nKey, string> = {
|
||||
'chat.emptyState.draftTitle': 'What are we working on?',
|
||||
'chat.emptyState.draftTitleWithProject': 'What are we working on in {project}?',
|
||||
'chat.draftPresets.explore.label': 'Explore the codebase',
|
||||
'chat.draftPresets.explore.prompt': 'Give me a high-level tour of this codebase — the architecture, the main modules, and how they fit together.',
|
||||
'chat.draftPresets.catchup.label': 'Catch me up',
|
||||
'chat.draftPresets.weigh.label': 'Weigh my options',
|
||||
'chat.draftPresets.plan.label': 'Start feature planning',
|
||||
@@ -1526,6 +1525,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
'chat.commandAutocomplete.command.catchUpDescription': '맥락을 다시 파악합니다: 무엇을 하고 있었고 어디서 이어서 할지.',
|
||||
'chat.commandAutocomplete.command.debugDescription': '수정안을 제시하기 전에 버그의 근본 원인을 단계적으로 조사합니다.',
|
||||
'chat.commandAutocomplete.command.weighDescription': '결정하기 전에 2~3가지 접근 방식을 장단점과 함께 비교하고 추천을 제시합니다.',
|
||||
'chat.commandAutocomplete.command.exploreDescription': '코드베이스에 대한 방향을 잡습니다: 아키텍처와 주요 부분을 한눈에 살펴봅니다.',
|
||||
'chat.commandAutocomplete.badge.skill': '스킬',
|
||||
'chat.commandAutocomplete.badge.command': '명령',
|
||||
'chat.commandAutocomplete.badge.system': 'system',
|
||||
@@ -1643,6 +1643,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
'chat.chatInput.toast.catchUpFailed': '컨텍스트를 불러오지 못했습니다',
|
||||
'chat.chatInput.toast.debugFailed': '디버깅을 시작하지 못했습니다',
|
||||
'chat.chatInput.toast.weighFailed': '옵션을 비교하지 못했습니다',
|
||||
'chat.chatInput.toast.exploreFailed': '둘러보기를 시작하지 못했습니다',
|
||||
'chat.chatInput.toast.attachmentsTooLarge': '첨부 파일이 너무 커서 보낼 수 없습니다. 이미지 수나 크기를 줄여 보세요.',
|
||||
'chat.chatInput.toast.sendAttachmentsFailed': '첨부 파일 전송 실패. 파일 수나 이미지 크기를 줄여 보세요.',
|
||||
'chat.chatInput.toast.messageSendFailed': '메시지 전송에 실패했습니다. 첨부 파일을 복원했습니다.',
|
||||
|
||||
@@ -288,6 +288,8 @@ export const settingsDict = {
|
||||
'settings.magicPrompts.page.group.sessionWeigh.title': 'Rozważanie opcji',
|
||||
'settings.magicPrompts.page.group.sessionWeigh.description': 'Prompty używane przez polecenie /weigh: widoczna wiadomość użytkownika + ukryte instrukcje. Bada kod, a następnie przedstawia 2-3 różne podejścia z kompromisami i rekomendacją — bez pisania planu ani kodu.',
|
||||
'settings.magicPrompts.page.group.sessionWorkspaceReview.title': 'Przegląd obszaru roboczego',
|
||||
'settings.magicPrompts.page.group.sessionExplore.title': 'Przegląd bazy kodu',
|
||||
'settings.magicPrompts.page.group.sessionExplore.description': 'Prompty używane przez polecenie /explore: widoczna wiadomość użytkownika + ukryte instrukcje. Bada repozytorium i daje uporządkowaną orientację — ogólny obraz, główne moduły, jak się łączą i od czego zacząć — zamiast zrzutu plik po pliku.',
|
||||
'settings.magicPrompts.page.group.sessionFusion.title': 'Fusion',
|
||||
'settings.magicPrompts.page.group.sessionFusion.description': 'Prompty używane do łączenia wyników multi-run w jedną końcową odpowiedź: widoczna wiadomość użytkownika + ukryte instrukcje przed wynikami źródłowymi.',
|
||||
'settings.magicPrompts.page.loading.aria': 'Ładowanie',
|
||||
@@ -324,6 +326,7 @@ export const settingsDict = {
|
||||
'settings.magicPrompts.sidebar.item.planTodo': 'Planowanie Todo',
|
||||
'settings.magicPrompts.sidebar.item.sessionSummary': 'Podsumowanie Sesji',
|
||||
'settings.magicPrompts.sidebar.item.sessionWorkspaceReview': 'Przegląd obszaru roboczego',
|
||||
'settings.magicPrompts.sidebar.item.sessionExplore': 'Przegląd bazy kodu',
|
||||
'settings.magicPrompts.sidebar.item.sessionFeaturePlan': 'Planowanie funkcji',
|
||||
'settings.magicPrompts.sidebar.item.sessionCatchUp': 'Nadrobienie kontekstu',
|
||||
'settings.magicPrompts.sidebar.item.sessionDebug': 'Debugowanie',
|
||||
|
||||
@@ -446,7 +446,6 @@ export const dict: Record<I18nKey, string> = {
|
||||
'chat.emptyState.draftTitle': 'What are we working on?',
|
||||
'chat.emptyState.draftTitleWithProject': 'What are we working on in {project}?',
|
||||
'chat.draftPresets.explore.label': 'Explore the codebase',
|
||||
'chat.draftPresets.explore.prompt': 'Give me a high-level tour of this codebase — the architecture, the main modules, and how they fit together.',
|
||||
'chat.draftPresets.catchup.label': 'Catch me up',
|
||||
'chat.draftPresets.weigh.label': 'Weigh my options',
|
||||
'chat.draftPresets.plan.label': 'Start feature planning',
|
||||
@@ -515,6 +514,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
'chat.commandAutocomplete.command.catchUpDescription': 'Przywróć kontekst: nad czym pracowałeś i od czego kontynuować.',
|
||||
'chat.commandAutocomplete.command.debugDescription': 'Prowadzone badanie pierwotnej przyczyny błędu przed zaproponowaniem poprawki.',
|
||||
'chat.commandAutocomplete.command.weighDescription': 'Rozważ 2-3 podejścia z kompromisami i rekomendacją, zanim się zdecydujesz.',
|
||||
'chat.commandAutocomplete.command.exploreDescription': 'Zorientuj się w bazie kodu: ogólny przegląd architektury i głównych części.',
|
||||
'chat.commandAutocomplete.badge.skill': 'skill',
|
||||
'chat.commandAutocomplete.badge.command': 'polecenie',
|
||||
'chat.commandAutocomplete.badge.system': 'system',
|
||||
@@ -924,6 +924,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
'chat.chatInput.toast.catchUpFailed': 'Nie udało się przywrócić kontekstu',
|
||||
'chat.chatInput.toast.debugFailed': 'Nie udało się rozpocząć debugowania',
|
||||
'chat.chatInput.toast.weighFailed': 'Nie udało się rozważyć opcji',
|
||||
'chat.chatInput.toast.exploreFailed': 'Nie udało się rozpocząć przeglądu',
|
||||
'chat.chatInput.toast.sendAttachmentsFailed': 'Nie udało się wysłać załączników. Spróbuj użyć mniejszej liczby plików lub mniejszych obrazów.',
|
||||
'chat.chatInput.toast.someFilesSkipped': 'Pominięto niektóre pliki:\n{summary}',
|
||||
'chat.chatInput.toast.summaryFailed': 'Nie udało się wygenerować podsumowania',
|
||||
|
||||
@@ -190,6 +190,7 @@ export const settingsDict = {
|
||||
"settings.magicPrompts.sidebar.item.planImplement": "Implementar plano",
|
||||
"settings.magicPrompts.sidebar.item.sessionSummary": "Resumo de sessão",
|
||||
"settings.magicPrompts.sidebar.item.sessionWorkspaceReview": "Revisão do workspace",
|
||||
"settings.magicPrompts.sidebar.item.sessionExplore": "Tour do código",
|
||||
"settings.magicPrompts.sidebar.item.sessionFeaturePlan": "Planejamento de funcionalidade",
|
||||
"settings.magicPrompts.sidebar.item.sessionCatchUp": "Retomada de contexto",
|
||||
"settings.magicPrompts.sidebar.item.sessionDebug": "Depuração",
|
||||
@@ -1656,6 +1657,8 @@ export const settingsDict = {
|
||||
"settings.magicPrompts.page.group.sessionSummary.title": "Resumo de sessão",
|
||||
"settings.magicPrompts.page.group.sessionSummary.description": "Prompts usados pelo comando /summary: mensagem visível do usuário + instruções ocultas. Não destrutivo: não compacta o histórico da sessão.",
|
||||
"settings.magicPrompts.page.group.sessionWorkspaceReview.title": "Revisão do workspace",
|
||||
"settings.magicPrompts.page.group.sessionExplore.title": "Tour do código",
|
||||
"settings.magicPrompts.page.group.sessionExplore.description": "Prompts usados pelo comando /explore: mensagem visível do usuário + instruções ocultas. Investiga o repositório e dá uma orientação estruturada — o panorama geral, os módulos principais, como se conectam e por onde começar — em vez de uma listagem arquivo por arquivo.",
|
||||
"settings.magicPrompts.page.group.sessionWorkspaceReview.description": "Prompts usados pelo comando /workspace-review: mensagem visível do usuário + instruções ocultas. Revise apenas problemas importantes nas alterações atuais do workspace.",
|
||||
"settings.magicPrompts.page.group.sessionFeaturePlan.title": "Planejamento de funcionalidade",
|
||||
"settings.magicPrompts.page.group.sessionFeaturePlan.description": "Prompts usados pelo comando /plan-feature: mensagem visível do usuário + instruções ocultas. Executa um diálogo guiado que investiga o código e faz perguntas de esclarecimento em pequenos lotes antes de produzir um plano de implementação.",
|
||||
|
||||
@@ -1420,7 +1420,6 @@ export const dict: Record<I18nKey, string> = {
|
||||
"chat.emptyState.draftTitle": "What are we working on?",
|
||||
"chat.emptyState.draftTitleWithProject": "What are we working on in {project}?",
|
||||
"chat.draftPresets.explore.label": "Explore the codebase",
|
||||
"chat.draftPresets.explore.prompt": "Give me a high-level tour of this codebase — the architecture, the main modules, and how they fit together.",
|
||||
"chat.draftPresets.catchup.label": "Catch me up",
|
||||
"chat.draftPresets.weigh.label": "Weigh my options",
|
||||
"chat.draftPresets.plan.label": "Start feature planning",
|
||||
@@ -1490,6 +1489,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
"chat.commandAutocomplete.command.catchUpDescription": "Retome o contexto: o que você estava fazendo e por onde continuar.",
|
||||
"chat.commandAutocomplete.command.debugDescription": "Investigação guiada da causa raiz de um bug antes de propor uma correção.",
|
||||
"chat.commandAutocomplete.command.weighDescription": "Compare 2-3 abordagens com seus prós e contras e uma recomendação antes de decidir.",
|
||||
"chat.commandAutocomplete.command.exploreDescription": "Oriente-se neste código: um tour geral pela arquitetura e pelas partes principais.",
|
||||
"chat.commandAutocomplete.badge.skill": "habilidade",
|
||||
"chat.commandAutocomplete.badge.command": "comando",
|
||||
"chat.commandAutocomplete.badge.system": "sistema",
|
||||
@@ -1609,6 +1609,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
"chat.chatInput.toast.catchUpFailed": "Não foi possível retomar o contexto",
|
||||
"chat.chatInput.toast.debugFailed": "Não foi possível iniciar a depuração",
|
||||
"chat.chatInput.toast.weighFailed": "Não foi possível comparar as opções",
|
||||
"chat.chatInput.toast.exploreFailed": "Não foi possível iniciar o tour",
|
||||
"chat.chatInput.toast.attachmentsTooLarge": "Os anexos são grandes demais para enviar. Tente reduzir a quantidade ou o tamanho das imagens.",
|
||||
"chat.chatInput.toast.sendAttachmentsFailed": "Não foi possível enviar os anexos. Tente com menos arquivos ou imagens menores.",
|
||||
"chat.chatInput.toast.messageSendFailed": "A mensagem não pôde ser enviada. Os anexos foram restaurados.",
|
||||
|
||||
@@ -190,6 +190,7 @@ export const settingsDict = {
|
||||
"settings.magicPrompts.sidebar.item.planImplement": "Реалізувати план",
|
||||
"settings.magicPrompts.sidebar.item.sessionSummary": "Підсумок сесії",
|
||||
"settings.magicPrompts.sidebar.item.sessionWorkspaceReview": "Огляд робочого простору",
|
||||
"settings.magicPrompts.sidebar.item.sessionExplore": "Огляд кодової бази",
|
||||
"settings.magicPrompts.sidebar.item.sessionFeaturePlan": "Планування фічі",
|
||||
"settings.magicPrompts.sidebar.item.sessionCatchUp": "Повернення в контекст",
|
||||
"settings.magicPrompts.sidebar.item.sessionDebug": "Дебаг",
|
||||
@@ -1656,6 +1657,8 @@ export const settingsDict = {
|
||||
"settings.magicPrompts.page.group.sessionSummary.title": "Підсумок сесії",
|
||||
"settings.magicPrompts.page.group.sessionSummary.description": "Промпти, які використовуються командою /summary: видиме повідомлення користувача + приховані інструкції. Неруйнівний – не стискає історію сесії.",
|
||||
"settings.magicPrompts.page.group.sessionWorkspaceReview.title": "Огляд робочого простору",
|
||||
"settings.magicPrompts.page.group.sessionExplore.title": "Огляд кодової бази",
|
||||
"settings.magicPrompts.page.group.sessionExplore.description": "Промпти, які використовуються командою /explore: видиме повідомлення користувача + приховані інструкції. Досліджує репозиторій і дає структуровану орієнтацію — загальна картина, основні модулі, як вони пов'язані й звідки почати — а не дамп файл за файлом.",
|
||||
"settings.magicPrompts.page.group.sessionWorkspaceReview.description": "Промпти, які використовуються командою /workspace-review: видиме повідомлення користувача + приховані інструкції. Переглядає поточні зміни робочого простору лише для проблем із сильним сигналом.",
|
||||
"settings.magicPrompts.page.group.sessionFeaturePlan.title": "Планування фічі",
|
||||
"settings.magicPrompts.page.group.sessionFeaturePlan.description": "Промпти, які використовуються командою /plan-feature: видиме повідомлення користувача + приховані інструкції. Запускає кероване діалогове планування — досліджує код і ставить уточнюючі запитання невеликими батчами, перш ніж скласти план імплементації.",
|
||||
|
||||
@@ -1420,7 +1420,6 @@ export const dict: Record<I18nKey, string> = {
|
||||
"chat.emptyState.draftTitle": "Над чим працюємо?",
|
||||
"chat.emptyState.draftTitleWithProject": "Над чим працюємо в {project}?",
|
||||
"chat.draftPresets.explore.label": "Огляд кодової бази",
|
||||
"chat.draftPresets.explore.prompt": "Зроби високорівневий огляд цієї кодової бази — архітектуру, основні модулі та як вони пов'язані між собою.",
|
||||
"chat.draftPresets.catchup.label": "Повернутись у контекст",
|
||||
"chat.draftPresets.weigh.label": "Зважити варіанти",
|
||||
"chat.draftPresets.plan.label": "Розпочати планування фічі",
|
||||
@@ -1490,6 +1489,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
"chat.commandAutocomplete.command.catchUpDescription": "Повернутись у контекст: над чим працювали і звідки продовжити.",
|
||||
"chat.commandAutocomplete.command.debugDescription": "Кероване дослідження першопричини бага перед тим, як пропонувати фікс.",
|
||||
"chat.commandAutocomplete.command.weighDescription": "Зважити 2-3 підходи з trade-offs і рекомендацією перш ніж братися до роботи.",
|
||||
"chat.commandAutocomplete.command.exploreDescription": "Зорієнтуватись у кодовій базі: високорівневий тур архітектурою й основними частинами.",
|
||||
"chat.commandAutocomplete.badge.skill": "навичка",
|
||||
"chat.commandAutocomplete.badge.command": "команда",
|
||||
"chat.commandAutocomplete.badge.system": "система",
|
||||
@@ -1609,6 +1609,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
"chat.chatInput.toast.catchUpFailed": "Не вдалося зібрати контекст",
|
||||
"chat.chatInput.toast.debugFailed": "Не вдалося розпочати дебаг",
|
||||
"chat.chatInput.toast.weighFailed": "Не вдалося зважити варіанти",
|
||||
"chat.chatInput.toast.exploreFailed": "Не вдалося розпочати огляд",
|
||||
"chat.chatInput.toast.attachmentsTooLarge": "Вкладені файли завеликі для надсилання. Спробуйте зменшити кількість або розмір зображень.",
|
||||
"chat.chatInput.toast.sendAttachmentsFailed": "Не вдалося надіслати вкладення. Спробуйте зменшити кількість файлів або зображень.",
|
||||
"chat.chatInput.toast.messageSendFailed": "Не вдалося надіслати повідомлення. Вкладення відновлено.",
|
||||
|
||||
@@ -190,6 +190,7 @@ export const settingsDict = {
|
||||
'settings.magicPrompts.sidebar.item.planImplement': '执行计划',
|
||||
'settings.magicPrompts.sidebar.item.sessionSummary': '会话总结',
|
||||
'settings.magicPrompts.sidebar.item.sessionWorkspaceReview': '工作区审查',
|
||||
'settings.magicPrompts.sidebar.item.sessionExplore': '代码库导览',
|
||||
'settings.magicPrompts.sidebar.item.sessionFeaturePlan': '功能规划',
|
||||
'settings.magicPrompts.sidebar.item.sessionCatchUp': '快速回顾',
|
||||
'settings.magicPrompts.sidebar.item.sessionDebug': '调试',
|
||||
@@ -1656,6 +1657,8 @@ export const settingsDict = {
|
||||
'settings.magicPrompts.page.group.sessionSummary.title': '会话总结',
|
||||
'settings.magicPrompts.page.group.sessionSummary.description': '由 /summary 斜杠命令使用的提示词:可见用户消息 + 隐藏说明。非破坏性,不会压缩会话历史。',
|
||||
'settings.magicPrompts.page.group.sessionWorkspaceReview.title': '工作区审查',
|
||||
'settings.magicPrompts.page.group.sessionExplore.title': '代码库导览',
|
||||
'settings.magicPrompts.page.group.sessionExplore.description': '由 /explore 斜杠命令使用的提示词:可见用户消息 + 隐藏说明。调研仓库并给出结构化的导览——整体概貌、主要模块、它们如何连接以及从哪里入手——而不是逐文件罗列。',
|
||||
'settings.magicPrompts.page.group.sessionWorkspaceReview.description': '由 /workspace-review 斜杠命令使用的提示词:可见用户消息 + 隐藏说明。仅审查当前工作区的高信号问题。',
|
||||
'settings.magicPrompts.page.group.sessionFeaturePlan.title': '功能规划',
|
||||
'settings.magicPrompts.page.group.sessionFeaturePlan.description': '由 /plan-feature 斜杠命令使用的提示词:可见用户消息 + 隐藏说明。运行引导式对话,先调研代码并分小批提出澄清问题,然后生成实现计划。',
|
||||
|
||||
@@ -1420,7 +1420,6 @@ export const dict: Record<I18nKey, string> = {
|
||||
'chat.emptyState.draftTitle': 'What are we working on?',
|
||||
'chat.emptyState.draftTitleWithProject': 'What are we working on in {project}?',
|
||||
'chat.draftPresets.explore.label': 'Explore the codebase',
|
||||
'chat.draftPresets.explore.prompt': 'Give me a high-level tour of this codebase — the architecture, the main modules, and how they fit together.',
|
||||
'chat.draftPresets.catchup.label': 'Catch me up',
|
||||
'chat.draftPresets.weigh.label': 'Weigh my options',
|
||||
'chat.draftPresets.plan.label': 'Start feature planning',
|
||||
@@ -1490,6 +1489,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
'chat.commandAutocomplete.command.catchUpDescription': '重新进入上下文:你之前在做什么、从哪里继续。',
|
||||
'chat.commandAutocomplete.command.debugDescription': '在提出修复方案前,引导式地排查 bug 的根本原因。',
|
||||
'chat.commandAutocomplete.command.weighDescription': '在动手前,权衡 2-3 种方案的利弊并给出推荐。',
|
||||
'chat.commandAutocomplete.command.exploreDescription': '快速熟悉这个代码库:对架构和主要部分的概览。',
|
||||
'chat.commandAutocomplete.badge.skill': '技能',
|
||||
'chat.commandAutocomplete.badge.command': '命令',
|
||||
'chat.commandAutocomplete.badge.system': '系统',
|
||||
@@ -1609,6 +1609,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
'chat.chatInput.toast.catchUpFailed': '无法获取上下文',
|
||||
'chat.chatInput.toast.debugFailed': '无法开始调试',
|
||||
'chat.chatInput.toast.weighFailed': '无法权衡方案',
|
||||
'chat.chatInput.toast.exploreFailed': '无法开始导览',
|
||||
'chat.chatInput.toast.attachmentsTooLarge': '附件过大,无法发送。请减少图片数量或大小。',
|
||||
'chat.chatInput.toast.sendAttachmentsFailed': '发送附件失败。请尝试更少文件或更小图片。',
|
||||
'chat.chatInput.toast.messageSendFailed': '消息发送失败,附件已恢复。',
|
||||
|
||||
@@ -187,6 +187,7 @@
|
||||
'settings.magicPrompts.sidebar.item.planImplement': '執行計畫',
|
||||
'settings.magicPrompts.sidebar.item.sessionSummary': '工作階段總結',
|
||||
'settings.magicPrompts.sidebar.item.sessionWorkspaceReview': '工作區審查',
|
||||
'settings.magicPrompts.sidebar.item.sessionExplore': '程式碼庫導覽',
|
||||
'settings.magicPrompts.sidebar.item.sessionFeaturePlan': '功能規劃',
|
||||
'settings.magicPrompts.sidebar.item.sessionCatchUp': '快速回顧',
|
||||
'settings.magicPrompts.sidebar.item.sessionDebug': '除錯',
|
||||
@@ -1577,6 +1578,8 @@
|
||||
'settings.magicPrompts.page.group.sessionSummary.title': '工作階段總結',
|
||||
'settings.magicPrompts.page.group.sessionSummary.description': '由 /summary 斜線命令使用的提示詞:可見使用者訊息 + 隱藏說明。非破壞性,不會壓縮工作階段歷史。',
|
||||
'settings.magicPrompts.page.group.sessionWorkspaceReview.title': '工作區審查',
|
||||
'settings.magicPrompts.page.group.sessionExplore.title': '程式碼庫導覽',
|
||||
'settings.magicPrompts.page.group.sessionExplore.description': '由 /explore 斜線命令使用的提示詞:可見使用者訊息 + 隱藏說明。調研儲存庫並給出結構化的導覽——整體概貌、主要模組、它們如何連接以及從哪裡入手——而不是逐檔案羅列。',
|
||||
'settings.magicPrompts.page.group.sessionWorkspaceReview.description': '由 /workspace-review 斜線命令使用的提示詞:可見使用者訊息 + 隱藏說明。僅審查目前工作區中的高訊號問題。',
|
||||
'settings.magicPrompts.page.group.sessionFeaturePlan.title': '功能規劃',
|
||||
'settings.magicPrompts.page.group.sessionFeaturePlan.description': '由 /plan-feature 斜線命令使用的提示詞:可見使用者訊息 + 隱藏說明。執行引導式對話,先調研程式碼並分小批提出釐清問題,然後產生實作計畫。',
|
||||
|
||||
@@ -1417,7 +1417,6 @@ export const dict: Record<I18nKey, string> = {
|
||||
'chat.emptyState.draftTitle': 'What are we working on?',
|
||||
'chat.emptyState.draftTitleWithProject': 'What are we working on in {project}?',
|
||||
'chat.draftPresets.explore.label': 'Explore the codebase',
|
||||
'chat.draftPresets.explore.prompt': 'Give me a high-level tour of this codebase — the architecture, the main modules, and how they fit together.',
|
||||
'chat.draftPresets.catchup.label': 'Catch me up',
|
||||
'chat.draftPresets.weigh.label': 'Weigh my options',
|
||||
'chat.draftPresets.plan.label': 'Start feature planning',
|
||||
@@ -1487,6 +1486,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
'chat.commandAutocomplete.command.catchUpDescription': '重新進入上下文:你之前在做什麼、從哪裡繼續。',
|
||||
'chat.commandAutocomplete.command.debugDescription': '在提出修復方案前,引導式地排查 bug 的根本原因。',
|
||||
'chat.commandAutocomplete.command.weighDescription': '在動手前,權衡 2-3 種方案的利弊並給出推薦。',
|
||||
'chat.commandAutocomplete.command.exploreDescription': '快速熟悉這個程式碼庫:對架構和主要部分的概覽。',
|
||||
'chat.commandAutocomplete.badge.skill': 'Skills',
|
||||
'chat.commandAutocomplete.badge.command': '命令',
|
||||
'chat.commandAutocomplete.badge.system': '系統',
|
||||
@@ -1606,6 +1606,7 @@ export const dict: Record<I18nKey, string> = {
|
||||
'chat.chatInput.toast.catchUpFailed': '無法取得上下文',
|
||||
'chat.chatInput.toast.debugFailed': '無法開始除錯',
|
||||
'chat.chatInput.toast.weighFailed': '無法權衡方案',
|
||||
'chat.chatInput.toast.exploreFailed': '無法開始導覽',
|
||||
'chat.chatInput.toast.attachmentsTooLarge': '附件過大,無法傳送。請減少圖片數量或大小。',
|
||||
'chat.chatInput.toast.sendAttachmentsFailed': '傳送附件失敗。請嘗試更少檔案或更小圖片。',
|
||||
'chat.chatInput.toast.messageSendFailed': '訊息傳送失敗,附件已恢復。',
|
||||
|
||||
@@ -35,6 +35,8 @@ export type MagicPromptId =
|
||||
| 'session.debug.instructions'
|
||||
| 'session.weigh.visible'
|
||||
| 'session.weigh.instructions'
|
||||
| 'session.explore.visible'
|
||||
| 'session.explore.instructions'
|
||||
| 'session.fusion.visible'
|
||||
| 'session.fusion.instructions';
|
||||
|
||||
@@ -697,6 +699,33 @@ Then give a clear recommendation. Anchor it on what best serves the user's actua
|
||||
|
||||
Keep it concrete and scannable. Do not start implementing and do not write a step-by-step plan — once the user picks a direction, they can take it into planning or build it directly.
|
||||
|
||||
Respond in the same language the user uses.`,
|
||||
},
|
||||
{
|
||||
id: 'session.explore.visible',
|
||||
title: 'Codebase Tour Visible Prompt',
|
||||
group: 'Session',
|
||||
description: 'Visible user message sent by the /explore command.',
|
||||
template: 'Give me a high-level tour of this codebase.',
|
||||
},
|
||||
{
|
||||
id: 'session.explore.instructions',
|
||||
title: 'Codebase Tour Instructions',
|
||||
group: 'Session',
|
||||
description: 'Hidden instructions attached to the /explore command. Investigates the repository and gives a structured orientation rather than a file-by-file dump.',
|
||||
template: `The user wants to get oriented in this codebase — a high-level tour, as if you were onboarding a new contributor. Investigate first, then explain; do not guess from file or symbol names alone.
|
||||
|
||||
Explore the actual repository: entry points, the top-level structure, how it is built and run, and the main modules and how they connect. Read enough real code to be accurate.
|
||||
|
||||
Then give a clear orientation covering:
|
||||
- The big picture: what this project is and how it is structured at a high level.
|
||||
- Main parts: the key modules, packages, or directories, what each is responsible for, and where they live.
|
||||
- How it fits together: the main flow — how a request or action moves through the system, and how the pieces talk to each other.
|
||||
- Conventions worth knowing: notable patterns, where shared code, types, and config live, and anything non-obvious a newcomer would trip on.
|
||||
- Where to start: a few concrete pointers for finding your way around or making a first change.
|
||||
|
||||
Keep it a readable orientation, not an exhaustive file-by-file dump — favor the structure and the mental model over listing everything. Lead with the big picture, then drill down. If the user named a specific area, focus the tour there.
|
||||
|
||||
Respond in the same language the user uses.`,
|
||||
},
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user