cc-viewer 1.2.1 → 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/cli.js +7 -0
- package/concepts/ar/BodyDiffJSON.md +32 -0
- package/concepts/ar/CacheRebuild.md +40 -0
- package/concepts/ar/MainAgent.md +30 -0
- package/concepts/ar/Tool-AskUserQuestion.md +54 -0
- package/concepts/ar/Tool-Bash.md +47 -0
- package/concepts/ar/Tool-Edit.md +38 -0
- package/concepts/ar/Tool-EnterPlanMode.md +43 -0
- package/concepts/ar/Tool-ExitPlanMode.md +39 -0
- package/concepts/ar/Tool-Glob.md +34 -0
- package/concepts/ar/Tool-Grep.md +47 -0
- package/concepts/ar/Tool-NotebookEdit.md +33 -0
- package/concepts/ar/Tool-Read.md +41 -0
- package/concepts/ar/Tool-Skill.md +35 -0
- package/concepts/ar/Tool-Task.md +53 -0
- package/concepts/ar/Tool-TaskCreate.md +38 -0
- package/concepts/ar/Tool-TaskGet.md +35 -0
- package/concepts/ar/Tool-TaskList.md +36 -0
- package/concepts/ar/Tool-TaskOutput.md +34 -0
- package/concepts/ar/Tool-TaskStop.md +27 -0
- package/concepts/ar/Tool-TaskUpdate.md +49 -0
- package/concepts/ar/Tool-WebFetch.md +36 -0
- package/concepts/ar/Tool-WebSearch.md +32 -0
- package/concepts/ar/Tool-Write.md +32 -0
- package/concepts/ar/Tool-executeCode.md +33 -0
- package/concepts/ar/Tool-getDiagnostics.md +32 -0
- package/concepts/ar/Tools.md +73 -0
- package/concepts/ar/TranslateContextPollution.md +46 -0
- package/concepts/da/BodyDiffJSON.md +32 -0
- package/concepts/da/CacheRebuild.md +40 -0
- package/concepts/da/MainAgent.md +30 -0
- package/concepts/da/Tool-AskUserQuestion.md +54 -0
- package/concepts/da/Tool-Bash.md +47 -0
- package/concepts/da/Tool-Edit.md +38 -0
- package/concepts/da/Tool-EnterPlanMode.md +43 -0
- package/concepts/da/Tool-ExitPlanMode.md +39 -0
- package/concepts/da/Tool-Glob.md +34 -0
- package/concepts/da/Tool-Grep.md +47 -0
- package/concepts/da/Tool-NotebookEdit.md +33 -0
- package/concepts/da/Tool-Read.md +41 -0
- package/concepts/da/Tool-Skill.md +35 -0
- package/concepts/da/Tool-Task.md +53 -0
- package/concepts/da/Tool-TaskCreate.md +38 -0
- package/concepts/da/Tool-TaskGet.md +35 -0
- package/concepts/da/Tool-TaskList.md +36 -0
- package/concepts/da/Tool-TaskOutput.md +34 -0
- package/concepts/da/Tool-TaskStop.md +27 -0
- package/concepts/da/Tool-TaskUpdate.md +49 -0
- package/concepts/da/Tool-WebFetch.md +36 -0
- package/concepts/da/Tool-WebSearch.md +32 -0
- package/concepts/da/Tool-Write.md +32 -0
- package/concepts/da/Tool-executeCode.md +33 -0
- package/concepts/da/Tool-getDiagnostics.md +32 -0
- package/concepts/da/Tools.md +73 -0
- package/concepts/da/TranslateContextPollution.md +46 -0
- package/concepts/de/BodyDiffJSON.md +32 -0
- package/concepts/de/CacheRebuild.md +40 -0
- package/concepts/de/MainAgent.md +30 -0
- package/concepts/de/Tool-AskUserQuestion.md +54 -0
- package/concepts/de/Tool-Bash.md +47 -0
- package/concepts/de/Tool-Edit.md +38 -0
- package/concepts/de/Tool-EnterPlanMode.md +43 -0
- package/concepts/de/Tool-ExitPlanMode.md +39 -0
- package/concepts/de/Tool-Glob.md +34 -0
- package/concepts/de/Tool-Grep.md +47 -0
- package/concepts/de/Tool-NotebookEdit.md +33 -0
- package/concepts/de/Tool-Read.md +41 -0
- package/concepts/de/Tool-Skill.md +35 -0
- package/concepts/de/Tool-Task.md +53 -0
- package/concepts/de/Tool-TaskCreate.md +38 -0
- package/concepts/de/Tool-TaskGet.md +35 -0
- package/concepts/de/Tool-TaskList.md +36 -0
- package/concepts/de/Tool-TaskOutput.md +34 -0
- package/concepts/de/Tool-TaskStop.md +27 -0
- package/concepts/de/Tool-TaskUpdate.md +49 -0
- package/concepts/de/Tool-WebFetch.md +36 -0
- package/concepts/de/Tool-WebSearch.md +32 -0
- package/concepts/de/Tool-Write.md +32 -0
- package/concepts/de/Tool-executeCode.md +33 -0
- package/concepts/de/Tool-getDiagnostics.md +32 -0
- package/concepts/de/Tools.md +73 -0
- package/concepts/de/TranslateContextPollution.md +46 -0
- package/concepts/en/BodyDiffJSON.md +32 -0
- package/concepts/en/CacheRebuild.md +40 -0
- package/concepts/en/MainAgent.md +30 -0
- package/concepts/en/Tool-AskUserQuestion.md +54 -0
- package/concepts/en/Tool-Bash.md +47 -0
- package/concepts/en/Tool-Edit.md +38 -0
- package/concepts/en/Tool-EnterPlanMode.md +43 -0
- package/concepts/en/Tool-ExitPlanMode.md +39 -0
- package/concepts/en/Tool-Glob.md +34 -0
- package/concepts/en/Tool-Grep.md +47 -0
- package/concepts/en/Tool-NotebookEdit.md +33 -0
- package/concepts/en/Tool-Read.md +41 -0
- package/concepts/en/Tool-Skill.md +35 -0
- package/concepts/en/Tool-Task.md +53 -0
- package/concepts/en/Tool-TaskCreate.md +38 -0
- package/concepts/en/Tool-TaskGet.md +35 -0
- package/concepts/en/Tool-TaskList.md +36 -0
- package/concepts/en/Tool-TaskOutput.md +34 -0
- package/concepts/en/Tool-TaskStop.md +27 -0
- package/concepts/en/Tool-TaskUpdate.md +49 -0
- package/concepts/en/Tool-WebFetch.md +36 -0
- package/concepts/en/Tool-WebSearch.md +32 -0
- package/concepts/en/Tool-Write.md +32 -0
- package/concepts/en/Tool-executeCode.md +33 -0
- package/concepts/en/Tool-getDiagnostics.md +32 -0
- package/concepts/en/Tools.md +73 -0
- package/concepts/en/TranslateContextPollution.md +46 -0
- package/concepts/es/BodyDiffJSON.md +32 -0
- package/concepts/es/CacheRebuild.md +40 -0
- package/concepts/es/MainAgent.md +30 -0
- package/concepts/es/Tool-AskUserQuestion.md +54 -0
- package/concepts/es/Tool-Bash.md +47 -0
- package/concepts/es/Tool-Edit.md +38 -0
- package/concepts/es/Tool-EnterPlanMode.md +43 -0
- package/concepts/es/Tool-ExitPlanMode.md +39 -0
- package/concepts/es/Tool-Glob.md +34 -0
- package/concepts/es/Tool-Grep.md +47 -0
- package/concepts/es/Tool-NotebookEdit.md +33 -0
- package/concepts/es/Tool-Read.md +41 -0
- package/concepts/es/Tool-Skill.md +35 -0
- package/concepts/es/Tool-Task.md +53 -0
- package/concepts/es/Tool-TaskCreate.md +38 -0
- package/concepts/es/Tool-TaskGet.md +35 -0
- package/concepts/es/Tool-TaskList.md +36 -0
- package/concepts/es/Tool-TaskOutput.md +34 -0
- package/concepts/es/Tool-TaskStop.md +27 -0
- package/concepts/es/Tool-TaskUpdate.md +49 -0
- package/concepts/es/Tool-WebFetch.md +36 -0
- package/concepts/es/Tool-WebSearch.md +32 -0
- package/concepts/es/Tool-Write.md +32 -0
- package/concepts/es/Tool-executeCode.md +33 -0
- package/concepts/es/Tool-getDiagnostics.md +32 -0
- package/concepts/es/Tools.md +73 -0
- package/concepts/es/TranslateContextPollution.md +46 -0
- package/concepts/fr/BodyDiffJSON.md +32 -0
- package/concepts/fr/CacheRebuild.md +40 -0
- package/concepts/fr/MainAgent.md +30 -0
- package/concepts/fr/Tool-AskUserQuestion.md +54 -0
- package/concepts/fr/Tool-Bash.md +47 -0
- package/concepts/fr/Tool-Edit.md +38 -0
- package/concepts/fr/Tool-EnterPlanMode.md +43 -0
- package/concepts/fr/Tool-ExitPlanMode.md +39 -0
- package/concepts/fr/Tool-Glob.md +34 -0
- package/concepts/fr/Tool-Grep.md +47 -0
- package/concepts/fr/Tool-NotebookEdit.md +33 -0
- package/concepts/fr/Tool-Read.md +41 -0
- package/concepts/fr/Tool-Skill.md +35 -0
- package/concepts/fr/Tool-Task.md +53 -0
- package/concepts/fr/Tool-TaskCreate.md +38 -0
- package/concepts/fr/Tool-TaskGet.md +35 -0
- package/concepts/fr/Tool-TaskList.md +36 -0
- package/concepts/fr/Tool-TaskOutput.md +34 -0
- package/concepts/fr/Tool-TaskStop.md +27 -0
- package/concepts/fr/Tool-TaskUpdate.md +49 -0
- package/concepts/fr/Tool-WebFetch.md +36 -0
- package/concepts/fr/Tool-WebSearch.md +32 -0
- package/concepts/fr/Tool-Write.md +32 -0
- package/concepts/fr/Tool-executeCode.md +33 -0
- package/concepts/fr/Tool-getDiagnostics.md +32 -0
- package/concepts/fr/Tools.md +73 -0
- package/concepts/fr/TranslateContextPollution.md +46 -0
- package/concepts/it/BodyDiffJSON.md +32 -0
- package/concepts/it/CacheRebuild.md +40 -0
- package/concepts/it/MainAgent.md +30 -0
- package/concepts/it/Tool-AskUserQuestion.md +54 -0
- package/concepts/it/Tool-Bash.md +47 -0
- package/concepts/it/Tool-Edit.md +38 -0
- package/concepts/it/Tool-EnterPlanMode.md +43 -0
- package/concepts/it/Tool-ExitPlanMode.md +39 -0
- package/concepts/it/Tool-Glob.md +34 -0
- package/concepts/it/Tool-Grep.md +47 -0
- package/concepts/it/Tool-NotebookEdit.md +33 -0
- package/concepts/it/Tool-Read.md +41 -0
- package/concepts/it/Tool-Skill.md +35 -0
- package/concepts/it/Tool-Task.md +53 -0
- package/concepts/it/Tool-TaskCreate.md +38 -0
- package/concepts/it/Tool-TaskGet.md +35 -0
- package/concepts/it/Tool-TaskList.md +36 -0
- package/concepts/it/Tool-TaskOutput.md +34 -0
- package/concepts/it/Tool-TaskStop.md +27 -0
- package/concepts/it/Tool-TaskUpdate.md +49 -0
- package/concepts/it/Tool-WebFetch.md +36 -0
- package/concepts/it/Tool-WebSearch.md +32 -0
- package/concepts/it/Tool-Write.md +32 -0
- package/concepts/it/Tool-executeCode.md +33 -0
- package/concepts/it/Tool-getDiagnostics.md +32 -0
- package/concepts/it/Tools.md +73 -0
- package/concepts/it/TranslateContextPollution.md +46 -0
- package/concepts/ja/BodyDiffJSON.md +32 -0
- package/concepts/ja/CacheRebuild.md +40 -0
- package/concepts/ja/MainAgent.md +30 -0
- package/concepts/ja/Tool-AskUserQuestion.md +54 -0
- package/concepts/ja/Tool-Bash.md +47 -0
- package/concepts/ja/Tool-Edit.md +38 -0
- package/concepts/ja/Tool-EnterPlanMode.md +43 -0
- package/concepts/ja/Tool-ExitPlanMode.md +39 -0
- package/concepts/ja/Tool-Glob.md +34 -0
- package/concepts/ja/Tool-Grep.md +47 -0
- package/concepts/ja/Tool-NotebookEdit.md +33 -0
- package/concepts/ja/Tool-Read.md +41 -0
- package/concepts/ja/Tool-Skill.md +35 -0
- package/concepts/ja/Tool-Task.md +53 -0
- package/concepts/ja/Tool-TaskCreate.md +38 -0
- package/concepts/ja/Tool-TaskGet.md +35 -0
- package/concepts/ja/Tool-TaskList.md +36 -0
- package/concepts/ja/Tool-TaskOutput.md +34 -0
- package/concepts/ja/Tool-TaskStop.md +27 -0
- package/concepts/ja/Tool-TaskUpdate.md +49 -0
- package/concepts/ja/Tool-WebFetch.md +36 -0
- package/concepts/ja/Tool-WebSearch.md +32 -0
- package/concepts/ja/Tool-Write.md +32 -0
- package/concepts/ja/Tool-executeCode.md +33 -0
- package/concepts/ja/Tool-getDiagnostics.md +32 -0
- package/concepts/ja/Tools.md +73 -0
- package/concepts/ja/TranslateContextPollution.md +46 -0
- package/concepts/ko/BodyDiffJSON.md +32 -0
- package/concepts/ko/CacheRebuild.md +40 -0
- package/concepts/ko/MainAgent.md +30 -0
- package/concepts/ko/Tool-AskUserQuestion.md +54 -0
- package/concepts/ko/Tool-Bash.md +47 -0
- package/concepts/ko/Tool-Edit.md +38 -0
- package/concepts/ko/Tool-EnterPlanMode.md +43 -0
- package/concepts/ko/Tool-ExitPlanMode.md +39 -0
- package/concepts/ko/Tool-Glob.md +34 -0
- package/concepts/ko/Tool-Grep.md +47 -0
- package/concepts/ko/Tool-NotebookEdit.md +33 -0
- package/concepts/ko/Tool-Read.md +41 -0
- package/concepts/ko/Tool-Skill.md +35 -0
- package/concepts/ko/Tool-Task.md +53 -0
- package/concepts/ko/Tool-TaskCreate.md +38 -0
- package/concepts/ko/Tool-TaskGet.md +35 -0
- package/concepts/ko/Tool-TaskList.md +36 -0
- package/concepts/ko/Tool-TaskOutput.md +34 -0
- package/concepts/ko/Tool-TaskStop.md +27 -0
- package/concepts/ko/Tool-TaskUpdate.md +49 -0
- package/concepts/ko/Tool-WebFetch.md +36 -0
- package/concepts/ko/Tool-WebSearch.md +32 -0
- package/concepts/ko/Tool-Write.md +32 -0
- package/concepts/ko/Tool-executeCode.md +33 -0
- package/concepts/ko/Tool-getDiagnostics.md +32 -0
- package/concepts/ko/Tools.md +73 -0
- package/concepts/ko/TranslateContextPollution.md +46 -0
- package/concepts/no/BodyDiffJSON.md +32 -0
- package/concepts/no/CacheRebuild.md +40 -0
- package/concepts/no/MainAgent.md +30 -0
- package/concepts/no/Tool-AskUserQuestion.md +54 -0
- package/concepts/no/Tool-Bash.md +47 -0
- package/concepts/no/Tool-Edit.md +38 -0
- package/concepts/no/Tool-EnterPlanMode.md +43 -0
- package/concepts/no/Tool-ExitPlanMode.md +39 -0
- package/concepts/no/Tool-Glob.md +34 -0
- package/concepts/no/Tool-Grep.md +47 -0
- package/concepts/no/Tool-NotebookEdit.md +33 -0
- package/concepts/no/Tool-Read.md +41 -0
- package/concepts/no/Tool-Skill.md +35 -0
- package/concepts/no/Tool-Task.md +53 -0
- package/concepts/no/Tool-TaskCreate.md +38 -0
- package/concepts/no/Tool-TaskGet.md +35 -0
- package/concepts/no/Tool-TaskList.md +36 -0
- package/concepts/no/Tool-TaskOutput.md +34 -0
- package/concepts/no/Tool-TaskStop.md +27 -0
- package/concepts/no/Tool-TaskUpdate.md +49 -0
- package/concepts/no/Tool-WebFetch.md +36 -0
- package/concepts/no/Tool-WebSearch.md +32 -0
- package/concepts/no/Tool-Write.md +32 -0
- package/concepts/no/Tool-executeCode.md +33 -0
- package/concepts/no/Tool-getDiagnostics.md +32 -0
- package/concepts/no/Tools.md +73 -0
- package/concepts/no/TranslateContextPollution.md +46 -0
- package/concepts/pl/BodyDiffJSON.md +32 -0
- package/concepts/pl/CacheRebuild.md +40 -0
- package/concepts/pl/MainAgent.md +30 -0
- package/concepts/pl/Tool-AskUserQuestion.md +54 -0
- package/concepts/pl/Tool-Bash.md +47 -0
- package/concepts/pl/Tool-Edit.md +38 -0
- package/concepts/pl/Tool-EnterPlanMode.md +43 -0
- package/concepts/pl/Tool-ExitPlanMode.md +39 -0
- package/concepts/pl/Tool-Glob.md +34 -0
- package/concepts/pl/Tool-Grep.md +47 -0
- package/concepts/pl/Tool-NotebookEdit.md +33 -0
- package/concepts/pl/Tool-Read.md +41 -0
- package/concepts/pl/Tool-Skill.md +35 -0
- package/concepts/pl/Tool-Task.md +53 -0
- package/concepts/pl/Tool-TaskCreate.md +38 -0
- package/concepts/pl/Tool-TaskGet.md +35 -0
- package/concepts/pl/Tool-TaskList.md +36 -0
- package/concepts/pl/Tool-TaskOutput.md +34 -0
- package/concepts/pl/Tool-TaskStop.md +27 -0
- package/concepts/pl/Tool-TaskUpdate.md +49 -0
- package/concepts/pl/Tool-WebFetch.md +36 -0
- package/concepts/pl/Tool-WebSearch.md +32 -0
- package/concepts/pl/Tool-Write.md +32 -0
- package/concepts/pl/Tool-executeCode.md +33 -0
- package/concepts/pl/Tool-getDiagnostics.md +32 -0
- package/concepts/pl/Tools.md +73 -0
- package/concepts/pl/TranslateContextPollution.md +46 -0
- package/concepts/pt-BR/BodyDiffJSON.md +32 -0
- package/concepts/pt-BR/CacheRebuild.md +40 -0
- package/concepts/pt-BR/MainAgent.md +30 -0
- package/concepts/pt-BR/Tool-AskUserQuestion.md +54 -0
- package/concepts/pt-BR/Tool-Bash.md +47 -0
- package/concepts/pt-BR/Tool-Edit.md +38 -0
- package/concepts/pt-BR/Tool-EnterPlanMode.md +43 -0
- package/concepts/pt-BR/Tool-ExitPlanMode.md +39 -0
- package/concepts/pt-BR/Tool-Glob.md +34 -0
- package/concepts/pt-BR/Tool-Grep.md +47 -0
- package/concepts/pt-BR/Tool-NotebookEdit.md +33 -0
- package/concepts/pt-BR/Tool-Read.md +41 -0
- package/concepts/pt-BR/Tool-Skill.md +35 -0
- package/concepts/pt-BR/Tool-Task.md +53 -0
- package/concepts/pt-BR/Tool-TaskCreate.md +38 -0
- package/concepts/pt-BR/Tool-TaskGet.md +35 -0
- package/concepts/pt-BR/Tool-TaskList.md +36 -0
- package/concepts/pt-BR/Tool-TaskOutput.md +34 -0
- package/concepts/pt-BR/Tool-TaskStop.md +27 -0
- package/concepts/pt-BR/Tool-TaskUpdate.md +49 -0
- package/concepts/pt-BR/Tool-WebFetch.md +36 -0
- package/concepts/pt-BR/Tool-WebSearch.md +32 -0
- package/concepts/pt-BR/Tool-Write.md +32 -0
- package/concepts/pt-BR/Tool-executeCode.md +33 -0
- package/concepts/pt-BR/Tool-getDiagnostics.md +32 -0
- package/concepts/pt-BR/Tools.md +73 -0
- package/concepts/pt-BR/TranslateContextPollution.md +46 -0
- package/concepts/ru/BodyDiffJSON.md +32 -0
- package/concepts/ru/CacheRebuild.md +40 -0
- package/concepts/ru/MainAgent.md +30 -0
- package/concepts/ru/Tool-AskUserQuestion.md +54 -0
- package/concepts/ru/Tool-Bash.md +47 -0
- package/concepts/ru/Tool-Edit.md +38 -0
- package/concepts/ru/Tool-EnterPlanMode.md +43 -0
- package/concepts/ru/Tool-ExitPlanMode.md +39 -0
- package/concepts/ru/Tool-Glob.md +34 -0
- package/concepts/ru/Tool-Grep.md +47 -0
- package/concepts/ru/Tool-NotebookEdit.md +33 -0
- package/concepts/ru/Tool-Read.md +41 -0
- package/concepts/ru/Tool-Skill.md +35 -0
- package/concepts/ru/Tool-Task.md +53 -0
- package/concepts/ru/Tool-TaskCreate.md +38 -0
- package/concepts/ru/Tool-TaskGet.md +35 -0
- package/concepts/ru/Tool-TaskList.md +36 -0
- package/concepts/ru/Tool-TaskOutput.md +34 -0
- package/concepts/ru/Tool-TaskStop.md +27 -0
- package/concepts/ru/Tool-TaskUpdate.md +49 -0
- package/concepts/ru/Tool-WebFetch.md +36 -0
- package/concepts/ru/Tool-WebSearch.md +32 -0
- package/concepts/ru/Tool-Write.md +32 -0
- package/concepts/ru/Tool-executeCode.md +33 -0
- package/concepts/ru/Tool-getDiagnostics.md +32 -0
- package/concepts/ru/Tools.md +73 -0
- package/concepts/ru/TranslateContextPollution.md +46 -0
- package/concepts/th/BodyDiffJSON.md +32 -0
- package/concepts/th/CacheRebuild.md +40 -0
- package/concepts/th/MainAgent.md +30 -0
- package/concepts/th/Tool-AskUserQuestion.md +54 -0
- package/concepts/th/Tool-Bash.md +47 -0
- package/concepts/th/Tool-Edit.md +38 -0
- package/concepts/th/Tool-EnterPlanMode.md +43 -0
- package/concepts/th/Tool-ExitPlanMode.md +39 -0
- package/concepts/th/Tool-Glob.md +34 -0
- package/concepts/th/Tool-Grep.md +47 -0
- package/concepts/th/Tool-NotebookEdit.md +33 -0
- package/concepts/th/Tool-Read.md +41 -0
- package/concepts/th/Tool-Skill.md +35 -0
- package/concepts/th/Tool-Task.md +53 -0
- package/concepts/th/Tool-TaskCreate.md +38 -0
- package/concepts/th/Tool-TaskGet.md +35 -0
- package/concepts/th/Tool-TaskList.md +36 -0
- package/concepts/th/Tool-TaskOutput.md +34 -0
- package/concepts/th/Tool-TaskStop.md +27 -0
- package/concepts/th/Tool-TaskUpdate.md +49 -0
- package/concepts/th/Tool-WebFetch.md +36 -0
- package/concepts/th/Tool-WebSearch.md +32 -0
- package/concepts/th/Tool-Write.md +32 -0
- package/concepts/th/Tool-executeCode.md +33 -0
- package/concepts/th/Tool-getDiagnostics.md +32 -0
- package/concepts/th/Tools.md +73 -0
- package/concepts/th/TranslateContextPollution.md +46 -0
- package/concepts/tr/BodyDiffJSON.md +32 -0
- package/concepts/tr/CacheRebuild.md +40 -0
- package/concepts/tr/MainAgent.md +30 -0
- package/concepts/tr/Tool-AskUserQuestion.md +54 -0
- package/concepts/tr/Tool-Bash.md +47 -0
- package/concepts/tr/Tool-Edit.md +38 -0
- package/concepts/tr/Tool-EnterPlanMode.md +43 -0
- package/concepts/tr/Tool-ExitPlanMode.md +39 -0
- package/concepts/tr/Tool-Glob.md +34 -0
- package/concepts/tr/Tool-Grep.md +47 -0
- package/concepts/tr/Tool-NotebookEdit.md +33 -0
- package/concepts/tr/Tool-Read.md +41 -0
- package/concepts/tr/Tool-Skill.md +35 -0
- package/concepts/tr/Tool-Task.md +53 -0
- package/concepts/tr/Tool-TaskCreate.md +38 -0
- package/concepts/tr/Tool-TaskGet.md +35 -0
- package/concepts/tr/Tool-TaskList.md +36 -0
- package/concepts/tr/Tool-TaskOutput.md +34 -0
- package/concepts/tr/Tool-TaskStop.md +27 -0
- package/concepts/tr/Tool-TaskUpdate.md +49 -0
- package/concepts/tr/Tool-WebFetch.md +36 -0
- package/concepts/tr/Tool-WebSearch.md +32 -0
- package/concepts/tr/Tool-Write.md +32 -0
- package/concepts/tr/Tool-executeCode.md +33 -0
- package/concepts/tr/Tool-getDiagnostics.md +32 -0
- package/concepts/tr/Tools.md +73 -0
- package/concepts/tr/TranslateContextPollution.md +46 -0
- package/concepts/uk/BodyDiffJSON.md +32 -0
- package/concepts/uk/CacheRebuild.md +40 -0
- package/concepts/uk/MainAgent.md +30 -0
- package/concepts/uk/Tool-AskUserQuestion.md +54 -0
- package/concepts/uk/Tool-Bash.md +47 -0
- package/concepts/uk/Tool-Edit.md +38 -0
- package/concepts/uk/Tool-EnterPlanMode.md +43 -0
- package/concepts/uk/Tool-ExitPlanMode.md +39 -0
- package/concepts/uk/Tool-Glob.md +34 -0
- package/concepts/uk/Tool-Grep.md +47 -0
- package/concepts/uk/Tool-NotebookEdit.md +33 -0
- package/concepts/uk/Tool-Read.md +41 -0
- package/concepts/uk/Tool-Skill.md +35 -0
- package/concepts/uk/Tool-Task.md +53 -0
- package/concepts/uk/Tool-TaskCreate.md +38 -0
- package/concepts/uk/Tool-TaskGet.md +35 -0
- package/concepts/uk/Tool-TaskList.md +36 -0
- package/concepts/uk/Tool-TaskOutput.md +34 -0
- package/concepts/uk/Tool-TaskStop.md +27 -0
- package/concepts/uk/Tool-TaskUpdate.md +49 -0
- package/concepts/uk/Tool-WebFetch.md +36 -0
- package/concepts/uk/Tool-WebSearch.md +32 -0
- package/concepts/uk/Tool-Write.md +32 -0
- package/concepts/uk/Tool-executeCode.md +33 -0
- package/concepts/uk/Tool-getDiagnostics.md +32 -0
- package/concepts/uk/Tools.md +73 -0
- package/concepts/uk/TranslateContextPollution.md +46 -0
- package/concepts/zh/BodyDiffJSON.md +32 -0
- package/concepts/zh/CacheRebuild.md +40 -0
- package/concepts/zh/MainAgent.md +30 -0
- package/concepts/zh/Tool-AskUserQuestion.md +54 -0
- package/concepts/zh/Tool-Bash.md +47 -0
- package/concepts/zh/Tool-Edit.md +38 -0
- package/concepts/zh/Tool-EnterPlanMode.md +43 -0
- package/concepts/zh/Tool-ExitPlanMode.md +39 -0
- package/concepts/zh/Tool-Glob.md +34 -0
- package/concepts/zh/Tool-Grep.md +47 -0
- package/concepts/zh/Tool-NotebookEdit.md +33 -0
- package/concepts/zh/Tool-Read.md +41 -0
- package/concepts/zh/Tool-Skill.md +35 -0
- package/concepts/zh/Tool-Task.md +53 -0
- package/concepts/zh/Tool-TaskCreate.md +38 -0
- package/concepts/zh/Tool-TaskGet.md +35 -0
- package/concepts/zh/Tool-TaskList.md +36 -0
- package/concepts/zh/Tool-TaskOutput.md +34 -0
- package/concepts/zh/Tool-TaskStop.md +27 -0
- package/concepts/zh/Tool-TaskUpdate.md +49 -0
- package/concepts/zh/Tool-WebFetch.md +36 -0
- package/concepts/zh/Tool-WebSearch.md +32 -0
- package/concepts/zh/Tool-Write.md +32 -0
- package/concepts/zh/Tool-executeCode.md +33 -0
- package/concepts/zh/Tool-getDiagnostics.md +32 -0
- package/concepts/zh/Tools.md +73 -0
- package/concepts/zh/TranslateContextPollution.md +47 -0
- package/concepts/zh-TW/BodyDiffJSON.md +32 -0
- package/concepts/zh-TW/CacheRebuild.md +40 -0
- package/concepts/zh-TW/MainAgent.md +30 -0
- package/concepts/zh-TW/Tool-AskUserQuestion.md +54 -0
- package/concepts/zh-TW/Tool-Bash.md +47 -0
- package/concepts/zh-TW/Tool-Edit.md +38 -0
- package/concepts/zh-TW/Tool-EnterPlanMode.md +43 -0
- package/concepts/zh-TW/Tool-ExitPlanMode.md +39 -0
- package/concepts/zh-TW/Tool-Glob.md +34 -0
- package/concepts/zh-TW/Tool-Grep.md +47 -0
- package/concepts/zh-TW/Tool-NotebookEdit.md +33 -0
- package/concepts/zh-TW/Tool-Read.md +41 -0
- package/concepts/zh-TW/Tool-Skill.md +35 -0
- package/concepts/zh-TW/Tool-Task.md +53 -0
- package/concepts/zh-TW/Tool-TaskCreate.md +38 -0
- package/concepts/zh-TW/Tool-TaskGet.md +35 -0
- package/concepts/zh-TW/Tool-TaskList.md +36 -0
- package/concepts/zh-TW/Tool-TaskOutput.md +34 -0
- package/concepts/zh-TW/Tool-TaskStop.md +27 -0
- package/concepts/zh-TW/Tool-TaskUpdate.md +49 -0
- package/concepts/zh-TW/Tool-WebFetch.md +36 -0
- package/concepts/zh-TW/Tool-WebSearch.md +32 -0
- package/concepts/zh-TW/Tool-Write.md +32 -0
- package/concepts/zh-TW/Tool-executeCode.md +33 -0
- package/concepts/zh-TW/Tool-getDiagnostics.md +32 -0
- package/concepts/zh-TW/Tools.md +73 -0
- package/concepts/zh-TW/TranslateContextPollution.md +46 -0
- package/dist/assets/{index-DjCjusqk.js → index-CSuPDSgh.js} +45 -45
- package/dist/index.html +1 -1
- package/interceptor.js +19 -4
- package/package.json +3 -2
- package/server.js +15 -14
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Write
|
|
2
|
+
|
|
3
|
+
## Определение
|
|
4
|
+
|
|
5
|
+
Записывает содержимое в локальную файловую систему. Если файл уже существует, перезаписывает его.
|
|
6
|
+
|
|
7
|
+
## Параметры
|
|
8
|
+
|
|
9
|
+
| Параметр | Тип | Обязательный | Описание |
|
|
10
|
+
|------|------|------|------|
|
|
11
|
+
| `file_path` | string | Да | Абсолютный путь к файлу (должен быть абсолютным) |
|
|
12
|
+
| `content` | string | Да | Содержимое для записи |
|
|
13
|
+
|
|
14
|
+
## Сценарии использования
|
|
15
|
+
|
|
16
|
+
**Подходящее применение:**
|
|
17
|
+
- Создание новых файлов
|
|
18
|
+
- Когда требуется полная перезапись содержимого файла
|
|
19
|
+
|
|
20
|
+
**Неподходящее применение:**
|
|
21
|
+
- Модификация локального содержимого файла — следует использовать Edit
|
|
22
|
+
- Не следует проактивно создавать файлы документации (*.md) или README, если пользователь явно не просит
|
|
23
|
+
|
|
24
|
+
## Примечания
|
|
25
|
+
|
|
26
|
+
- Если целевой файл уже существует, его необходимо сначала прочитать через Read, иначе операция завершится ошибкой
|
|
27
|
+
- Перезаписывает всё содержимое существующего файла
|
|
28
|
+
- Предпочитайте Edit для редактирования существующих файлов, Write предназначен только для создания новых файлов или полной перезаписи
|
|
29
|
+
|
|
30
|
+
## Значение в cc-viewer
|
|
31
|
+
|
|
32
|
+
Вызов Write в логах запросов отображается как блок content `tool_use`, чей `input.content` содержит полное записанное содержимое.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# executeCode (mcp__ide__executeCode)
|
|
2
|
+
|
|
3
|
+
## Определение
|
|
4
|
+
|
|
5
|
+
Выполняет код Python в ядре Jupyter текущего файла notebook.
|
|
6
|
+
|
|
7
|
+
## Параметры
|
|
8
|
+
|
|
9
|
+
| Параметр | Тип | Обязательный | Описание |
|
|
10
|
+
|------|------|------|------|
|
|
11
|
+
| `code` | string | Да | Код Python для выполнения |
|
|
12
|
+
|
|
13
|
+
## Сценарии использования
|
|
14
|
+
|
|
15
|
+
**Подходящее применение:**
|
|
16
|
+
- Выполнение кода в среде Jupyter notebook
|
|
17
|
+
- Тестирование фрагментов кода
|
|
18
|
+
- Анализ данных и вычисления
|
|
19
|
+
|
|
20
|
+
**Неподходящее применение:**
|
|
21
|
+
- Выполнение кода вне среды Jupyter — следует использовать Bash
|
|
22
|
+
- Модификация файлов — следует использовать Edit или Write
|
|
23
|
+
|
|
24
|
+
## Примечания
|
|
25
|
+
|
|
26
|
+
- Это инструмент MCP (Model Context Protocol), предоставляемый интеграцией с IDE
|
|
27
|
+
- Код выполняется в текущем ядре Jupyter, состояние сохраняется между вызовами
|
|
28
|
+
- Если пользователь явно не просит, следует избегать объявления переменных или изменения состояния ядра
|
|
29
|
+
- После перезапуска ядра состояние теряется
|
|
30
|
+
|
|
31
|
+
## Значение в cc-viewer
|
|
32
|
+
|
|
33
|
+
executeCode — это инструмент MCP, появляющийся в массиве `tools` логов запросов под именем `mcp__ide__executeCode`. Его вызовы и возвраты следуют стандартному шаблону `tool_use` / `tool_result`. Добавление/удаление инструментов MCP вызывает изменение массива tools, что может привести к пересборке кеша.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# getDiagnostics (mcp__ide__getDiagnostics)
|
|
2
|
+
|
|
3
|
+
## Определение
|
|
4
|
+
|
|
5
|
+
Получает диагностическую информацию языка из VS Code, включая синтаксические ошибки, ошибки типов, предупреждения lint и т.д.
|
|
6
|
+
|
|
7
|
+
## Параметры
|
|
8
|
+
|
|
9
|
+
| Параметр | Тип | Обязательный | Описание |
|
|
10
|
+
|------|------|------|------|
|
|
11
|
+
| `uri` | string | Нет | URI файла. Если не указан, получает диагностику всех файлов |
|
|
12
|
+
|
|
13
|
+
## Сценарии использования
|
|
14
|
+
|
|
15
|
+
**Подходящее применение:**
|
|
16
|
+
- Проверка семантических проблем кода: синтаксис, типы, lint и т.д.
|
|
17
|
+
- Верификация после редактирования кода на предмет новых ошибок
|
|
18
|
+
- Замена команд Bash для проверки качества кода
|
|
19
|
+
|
|
20
|
+
**Неподходящее применение:**
|
|
21
|
+
- Запуск тестов — следует использовать Bash
|
|
22
|
+
- Проверка ошибок времени выполнения — следует использовать Bash для выполнения кода
|
|
23
|
+
|
|
24
|
+
## Примечания
|
|
25
|
+
|
|
26
|
+
- Это инструмент MCP (Model Context Protocol), предоставляемый интеграцией с IDE
|
|
27
|
+
- Доступен только в среде VS Code / IDE
|
|
28
|
+
- Предпочитайте использование этого инструмента вместо команд Bash для проверки проблем с кодом
|
|
29
|
+
|
|
30
|
+
## Значение в cc-viewer
|
|
31
|
+
|
|
32
|
+
getDiagnostics — это инструмент MCP, появляющийся в массиве `tools` логов запросов под именем `mcp__ide__getDiagnostics`. Его вызовы и возвраты следуют стандартному шаблону `tool_use` / `tool_result`. Добавление/удаление инструментов MCP вызывает изменение массива tools, что может привести к пересборке кеша.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Обзор инструментов Claude Code
|
|
2
|
+
|
|
3
|
+
Claude Code предоставляет модели набор встроенных инструментов через механизм tool_use API Anthropic. Массив `tools` в каждом запросе MainAgent содержит полные определения JSON Schema этих инструментов, а модель вызывает их в ответе через блоки content `tool_use`.
|
|
4
|
+
|
|
5
|
+
Ниже приведён категоризированный индекс всех инструментов.
|
|
6
|
+
|
|
7
|
+
## Система агентов
|
|
8
|
+
|
|
9
|
+
| Инструмент | Назначение |
|
|
10
|
+
|------|------|
|
|
11
|
+
| [Task](Tool-Task.md) | Запуск суб-агента (SubAgent) для обработки сложных многоэтапных задач |
|
|
12
|
+
| [TaskOutput](Tool-TaskOutput.md) | Получение результата фоновой задачи |
|
|
13
|
+
| [TaskStop](Tool-TaskStop.md) | Остановка работающей фоновой задачи |
|
|
14
|
+
| [TaskCreate](Tool-TaskCreate.md) | Создание записи в структурированном списке задач |
|
|
15
|
+
| [TaskGet](Tool-TaskGet.md) | Получение деталей задачи |
|
|
16
|
+
| [TaskUpdate](Tool-TaskUpdate.md) | Обновление статуса задачи, зависимостей и т.д. |
|
|
17
|
+
| [TaskList](Tool-TaskList.md) | Отображение списка всех задач |
|
|
18
|
+
|
|
19
|
+
## Операции с файлами
|
|
20
|
+
|
|
21
|
+
| Инструмент | Назначение |
|
|
22
|
+
|------|------|
|
|
23
|
+
| [Read](Tool-Read.md) | Чтение содержимого файла (поддержка текста, изображений, PDF, Jupyter notebook) |
|
|
24
|
+
| [Edit](Tool-Edit.md) | Редактирование файла через точную замену строк |
|
|
25
|
+
| [Write](Tool-Write.md) | Запись или перезапись файла |
|
|
26
|
+
| [NotebookEdit](Tool-NotebookEdit.md) | Редактирование ячеек Jupyter notebook |
|
|
27
|
+
|
|
28
|
+
## Поиск
|
|
29
|
+
|
|
30
|
+
| Инструмент | Назначение |
|
|
31
|
+
|------|------|
|
|
32
|
+
| [Glob](Tool-Glob.md) | Поиск файлов по шаблону имени |
|
|
33
|
+
| [Grep](Tool-Grep.md) | Поиск по содержимому файлов на основе ripgrep |
|
|
34
|
+
|
|
35
|
+
## Терминал
|
|
36
|
+
|
|
37
|
+
| Инструмент | Назначение |
|
|
38
|
+
|------|------|
|
|
39
|
+
| [Bash](Tool-Bash.md) | Выполнение команд shell |
|
|
40
|
+
|
|
41
|
+
## Web
|
|
42
|
+
|
|
43
|
+
| Инструмент | Назначение |
|
|
44
|
+
|------|------|
|
|
45
|
+
| [WebFetch](Tool-WebFetch.md) | Получение содержимого веб-страниц и обработка с помощью AI |
|
|
46
|
+
| [WebSearch](Tool-WebSearch.md) | Запросы к поисковой системе |
|
|
47
|
+
|
|
48
|
+
## Планирование и взаимодействие
|
|
49
|
+
|
|
50
|
+
| Инструмент | Назначение |
|
|
51
|
+
|------|------|
|
|
52
|
+
| [EnterPlanMode](Tool-EnterPlanMode.md) | Вход в режим планирования, проектирование плана реализации |
|
|
53
|
+
| [ExitPlanMode](Tool-ExitPlanMode.md) | Выход из режима планирования и отправка плана на утверждение пользователю |
|
|
54
|
+
| [AskUserQuestion](Tool-AskUserQuestion.md) | Задать вопрос пользователю для уточнения или принятия решения |
|
|
55
|
+
|
|
56
|
+
## Расширения
|
|
57
|
+
|
|
58
|
+
| Инструмент | Назначение |
|
|
59
|
+
|------|------|
|
|
60
|
+
| [Skill](Tool-Skill.md) | Выполнение навыка (slash command) |
|
|
61
|
+
|
|
62
|
+
## Интеграция с IDE
|
|
63
|
+
|
|
64
|
+
| Инструмент | Назначение |
|
|
65
|
+
|------|------|
|
|
66
|
+
| [getDiagnostics](Tool-getDiagnostics.md) | Получение диагностической информации языка из VS Code |
|
|
67
|
+
| [executeCode](Tool-executeCode.md) | Выполнение кода в ядре Jupyter |
|
|
68
|
+
|
|
69
|
+
## Значение в cc-viewer
|
|
70
|
+
|
|
71
|
+
Вызовы инструментов — одни из наиболее важных наблюдаемых данных в логах запросов Claude Code. Массив `tools` каждого запроса MainAgent определяет набор инструментов, доступных модели, а блоки content `tool_use` / `tool_result` в ответе фиксируют фактические вызовы инструментов и их результаты. cc-viewer парсит эти данные для воссоздания полной цепочки вызовов инструментов в Chat Mode.
|
|
72
|
+
|
|
73
|
+
Изменения в определениях инструментов (например, добавление/удаление инструментов из-за подключения/отключения MCP-сервера) вызывают пересборку кеша, подробнее в [CacheRebuild](CacheRebuild.md).
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Загрязнение контекста в Translate API
|
|
2
|
+
|
|
3
|
+
## Предыстория
|
|
4
|
+
|
|
5
|
+
CC-Viewer включает встроенную функцию перевода (`POST /api/translate`), работающую на основе Anthropic Messages API. В ранней реализации запросы на перевод повторно использовали кэшированные учётные данные аутентификации из сессии Claude Code — включая заголовки `x-api-key` и `authorization`. Это вызывало неочевидную, но серьёзную проблему: результаты перевода часто возвращали нерелевантное содержимое.
|
|
6
|
+
|
|
7
|
+
## Корневая причина
|
|
8
|
+
|
|
9
|
+
### Фундаментальное различие между двумя методами аутентификации
|
|
10
|
+
|
|
11
|
+
Anthropic API поддерживает два метода аутентификации:
|
|
12
|
+
|
|
13
|
+
| Метод | Заголовок | Типичный источник | Характеристики |
|
|
14
|
+
|-------|-----------|-------------------|----------------|
|
|
15
|
+
| API-ключ | `x-api-key: sk-ant-...` | Переменная окружения / Console | Без состояния, каждый запрос независим |
|
|
16
|
+
| OAuth-токен | `authorization: Bearer sessionToken` | Вход по подписке Claude Code | Привязан к сессии, сервер поддерживает ассоциацию контекста |
|
|
17
|
+
|
|
18
|
+
Ключевое различие: **API-ключи не хранят состояние** — каждый запрос полностью независим; тогда как **OAuth-токены сессии хранят состояние** — сервер Anthropic ассоциирует запросы с одним и тем же токеном с одним и тем же контекстом сессии.
|
|
19
|
+
|
|
20
|
+
### Цепочка загрязнения
|
|
21
|
+
|
|
22
|
+
Когда Claude Code использует OAuth-вход по подписке, поток аутентификации выглядит так:
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
Основной диалог Claude Code ──(authorization: Bearer sessionToken)──→ Anthropic API
|
|
26
|
+
↑
|
|
27
|
+
Запрос перевода CC-Viewer ──(authorization: Bearer sessionToken)──→ Anthropic API
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Поскольку запросы на перевод повторно использовали тот же токен сессии, сервер Anthropic может ассоциировать запросы на перевод с контекстом основного диалога Claude Code. Это приводит к:
|
|
31
|
+
|
|
32
|
+
1. **Результаты перевода под влиянием контекста основного диалога**: Системный промпт запроса на перевод — «вы переводчик», но серверный контекст всё ещё содержит историю диалогов Claude Code, что может влиять на модель
|
|
33
|
+
2. **Основной диалог нарушается запросами на перевод**: Содержимое запросов на перевод (фрагменты текста UI) может быть внедрено в контекст основного диалога, вызывая отклонения в ответах Claude Code
|
|
34
|
+
3. **Непредсказуемое поведение**: Поскольку загрязнение контекста — это поведение на стороне сервера, клиент не может его обнаружить или контролировать
|
|
35
|
+
|
|
36
|
+
## Извлечённые уроки
|
|
37
|
+
|
|
38
|
+
- **OAuth-токены сессии — это не «просто ещё один API-ключ»** — они несут серверное состояние, и их повторное использование означает разделение контекста
|
|
39
|
+
- **Внутренние вызовы сервисов должны использовать независимую аутентификацию без состояния**, чтобы избежать ассоциации с пользовательскими сессиями
|
|
40
|
+
|
|
41
|
+
## Ссылки
|
|
42
|
+
|
|
43
|
+
- [Anthropic API Authentication Docs](https://docs.anthropic.com/en/api/getting-started)
|
|
44
|
+
- [Claude Code Authentication](https://support.claude.com/en/articles/12304248-managing-api-key-environment-variables-in-claude-code)
|
|
45
|
+
- [Anthropic Bans Subscription OAuth in Third-Party Apps](https://winbuzzer.com/2026/02/19/anthropic-bans-claude-subscription-oauth-in-third-party-apps-xcxwbn/)
|
|
46
|
+
- [Claude Code Authentication: API Keys, Subscriptions, and SSO](https://developertoolkit.ai/en/claude-code/quick-start/authentication/)
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Body Diff JSON (การเปรียบเทียบส่วนเพิ่มของเนื้อหาคำร้องขอ)
|
|
2
|
+
|
|
3
|
+
## ภูมิหลัง
|
|
4
|
+
|
|
5
|
+
MainAgent ของ Claude Code ใช้กลไกการส่งบริบทแบบเต็ม — ทุกคำร้องขอจะมีประวัติการสนทนาทั้งหมด, system prompt, คำจำกัดความเครื่องมือ ฯลฯ ซึ่งหมายความว่าเมื่อการสนทนาดำเนินไป เนื้อหาคำร้องขอจะใหญ่ขึ้นเรื่อยๆ การดู Body ดิบโดยตรงจึงยากที่จะระบุได้อย่างรวดเร็วว่า "รอบนี้เพิ่มอะไรมาบ้าง"
|
|
6
|
+
|
|
7
|
+
Body Diff JSON ถูกสร้างขึ้นเพื่อแก้ปัญหานี้: มันเปรียบเทียบ body ของคำร้องขอ MainAgent สองรายการที่ต่อเนื่องกันโดยอัตโนมัติ สกัดส่วนที่เพิ่มขึ้น ให้คุณเห็นเนื้อหาที่เพิ่มจริงในคำร้องขอนี้ได้ทันที
|
|
8
|
+
|
|
9
|
+
## หลักการทำงาน
|
|
10
|
+
|
|
11
|
+
1. **ระบุคำร้องขอ MainAgent ที่ต่อเนื่องกัน**: คำร้องขอปัจจุบันต้องเป็นประเภท MainAgent และต้องมีคำร้องขอ MainAgent ก่อนหน้า
|
|
12
|
+
2. **เปรียบเทียบทีละฟิลด์**: วนผ่านฟิลด์ระดับบนสุดทั้งหมดของเนื้อหาคำร้องขอ ข้ามคุณสมบัติภายในที่มีคำนำหน้า `_`
|
|
13
|
+
3. **การสกัดความแตกต่างอัจฉริยะ**:
|
|
14
|
+
- ฟิลด์ที่เพิ่มใหม่: แสดงโดยตรง
|
|
15
|
+
- ฟิลด์ที่ถูกลบ: ไม่แสดง (โดยปกติไม่ส่งผลต่อความเข้าใจ)
|
|
16
|
+
- ฟิลด์ที่เปลี่ยนแปลง: แสดงค่าปัจจุบัน
|
|
17
|
+
- การจัดการพิเศษสำหรับอาร์เรย์ `messages`: แสดงเฉพาะข้อความที่เพิ่มใหม่ (เพราะในการสนทนาปกติเป็นโหมดเพิ่มต่อท้าย ข้อความนำหน้าไม่เปลี่ยนแปลง)
|
|
18
|
+
4. **การตรวจจับเนื้อหาที่เล็กลง**: หากเนื้อหาคำร้องขอปัจจุบันเล็กกว่าก่อนหน้า แสดงว่าเกิดการตัดทอนบริบทหรือรีเซ็ตเซสชัน ในกรณีนี้จะแสดงข้อความแจ้งเตือนแทน diff
|
|
19
|
+
|
|
20
|
+
## สถานการณ์ทั่วไป
|
|
21
|
+
|
|
22
|
+
ในรอบการสนทนาปกติ Body Diff JSON มักจะมีเพียง:
|
|
23
|
+
- `messages`: ข้อความใหม่ 1~2 รายการ (อินพุตของผู้ใช้ + คำตอบของผู้ช่วยจากรอบก่อนหน้า)
|
|
24
|
+
|
|
25
|
+
หากคุณเห็นการเปลี่ยนแปลงของฟิลด์ `system`, `tools`, `model` ฯลฯ ใน diff แสดงว่ารอบนี้มีการเปลี่ยนแปลงการตั้งค่า ซึ่งมักเป็นสาเหตุของการสร้างแคชใหม่ด้วย
|
|
26
|
+
|
|
27
|
+
## วิธีใช้
|
|
28
|
+
|
|
29
|
+
- Body Diff JSON แสดงในแผงรายละเอียดของคำร้องขอ MainAgent
|
|
30
|
+
- คลิกที่หัวข้อเพื่อขยาย/ยุบ
|
|
31
|
+
- รองรับสองโหมดการดู: JSON และ Text รวมถึงการคัดลอกด้วยคลิกเดียว
|
|
32
|
+
- ที่มุมซ้ายบนใน **CC-Viewer → การตั้งค่าทั่วไป** สามารถตั้งค่า "ขยาย Body Diff JSON เป็นค่าเริ่มต้น" ได้
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Cache Rebuild (การสร้างแคชใหม่)
|
|
2
|
+
|
|
3
|
+
## ภูมิหลัง
|
|
4
|
+
|
|
5
|
+
กลไก prompt caching ของ Anthropic จะนำ system → tools → messages (จนถึง cache breakpoint) ในคำร้องขอมาต่อกันตามลำดับเพื่อสร้างคีย์แคช เมื่อคีย์แคชตรงกับคำร้องขอก่อนหน้าทุกประการ API จะส่งคืน `cache_read_input_tokens` (แคชตรง) เมื่อคีย์แคชเปลี่ยนแปลง API จะสร้างแคชใหม่และส่งคืน `cache_creation_input_tokens` จำนวนมาก นั่นคือการสร้างแคชใหม่
|
|
6
|
+
|
|
7
|
+
การสร้างแคชใหม่หมายถึงค่าใช้จ่ายโทเค็นเพิ่มเติม (ราคา cache creation สูงกว่า cache read) ดังนั้นการระบุสาเหตุของการสร้างใหม่จึงมีคุณค่าโดยตรงต่อการเพิ่มประสิทธิภาพค่าใช้จ่าย
|
|
8
|
+
|
|
9
|
+
## การจำแนกสาเหตุการสร้างแคชใหม่
|
|
10
|
+
|
|
11
|
+
cc-viewer ระบุสาเหตุของการสร้างแคชใหม่อย่างแม่นยำโดยเปรียบเทียบ body ของคำร้องขอ MainAgent สองรายการที่ต่อเนื่องกัน:
|
|
12
|
+
|
|
13
|
+
| reason | ความหมาย | วิธีการตรวจสอบ |
|
|
14
|
+
|--------|------|----------|
|
|
15
|
+
| `ttl` | แคชหมดอายุ | เวลาห่างจากคำร้องขอ MainAgent ก่อนหน้ามากกว่า 5 นาที |
|
|
16
|
+
| `system_change` | system prompt เปลี่ยนแปลง | `JSON.stringify(prev.system) !== JSON.stringify(curr.system)` |
|
|
17
|
+
| `tools_change` | คำจำกัดความเครื่องมือเปลี่ยนแปลง | `JSON.stringify(prev.tools) !== JSON.stringify(curr.tools)` |
|
|
18
|
+
| `model_change` | เปลี่ยนโมเดล | `prev.model !== curr.model` |
|
|
19
|
+
| `msg_truncated` | สแต็กข้อความถูกตัดทอน | จำนวนข้อความของคำร้องขอปัจจุบันน้อยกว่าคำร้องขอก่อนหน้า โดยปกติเกิดจากการตัดทอนเมื่อหน้าต่างบริบทล้น |
|
|
20
|
+
| `msg_modified` | ข้อความประวัติถูกแก้ไข | เนื้อหาข้อความนำหน้าไม่สอดคล้องกัน (ในการเพิ่มปกติ ข้อความนำหน้าควรเหมือนกันทุกประการ) |
|
|
21
|
+
| `key_change` | การเปลี่ยนแปลงคีย์ที่ไม่ทราบสาเหตุ | fallback เมื่อไม่ตรงกับเงื่อนไขใดข้างต้น |
|
|
22
|
+
|
|
23
|
+
## ลำดับความสำคัญในการตรวจสอบ
|
|
24
|
+
|
|
25
|
+
1. ตรวจสอบช่วงเวลาก่อน — หากเกิน 5 นาที จะระบุเป็น `ttl` ทันทีโดยไม่เปรียบเทียบ body
|
|
26
|
+
2. จากนั้นตรวจสอบตามลำดับ model, system, tools, messages
|
|
27
|
+
3. คำร้องขอหนึ่งอาจตรงกับหลายสาเหตุพร้อมกัน (เช่น เปลี่ยนโมเดล + เปลี่ยน system prompt) ในกรณีนี้อาร์เรย์ `reasons` จะมีรายการที่ตรงทั้งหมด และ tooltip จะแสดงแยกบรรทัด
|
|
28
|
+
|
|
29
|
+
## สถานการณ์ที่พบบ่อย
|
|
30
|
+
|
|
31
|
+
- **`ttl`**: ผู้ใช้หยุดการทำงานนานกว่า 5 นาทีแล้วดำเนินการต่อ แคชหมดอายุตามธรรมชาติ
|
|
32
|
+
- **`system_change`**: Claude Code อัปเดต system prompt (เช่น โหลด CLAUDE.md ใหม่, project instructions เปลี่ยนแปลง)
|
|
33
|
+
- **`tools_change`**: การเชื่อมต่อ/ตัดการเชื่อมต่อ MCP server ทำให้รายการเครื่องมือที่ใช้ได้เปลี่ยนแปลง
|
|
34
|
+
- **`model_change`**: ผู้ใช้เปลี่ยนโมเดลผ่านคำสั่ง `/model`
|
|
35
|
+
- **`msg_truncated`**: การสนทนายาวเกินไปทำให้เกิดการจัดการหน้าต่างบริบท Claude Code ตัดทอนข้อความก่อนหน้า
|
|
36
|
+
- **`msg_modified`**: Claude Code แก้ไขข้อความประวัติ (เช่น `/compact` แทนที่ข้อความต้นฉบับด้วยสรุปแบบบีบอัด)
|
|
37
|
+
|
|
38
|
+
## การแสดงผลใน cc-viewer
|
|
39
|
+
|
|
40
|
+
ในรายการคำร้องขอ คำร้องขอที่มีการสร้างแคชใหม่จะแสดงตัวบ่งชี้จุดสีแดงในบรรทัดแคช เมื่อเลื่อนเมาส์ไปวาง tooltip จะแสดงคำอธิบายสาเหตุการสร้างใหม่โดยเฉพาะ (รองรับ 18 ภาษา)
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# MainAgent
|
|
2
|
+
|
|
3
|
+
## คำจำกัดความ
|
|
4
|
+
|
|
5
|
+
MainAgent คือสายการร้องขอหลักของ Claude Code เมื่อไม่ได้อยู่ในโหมด agent team ทุกครั้งที่ผู้ใช้โต้ตอบกับ Claude Code จะเกิดชุดคำร้องขอ API ขึ้น โดยคำร้องขอ MainAgent จะเป็นสายการสนทนาหลัก — ซึ่งจะมี system prompt ที่สมบูรณ์ คำจำกัดความเครื่องมือ และประวัติข้อความ
|
|
6
|
+
|
|
7
|
+
## วิธีการระบุ
|
|
8
|
+
|
|
9
|
+
ใน cc-viewer, MainAgent จะถูกระบุด้วย `req.mainAgent === true` ซึ่งถูกทำเครื่องหมายโดยอัตโนมัติโดย `interceptor.js` ในขณะจับคำร้องขอ
|
|
10
|
+
|
|
11
|
+
เงื่อนไขการระบุ (ต้องตรงทั้งหมด):
|
|
12
|
+
- เนื้อหาคำร้องขอมีฟิลด์ `system` (system prompt)
|
|
13
|
+
- เนื้อหาคำร้องขอมีอาร์เรย์ `tools` (คำจำกัดความเครื่องมือ)
|
|
14
|
+
- system prompt มีข้อความลักษณะเฉพาะของ "Claude Code"
|
|
15
|
+
|
|
16
|
+
## ความแตกต่างจาก SubAgent
|
|
17
|
+
|
|
18
|
+
| ลักษณะ | MainAgent | SubAgent |
|
|
19
|
+
|------|-----------|----------|
|
|
20
|
+
| system prompt | prompt หลักที่สมบูรณ์ของ Claude Code | prompt แบบย่อเฉพาะงาน |
|
|
21
|
+
| อาร์เรย์ tools | มีเครื่องมือทั้งหมดที่ใช้ได้ | โดยปกติมีเฉพาะเครื่องมือที่จำเป็นสำหรับงานเท่านั้น |
|
|
22
|
+
| ประวัติข้อความ | สะสมบริบทการสนทนาทั้งหมด | มีเฉพาะข้อความที่เกี่ยวข้องกับงานย่อย |
|
|
23
|
+
| พฤติกรรมแคช | มี prompt caching (TTL 5 นาที) | โดยปกติไม่มีแคชหรือแคชขนาดเล็ก |
|
|
24
|
+
|
|
25
|
+
## ความสำคัญใน cc-viewer
|
|
26
|
+
|
|
27
|
+
- **การติดตามแคช**: สถานะ prompt caching ของคำร้องขอ MainAgent ส่งผลโดยตรงต่อค่าใช้จ่าย โดยการตรวจสอบสัดส่วนระหว่าง `cache_creation_input_tokens` กับ `cache_read_input_tokens` สามารถประเมินอัตราการเข้าถึงแคชได้
|
|
28
|
+
- **การวิเคราะห์การสูญเสียแคช**: เมื่อคำร้องขอ MainAgent มี cache creation จำนวนมาก (แทนที่จะเป็น cache read) แสดงว่าแคชสูญหายและถูกสร้างใหม่ cc-viewer จะทำเครื่องหมายคำร้องขอเหล่านี้ด้วยตัวบ่งชี้จุดสีแดง
|
|
29
|
+
- **การวิเคราะห์สายหลัก**: ลำดับคำร้องขอ MainAgent สะท้อนกระบวนการโต้ตอบทั้งหมดของผู้ใช้กับ Claude Code ซึ่งเป็นข้อมูลหลักสำหรับการวิเคราะห์พฤติกรรมเซสชัน
|
|
30
|
+
- **การสร้างเซสชันใหม่**: cc-viewer สร้างมุมมองการสนทนา (Chat Mode) ใหม่ผ่านประวัติข้อความของคำร้องขอ MainAgent
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# AskUserQuestion
|
|
2
|
+
|
|
3
|
+
## คำจำกัดความ
|
|
4
|
+
|
|
5
|
+
ถามคำถามผู้ใช้ระหว่างการดำเนินงาน เพื่อขอคำชี้แจง ตรวจสอบสมมติฐาน หรือขอการตัดสินใจ
|
|
6
|
+
|
|
7
|
+
## พารามิเตอร์
|
|
8
|
+
|
|
9
|
+
| พารามิเตอร์ | ประเภท | จำเป็น | คำอธิบาย |
|
|
10
|
+
|------|------|------|------|
|
|
11
|
+
| `questions` | array | ใช่ | รายการคำถาม (1-4 คำถาม) |
|
|
12
|
+
| `answers` | object | ไม่ | คำตอบที่รวบรวมจากผู้ใช้ |
|
|
13
|
+
| `annotations` | object | ไม่ | หมายเหตุสำหรับแต่ละคำถาม (เช่น บันทึกการแสดงตัวอย่างตัวเลือก) |
|
|
14
|
+
| `metadata` | object | ไม่ | ข้อมูลเมตาสำหรับการติดตามและวิเคราะห์ |
|
|
15
|
+
|
|
16
|
+
แต่ละอ็อบเจกต์ `question`:
|
|
17
|
+
|
|
18
|
+
| ฟิลด์ | ประเภท | จำเป็น | คำอธิบาย |
|
|
19
|
+
|------|------|------|------|
|
|
20
|
+
| `question` | string | ใช่ | ข้อความคำถามแบบเต็ม ควรลงท้ายด้วยเครื่องหมายคำถาม |
|
|
21
|
+
| `header` | string | ใช่ | ป้ายกำกับสั้น (สูงสุด 12 ตัวอักษร) แสดงเป็นชิปแท็ก |
|
|
22
|
+
| `options` | array | ใช่ | 2-4 ตัวเลือก |
|
|
23
|
+
| `multiSelect` | boolean | ใช่ | อนุญาตให้เลือกหลายรายการหรือไม่ |
|
|
24
|
+
|
|
25
|
+
แต่ละอ็อบเจกต์ `option`:
|
|
26
|
+
|
|
27
|
+
| ฟิลด์ | ประเภท | จำเป็น | คำอธิบาย |
|
|
28
|
+
|------|------|------|------|
|
|
29
|
+
| `label` | string | ใช่ | ข้อความแสดงตัวเลือก (1-5 คำ) |
|
|
30
|
+
| `description` | string | ใช่ | คำอธิบายตัวเลือก |
|
|
31
|
+
| `markdown` | string | ไม่ | เนื้อหาแสดงตัวอย่าง (สำหรับการเปรียบเทียบภาพของเลย์เอาต์ ASCII, โค้ดสนิปเป็ต ฯลฯ) |
|
|
32
|
+
|
|
33
|
+
## สถานการณ์การใช้งาน
|
|
34
|
+
|
|
35
|
+
**เหมาะสำหรับ:**
|
|
36
|
+
- รวบรวมความต้องการหรือข้อกำหนดของผู้ใช้
|
|
37
|
+
- ชี้แจงคำสั่งที่คลุมเครือ
|
|
38
|
+
- รับการตัดสินใจระหว่างการดำเนินงาน
|
|
39
|
+
- เสนอทางเลือกทิศทางให้ผู้ใช้
|
|
40
|
+
|
|
41
|
+
**ไม่เหมาะสำหรับ:**
|
|
42
|
+
- ถามว่า "แผนนี้โอเคไหม?" — ควรใช้ ExitPlanMode
|
|
43
|
+
|
|
44
|
+
## ข้อควรระวัง
|
|
45
|
+
|
|
46
|
+
- ผู้ใช้สามารถเลือก "Other" เพื่อให้อินพุตที่กำหนดเองได้เสมอ
|
|
47
|
+
- ตัวเลือกที่แนะนำควรอยู่ในลำดับแรก โดยเพิ่ม "(Recommended)" ที่ท้าย label
|
|
48
|
+
- การแสดงตัวอย่าง `markdown` รองรับเฉพาะคำถามแบบเลือกรายการเดียว
|
|
49
|
+
- ตัวเลือกที่มี `markdown` จะสลับเป็นเลย์เอาต์แบบเคียงข้างกัน
|
|
50
|
+
- ในโหมดวางแผน ใช้เพื่อชี้แจงข้อกำหนดก่อนกำหนดแผน
|
|
51
|
+
|
|
52
|
+
## ความสำคัญใน cc-viewer
|
|
53
|
+
|
|
54
|
+
การเรียก AskUserQuestion ปรากฏในบันทึกคำร้องขอเป็น content block `tool_use` ซึ่งมีคำจำกัดความของคำถามและตัวเลือก คำตอบของผู้ใช้จะปรากฏในประวัติข้อความของคำร้องขอถัดไป
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Bash
|
|
2
|
+
|
|
3
|
+
## คำจำกัดความ
|
|
4
|
+
|
|
5
|
+
รันคำสั่ง shell รองรับการตั้งค่า timeout เสริม ไดเรกทอรีทำงานจะคงอยู่ระหว่างคำสั่ง แต่สถานะ shell (ตัวแปรสภาพแวดล้อม ฯลฯ) จะไม่คงอยู่
|
|
6
|
+
|
|
7
|
+
## พารามิเตอร์
|
|
8
|
+
|
|
9
|
+
| พารามิเตอร์ | ประเภท | จำเป็น | คำอธิบาย |
|
|
10
|
+
|------|------|------|------|
|
|
11
|
+
| `command` | string | ใช่ | คำสั่ง bash ที่จะรัน |
|
|
12
|
+
| `description` | string | ไม่ | คำอธิบายสั้นของคำสั่ง |
|
|
13
|
+
| `timeout` | number | ไม่ | เวลา timeout (มิลลิวินาที) สูงสุด 600000 ค่าเริ่มต้น 120000 |
|
|
14
|
+
| `run_in_background` | boolean | ไม่ | รันในเบื้องหลังหรือไม่ |
|
|
15
|
+
|
|
16
|
+
## สถานการณ์การใช้งาน
|
|
17
|
+
|
|
18
|
+
**เหมาะสำหรับ:**
|
|
19
|
+
- การดำเนินการ git (commit, push, branch ฯลฯ)
|
|
20
|
+
- คำสั่งจัดการแพ็กเกจ เช่น npm/yarn
|
|
21
|
+
- การดำเนินการ docker
|
|
22
|
+
- คำสั่งคอมไพล์และบิลด์
|
|
23
|
+
- แสดงรายการเนื้อหาไดเรกทอรี (`ls`)
|
|
24
|
+
- คำสั่งระบบอื่นๆ ที่ต้องการการรัน shell
|
|
25
|
+
|
|
26
|
+
**ไม่เหมาะสำหรับ:**
|
|
27
|
+
- อ่านไฟล์ — ควรใช้ Read
|
|
28
|
+
- ค้นหาชื่อไฟล์ — ควรใช้ Glob
|
|
29
|
+
- ค้นหาเนื้อหาไฟล์ — ควรใช้ Grep
|
|
30
|
+
- แก้ไขไฟล์ — ควรใช้ Edit
|
|
31
|
+
- เขียนไฟล์ — ควรใช้ Write
|
|
32
|
+
- แสดงข้อมูลให้ผู้ใช้ — แสดงโดยตรงในข้อความตอบกลับ
|
|
33
|
+
- กระบวนการที่ทำงานนาน (dev server, โหมด watch) — แนะนำให้ผู้ใช้รันเอง
|
|
34
|
+
|
|
35
|
+
## ข้อควรระวัง
|
|
36
|
+
|
|
37
|
+
- พาธที่มีช่องว่างต้องใส่เครื่องหมายคำพูดคู่
|
|
38
|
+
- ผลลัพธ์ที่เกิน 30000 ตัวอักษรจะถูกตัดทอน
|
|
39
|
+
- คำสั่งเบื้องหลังรับผลลัพธ์ผ่าน TaskOutput
|
|
40
|
+
- ควรใช้พาธแบบสัมบูรณ์ หลีกเลี่ยง `cd`
|
|
41
|
+
- คำสั่งอิสระสามารถเรียก Bash หลายตัวพร้อมกันได้
|
|
42
|
+
- คำสั่งที่มีการพึ่งพาควรเชื่อมด้วย `&&`
|
|
43
|
+
- สภาพแวดล้อม shell จะถูกเริ่มต้นจาก profile ของผู้ใช้ (bash หรือ zsh)
|
|
44
|
+
|
|
45
|
+
## ความสำคัญใน cc-viewer
|
|
46
|
+
|
|
47
|
+
การเรียก Bash ปรากฏในบันทึกคำร้องขอเป็นคู่ content block `tool_use` (มีคำสั่ง) และ `tool_result` (มีผลลัพธ์) ผลลัพธ์การรันคำสั่งสามารถใช้วิเคราะห์พฤติกรรมการดำเนินงานของโมเดลได้
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Edit
|
|
2
|
+
|
|
3
|
+
## คำจำกัดความ
|
|
4
|
+
|
|
5
|
+
แก้ไขไฟล์ด้วยการแทนที่สตริงที่แม่นยำ แทนที่ `old_string` ด้วย `new_string` ในไฟล์
|
|
6
|
+
|
|
7
|
+
## พารามิเตอร์
|
|
8
|
+
|
|
9
|
+
| พารามิเตอร์ | ประเภท | จำเป็น | คำอธิบาย |
|
|
10
|
+
|------|------|------|------|
|
|
11
|
+
| `file_path` | string | ใช่ | พาธแบบสัมบูรณ์ของไฟล์ที่จะแก้ไข |
|
|
12
|
+
| `old_string` | string | ใช่ | ข้อความต้นฉบับที่จะถูกแทนที่ |
|
|
13
|
+
| `new_string` | string | ใช่ | ข้อความใหม่หลังการแทนที่ (ต้องแตกต่างจาก old_string) |
|
|
14
|
+
| `replace_all` | boolean | ไม่ | แทนที่ทุกรายการที่ตรงกันหรือไม่ ค่าเริ่มต้น `false` |
|
|
15
|
+
|
|
16
|
+
## สถานการณ์การใช้งาน
|
|
17
|
+
|
|
18
|
+
**เหมาะสำหรับ:**
|
|
19
|
+
- แก้ไขส่วนโค้ดเฉพาะในไฟล์ที่มีอยู่
|
|
20
|
+
- แก้ไขบัก อัปเดตลอจิก
|
|
21
|
+
- เปลี่ยนชื่อตัวแปร (ใช้ร่วมกับ `replace_all: true`)
|
|
22
|
+
- สถานการณ์ใดก็ตามที่ต้องการแก้ไขเนื้อหาไฟล์อย่างแม่นยำ
|
|
23
|
+
|
|
24
|
+
**ไม่เหมาะสำหรับ:**
|
|
25
|
+
- สร้างไฟล์ใหม่ — ควรใช้ Write
|
|
26
|
+
- เขียนใหม่ขนาดใหญ่ — อาจต้องใช้ Write เพื่อเขียนทับไฟล์ทั้งหมด
|
|
27
|
+
|
|
28
|
+
## ข้อควรระวัง
|
|
29
|
+
|
|
30
|
+
- ก่อนใช้ต้องอ่านไฟล์ผ่าน Read ก่อน มิฉะนั้นจะเกิดข้อผิดพลาด
|
|
31
|
+
- `old_string` ต้องไม่ซ้ำกันในไฟล์ มิฉะนั้นการแก้ไขจะล้มเหลว หากไม่ไม่ซ้ำกัน ให้เพิ่มบริบทเพื่อให้ไม่ซ้ำกัน หรือใช้ `replace_all`
|
|
32
|
+
- เมื่อแก้ไขข้อความต้องรักษาการเยื้องต้นฉบับ (tab/ช่องว่าง) อย่ารวมคำนำหน้าหมายเลขบรรทัดจากผลลัพธ์ Read
|
|
33
|
+
- ควรแก้ไขไฟล์ที่มีอยู่มากกว่าสร้างไฟล์ใหม่
|
|
34
|
+
- `new_string` ต้องแตกต่างจาก `old_string`
|
|
35
|
+
|
|
36
|
+
## ความสำคัญใน cc-viewer
|
|
37
|
+
|
|
38
|
+
การเรียก Edit ปรากฏในบันทึกคำร้องขอเป็น content block `tool_use` ซึ่ง `input` มี `old_string` และ `new_string` สามารถใช้ติดตามว่าโมเดลทำการแก้ไขอะไรในไฟล์
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# EnterPlanMode
|
|
2
|
+
|
|
3
|
+
## คำจำกัดความ
|
|
4
|
+
|
|
5
|
+
สลับ Claude Code เข้าสู่โหมดวางแผน ใช้สำหรับสำรวจโค้ดเบสและออกแบบแผนก่อนการดำเนินงาน
|
|
6
|
+
|
|
7
|
+
## พารามิเตอร์
|
|
8
|
+
|
|
9
|
+
ไม่มีพารามิเตอร์
|
|
10
|
+
|
|
11
|
+
## สถานการณ์การใช้งาน
|
|
12
|
+
|
|
13
|
+
**เหมาะสำหรับ:**
|
|
14
|
+
- การพัฒนาฟีเจอร์ใหม่ — ต้องการการตัดสินใจด้านสถาปัตยกรรม
|
|
15
|
+
- มีหลายแนวทางที่เป็นไปได้ — ต้องการให้ผู้ใช้เลือก
|
|
16
|
+
- การแก้ไขโค้ดส่งผลต่อพฤติกรรมหรือโครงสร้างที่มีอยู่
|
|
17
|
+
- การเปลี่ยนแปลงหลายไฟล์ — อาจเกี่ยวข้องกับ 2-3 ไฟล์ขึ้นไป
|
|
18
|
+
- ข้อกำหนดไม่ชัดเจน — ต้องสำรวจก่อนเพื่อเข้าใจขอบเขต
|
|
19
|
+
- ความต้องการของผู้ใช้สำคัญ — การดำเนินงานอาจมีหลายทิศทางที่สมเหตุสมผล
|
|
20
|
+
|
|
21
|
+
**ไม่เหมาะสำหรับ:**
|
|
22
|
+
- การแก้ไขบรรทัดเดียวหรือไม่กี่บรรทัด (พิมพ์ผิด, บักที่ชัดเจน)
|
|
23
|
+
- ผู้ใช้ให้คำสั่งที่เฉพาะเจาะจงมากแล้ว
|
|
24
|
+
- งานวิจัย/สำรวจล้วนๆ — ควรใช้ Task (ประเภท Explore)
|
|
25
|
+
|
|
26
|
+
## พฤติกรรมในโหมดวางแผน
|
|
27
|
+
|
|
28
|
+
หลังจากเข้าสู่โหมดวางแผน Claude Code จะ:
|
|
29
|
+
1. ใช้เครื่องมือ Glob, Grep, Read เพื่อสำรวจโค้ดเบสอย่างลึกซึ้ง
|
|
30
|
+
2. ทำความเข้าใจรูปแบบและสถาปัตยกรรมที่มีอยู่
|
|
31
|
+
3. ออกแบบแผนการดำเนินงาน
|
|
32
|
+
4. ส่งแผนให้ผู้ใช้อนุมัติ
|
|
33
|
+
5. ใช้ AskUserQuestion หากต้องการคำชี้แจง
|
|
34
|
+
6. ออกผ่าน ExitPlanMode เมื่อแผนพร้อม
|
|
35
|
+
|
|
36
|
+
## ข้อควรระวัง
|
|
37
|
+
|
|
38
|
+
- เครื่องมือนี้ต้องได้รับความยินยอมจากผู้ใช้เพื่อเข้าสู่โหมดวางแผน
|
|
39
|
+
- หากไม่แน่ใจว่าต้องวางแผนหรือไม่ ให้เลือกวางแผน — การจัดแนวล่วงหน้าดีกว่าการทำงานซ้ำ
|
|
40
|
+
|
|
41
|
+
## ความสำคัญใน cc-viewer
|
|
42
|
+
|
|
43
|
+
การเรียก EnterPlanMode ปรากฏในบันทึกคำร้องขอเป็น content block `tool_use` หลังจากเข้าสู่โหมดวางแผน ลำดับคำร้องขอมักจะเป็นการเรียกเครื่องมือสำรวจ (Glob, Grep, Read) เป็นหลัก จนกว่า ExitPlanMode จะถูกเรียก
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# ExitPlanMode
|
|
2
|
+
|
|
3
|
+
## คำจำกัดความ
|
|
4
|
+
|
|
5
|
+
ออกจากโหมดวางแผนและส่งแผนให้ผู้ใช้อนุมัติ เนื้อหาแผนจะถูกอ่านจากไฟล์แผนที่เขียนไว้ก่อนหน้า
|
|
6
|
+
|
|
7
|
+
## พารามิเตอร์
|
|
8
|
+
|
|
9
|
+
| พารามิเตอร์ | ประเภท | จำเป็น | คำอธิบาย |
|
|
10
|
+
|------|------|------|------|
|
|
11
|
+
| `allowedPrompts` | array | ไม่ | รายการคำอธิบายสิทธิ์ที่จำเป็นสำหรับแผนการดำเนินงาน |
|
|
12
|
+
|
|
13
|
+
แต่ละองค์ประกอบในอาร์เรย์ `allowedPrompts`:
|
|
14
|
+
|
|
15
|
+
| ฟิลด์ | ประเภท | จำเป็น | คำอธิบาย |
|
|
16
|
+
|------|------|------|------|
|
|
17
|
+
| `tool` | enum | ใช่ | เครื่องมือที่ใช้ได้ ปัจจุบันรองรับเฉพาะ `Bash` |
|
|
18
|
+
| `prompt` | string | ใช่ | คำอธิบายเชิงความหมายของการดำเนินงาน (เช่น "run tests", "install dependencies") |
|
|
19
|
+
|
|
20
|
+
## สถานการณ์การใช้งาน
|
|
21
|
+
|
|
22
|
+
**เหมาะสำหรับ:**
|
|
23
|
+
- ในโหมดวางแผน เมื่อแผนเสร็จสมบูรณ์และพร้อมส่งให้ผู้ใช้อนุมัติ
|
|
24
|
+
- ใช้เฉพาะสำหรับงานดำเนินการที่ต้องเขียนโค้ด
|
|
25
|
+
|
|
26
|
+
**ไม่เหมาะสำหรับ:**
|
|
27
|
+
- งานวิจัย/สำรวจล้วนๆ — ไม่จำเป็นต้องออกจากโหมดวางแผน
|
|
28
|
+
- ต้องการถามผู้ใช้ว่า "แผนนี้โอเคไหม?" — นี่คือฟังก์ชันของเครื่องมือนี้เอง อย่าใช้ AskUserQuestion เพื่อถาม
|
|
29
|
+
|
|
30
|
+
## ข้อควรระวัง
|
|
31
|
+
|
|
32
|
+
- เครื่องมือนี้ไม่รับเนื้อหาแผนเป็นพารามิเตอร์ — มันอ่านจากไฟล์แผนที่เขียนไว้ก่อนหน้า
|
|
33
|
+
- ผู้ใช้จะเห็นเนื้อหาของไฟล์แผนเพื่ออนุมัติ
|
|
34
|
+
- อย่าใช้ AskUserQuestion ถามว่า "แผนโอเคไหม?" ก่อนเรียกเครื่องมือนี้ เพราะเป็นการซ้ำซ้อน
|
|
35
|
+
- อย่ากล่าวถึง "แผน" ในคำถาม เพราะผู้ใช้ไม่สามารถเห็นเนื้อหาแผนก่อน ExitPlanMode
|
|
36
|
+
|
|
37
|
+
## ความสำคัญใน cc-viewer
|
|
38
|
+
|
|
39
|
+
การเรียก ExitPlanMode เป็นเครื่องหมายสิ้นสุดขั้นตอนการวางแผน ในบันทึกคำร้องขอ คำร้องขอหลังจากการเรียกนี้มักจะเปลี่ยนเป็นการดำเนินงานเชิงปฏิบัติ (Edit, Write, Bash ฯลฯ)
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Glob
|
|
2
|
+
|
|
3
|
+
## คำจำกัดความ
|
|
4
|
+
|
|
5
|
+
เครื่องมือจับคู่รูปแบบชื่อไฟล์ที่รวดเร็ว รองรับโค้ดเบสทุกขนาด ส่งคืนพาธไฟล์ที่ตรงกันเรียงตามเวลาแก้ไข
|
|
6
|
+
|
|
7
|
+
## พารามิเตอร์
|
|
8
|
+
|
|
9
|
+
| พารามิเตอร์ | ประเภท | จำเป็น | คำอธิบาย |
|
|
10
|
+
|------|------|------|------|
|
|
11
|
+
| `pattern` | string | ใช่ | รูปแบบ glob (เช่น `**/*.js`, `src/**/*.ts`) |
|
|
12
|
+
| `path` | string | ไม่ | ไดเรกทอรีค้นหา ค่าเริ่มต้นคือไดเรกทอรีทำงานปัจจุบัน อย่าส่ง "undefined" หรือ "null" |
|
|
13
|
+
|
|
14
|
+
## สถานการณ์การใช้งาน
|
|
15
|
+
|
|
16
|
+
**เหมาะสำหรับ:**
|
|
17
|
+
- ค้นหาไฟล์ตามรูปแบบชื่อ
|
|
18
|
+
- ค้นหาไฟล์ทั้งหมดของประเภทเฉพาะ (เช่น ไฟล์ `.tsx` ทั้งหมด)
|
|
19
|
+
- ระบุตำแหน่งไฟล์เมื่อค้นหาคำจำกัดความคลาสเฉพาะ (เช่น `class Foo`)
|
|
20
|
+
- สามารถเรียก Glob หลายครั้งพร้อมกันในข้อความเดียว
|
|
21
|
+
|
|
22
|
+
**ไม่เหมาะสำหรับ:**
|
|
23
|
+
- ค้นหาเนื้อหาไฟล์ — ควรใช้ Grep
|
|
24
|
+
- การสำรวจแบบเปิดที่ต้องค้นหาหลายรอบ — ควรใช้ Task (ประเภท Explore)
|
|
25
|
+
|
|
26
|
+
## ข้อควรระวัง
|
|
27
|
+
|
|
28
|
+
- รองรับไวยากรณ์ glob มาตรฐาน: `*` จับคู่ระดับเดียว, `**` จับคู่หลายระดับ, `{}` จับคู่หลายตัวเลือก
|
|
29
|
+
- ผลลัพธ์เรียงตามเวลาแก้ไข
|
|
30
|
+
- แนะนำให้ใช้มากกว่าคำสั่ง `find` ของ Bash
|
|
31
|
+
|
|
32
|
+
## ความสำคัญใน cc-viewer
|
|
33
|
+
|
|
34
|
+
การเรียก Glob ปรากฏในบันทึกคำร้องขอเป็นคู่ content block `tool_use` / `tool_result` โดย `tool_result` มีรายการพาธไฟล์ที่ตรงกัน
|