@@ -784,18 +784,30 @@ function attemptJSONFix(
784784 < h3 className = "text-xl font-semibold text-heading mb-4" > 错误类型定义</ h3 >
785785 < CodeBlock code = { errorTypesCode } language = "typescript" title = "自定义错误类" />
786786
787- < div className = "mt-4 bg-surface rounded-lg p-4" >
788- < h4 className = "font-semibold text-heading mb-2" > 错误类型层级</ h4 >
789- < pre className = "text-sm text-body" >
790- { `CLIError (基类)
791- ├── APIError - API 调用错误 (状态码、响应)
792- ├── AuthenticationError - 认证错误 (登录失败)
793- ├── ToolExecutionError - 工具执行错误 (Shell、文件操作)
794- ├── ConfigurationError - 配置错误 (无效配置)
795- ├── NetworkError - 网络错误 (连接失败)
796- └── TimeoutError - 超时错误 (操作超时)` }
797- </ pre >
798- </ div >
787+ < MermaidDiagram chart = { `graph TD
788+ CLIError["CLIError<br/>基类"]
789+ APIError["APIError<br/>API 调用错误<br/>状态码、响应"]
790+ AuthError["AuthenticationError<br/>认证错误<br/>登录失败"]
791+ ToolError["ToolExecutionError<br/>工具执行错误<br/>Shell、文件操作"]
792+ ConfigError["ConfigurationError<br/>配置错误<br/>无效配置"]
793+ NetworkError["NetworkError<br/>网络错误<br/>连接失败"]
794+ TimeoutError["TimeoutError<br/>超时错误<br/>操作超时"]
795+
796+ CLIError --> APIError
797+ CLIError --> AuthError
798+ CLIError --> ToolError
799+ CLIError --> ConfigError
800+ CLIError --> NetworkError
801+ CLIError --> TimeoutError
802+
803+ style CLIError fill:${ getThemeColor ( "--mermaid-info-fill" , "#dbeafe" ) } ,color:${ getThemeColor ( "--color-text" , "#1c1917" ) }
804+ style APIError fill:${ getThemeColor ( "--mermaid-danger-fill" , "#fee2e2" ) } ,color:${ getThemeColor ( "--color-text" , "#1c1917" ) }
805+ style AuthError fill:${ getThemeColor ( "--mermaid-warning-fill" , "#fef3c7" ) } ,color:${ getThemeColor ( "--color-text" , "#1c1917" ) }
806+ style ToolError fill:${ getThemeColor ( "--mermaid-danger-fill" , "#fee2e2" ) } ,color:${ getThemeColor ( "--color-text" , "#1c1917" ) }
807+ style ConfigError fill:${ getThemeColor ( "--mermaid-warning-fill" , "#fef3c7" ) } ,color:${ getThemeColor ( "--color-text" , "#1c1917" ) }
808+ style NetworkError fill:${ getThemeColor ( "--mermaid-danger-fill" , "#fee2e2" ) } ,color:${ getThemeColor ( "--color-text" , "#1c1917" ) }
809+ style TimeoutError fill:${ getThemeColor ( "--mermaid-warning-fill" , "#fef3c7" ) } ,color:${ getThemeColor ( "--color-text" , "#1c1917" ) }
810+ ` } title = "错误类型层级" />
799811 </ section >
800812
801813 { /* 错误分类器 */ }
@@ -931,62 +943,51 @@ function attemptJSONFix(
931943 { /* 架构图 */ }
932944 < section >
933945 < h3 className = "text-xl font-semibold text-heading mb-4" > 错误处理架构</ h3 >
934- < div className = "bg-surface rounded-lg p-6" >
935- < pre className = "text-sm text-body overflow-x-auto" >
936- { `┌──────────────────────────────────────────────────────────────────┐
937- │ Error Sources │
938- │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
939- │ │ API │ │ Tool │ │ Network │ │ UI │ │
940- │ │ Calls │ │ Execute │ │ Request │ │ Render │ │
941- │ └────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘ │
942- │ │ │ │ │ │
943- └───────┼────────────┼────────────┼────────────┼───────────────────┘
944- │ │ │ │
945- └────────────┴────────────┴────────────┘
946- │
947- ▼
948- ┌──────────────────────────────────────────────────────────────────┐
949- │ Error Capture Layer │
950- │ ┌───────────────────┐ ┌───────────────────┐ │
951- │ │ Try-Catch │ │ Error Boundary │ │
952- │ │ (Sync/Async) │ │ (React UI) │ │
953- │ └─────────┬─────────┘ └─────────┬─────────┘ │
954- │ │ │ │
955- │ └──────────┬───────────┘ │
956- │ │ │
957- │ ┌────────────────────▼──────────────────────┐ │
958- │ │ Global Error Handler │ │
959- │ │ unhandledRejection | uncaughtException │ │
960- │ └────────────────────┬──────────────────────┘ │
961- │ │ │
962- └───────────────────────┼──────────────────────────────────────────┘
963- │
964- ▼
965- ┌──────────────────────────────────────────────────────────────────┐
966- │ Error Classification │
967- │ ┌──────────────────────────────────────────────────────────┐ │
968- │ │ Error Classifier │ │
969- │ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │
970- │ │ │ Category │ │ Severity │ │Recoverable│ │ Action │ │ │
971- │ │ │ API │ │ MEDIUM │ │ true │ │ RETRY │ │ │
972- │ │ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │ │
973- │ └──────────────────────────────────────────────────────────┘ │
974- │ │
975- └───────────────────────┬──────────────────────────────────────────┘
976- │
977- ┌───────────────┴───────────────┐
978- │ │
979- ▼ ▼
980- ┌───────────────────┐ ┌───────────────────┐
981- │ Recovery Handler │ │ Error Reporter │
982- │ ┌───────────────┐ │ │ ┌───────────────┐ │
983- │ │ Retry Logic │ │ │ │ User Display │ │
984- │ │ Fallback │ │ │ │ File Logging │ │
985- │ │ State Reset │ │ │ │ Telemetry │ │
986- │ └───────────────┘ │ │ └───────────────┘ │
987- └───────────────────┘ └───────────────────┘` }
988- </ pre >
989- </ div >
946+ < MermaidDiagram chart = { `flowchart TD
947+ subgraph Sources["Error Sources"]
948+ API["API Calls"]
949+ Tool["Tool Execute"]
950+ Network["Network Request"]
951+ UI["UI Render"]
952+ end
953+
954+ subgraph Capture["Error Capture Layer"]
955+ TryCatch["Try-Catch<br/>Sync/Async"]
956+ ErrorBoundary["Error Boundary<br/>React UI"]
957+ TryCatch --> GlobalHandler
958+ ErrorBoundary --> GlobalHandler
959+ GlobalHandler["Global Error Handler<br/>unhandledRejection | uncaughtException"]
960+ end
961+
962+ subgraph Classification["Error Classification"]
963+ Classifier["Error Classifier"]
964+ Category["Category: API"]
965+ Severity["Severity: MEDIUM"]
966+ Recoverable["Recoverable: true"]
967+ Action["Action: RETRY"]
968+ Classifier --> Category
969+ Classifier --> Severity
970+ Classifier --> Recoverable
971+ Classifier --> Action
972+ end
973+
974+ Recovery["Recovery Handler<br/>Retry Logic<br/>Fallback<br/>State Reset"]
975+ Reporter["Error Reporter<br/>User Display<br/>File Logging<br/>Telemetry"]
976+
977+ API --> Capture
978+ Tool --> Capture
979+ Network --> Capture
980+ UI --> Capture
981+ GlobalHandler --> Classification
982+ Classifier --> Recovery
983+ Classifier --> Reporter
984+
985+ style Sources fill:${ getThemeColor ( "--mermaid-danger-fill" , "#fee2e2" ) } ,color:${ getThemeColor ( "--color-text" , "#1c1917" ) }
986+ style Capture fill:${ getThemeColor ( "--mermaid-warning-fill" , "#fef3c7" ) } ,color:${ getThemeColor ( "--color-text" , "#1c1917" ) }
987+ style Classification fill:${ getThemeColor ( "--mermaid-info-fill" , "#dbeafe" ) } ,color:${ getThemeColor ( "--color-text" , "#1c1917" ) }
988+ style Recovery fill:${ getThemeColor ( "--mermaid-success-fill" , "#dcfce7" ) } ,color:${ getThemeColor ( "--color-text" , "#1c1917" ) }
989+ style Reporter fill:${ getThemeColor ( "--mermaid-purple-fill" , "#ede9fe" ) } ,color:${ getThemeColor ( "--color-text" , "#1c1917" ) }
990+ ` } title = "错误处理架构" />
990991 </ section >
991992
992993 { /* 失败场景速查表 */ }
0 commit comments