witty-diagnosis-agent 0.1.0-beta → 0.3.0-beta

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.
Files changed (264) hide show
  1. package/LICENSE +68 -21
  2. package/README.md +64 -98
  3. package/dist/{auto-update-checker-6YCUJMDH.js → auto-update-checker-SCZAPT6L.js} +2 -2
  4. package/dist/{chunk-JIUFBEQZ.js → chunk-IT2KU4QQ.js} +36 -56
  5. package/dist/{chunk-ML545FPN.js → chunk-VGS3BNP5.js} +249 -678
  6. package/dist/{chunk-7T4NFQTD.js → chunk-YVNTYBPS.js} +1 -1
  7. package/dist/{cli/index.js → cli.js} +201 -141
  8. package/dist/index.d.ts +187 -1365
  9. package/dist/index.js +3819 -9624
  10. package/dist/{logger-V4SUMWDN.js → logger-MRHLLIHC.js} +1 -1
  11. package/dist/{oh-my-opencode.schema.json → witty-diagnosis-agent.schema.json} +14 -1546
  12. package/package.json +6 -6
  13. package/postinstall.mjs +1 -1
  14. package/skills/disk-health-diagnosis/SKILL.md +263 -0
  15. package/skills/disk-health-diagnosis/references/huawei_ibmc.md +606 -0
  16. package/skills/disk-health-diagnosis/references/ibmc_paths.md +78 -0
  17. package/skills/disk-health-diagnosis/references/infocollect_guide.md +154 -0
  18. package/skills/disk-health-diagnosis/references/smart_disk_health_diagnosis_guide.md +301 -0
  19. package/skills/disk-health-diagnosis/references/thresholds.md +186 -0
  20. package/skills/disk-health-diagnosis/scripts/disk_score.sh +273 -0
  21. package/skills/disk-health-diagnosis/scripts/env_link_diagnosis.py +256 -0
  22. package/skills/disk-health-diagnosis/scripts/os_io_error_diagnosis.py +210 -0
  23. package/skills/disk-health-diagnosis/scripts/smart_diagnosis.py +509 -0
  24. package/skills/docker-fault-analysis/SKILL.md +316 -0
  25. package/skills/docker-fault-analysis/references/kernel_syscall.md +148 -0
  26. package/skills/docker-fault-analysis/references/log_time.md +164 -0
  27. package/skills/docker-fault-analysis/references/network_iptables.md +164 -0
  28. package/skills/docker-fault-analysis/references/resource_oom.md +146 -0
  29. package/skills/docker-fault-analysis/references/security_selinux.md +166 -0
  30. package/skills/docker-fault-analysis/references/storage_overlay.md +159 -0
  31. package/skills/docker-fault-analysis/scripts/diag_env.sh +76 -0
  32. package/skills/docker-fault-analysis/scripts/diag_full.sh +77 -0
  33. package/skills/docker-fault-analysis/scripts/diag_kernel.sh +154 -0
  34. package/skills/docker-fault-analysis/scripts/diag_logtime.sh +190 -0
  35. package/skills/docker-fault-analysis/scripts/diag_network.sh +179 -0
  36. package/skills/docker-fault-analysis/scripts/diag_resource.sh +186 -0
  37. package/skills/docker-fault-analysis/scripts/diag_security.sh +173 -0
  38. package/skills/docker-fault-analysis/scripts/diag_storage.sh +203 -0
  39. package/skills/fault-model/SKILL.md +38 -0
  40. package/skills/fault-rca-report-generation/SKILL.md +222 -0
  41. package/skills/grub-ibmc-diagnosis/SKILL.md +490 -0
  42. package/skills/grub-ibmc-diagnosis/references/h3c_ibmc.md +1012 -0
  43. package/skills/{disk-diagnosis-by-log → grub-ibmc-diagnosis}/references/huawei_ibmc.md +0 -0
  44. package/skills/grub-ibmc-diagnosis/references/inspur_ibmc.md +735 -0
  45. package/skills/grub-ibmc-diagnosis/scripts/h3c/step1_timeline_builder.sh +65 -0
  46. package/skills/grub-ibmc-diagnosis/scripts/h3c/step2_hardware_check.sh +92 -0
  47. package/skills/grub-ibmc-diagnosis/scripts/h3c/step3_grub_os_check.sh +79 -0
  48. package/skills/grub-ibmc-diagnosis/scripts/h3c/step4_summary.py +168 -0
  49. package/skills/grub-ibmc-diagnosis/scripts/huawei/step1_timeline_builder.sh +62 -0
  50. package/skills/grub-ibmc-diagnosis/scripts/huawei/step2_hardware_check.sh +62 -0
  51. package/skills/grub-ibmc-diagnosis/scripts/huawei/step3_grub_os_check.sh +77 -0
  52. package/skills/grub-ibmc-diagnosis/scripts/huawei/step4_summary.py +147 -0
  53. package/skills/grub-ibmc-diagnosis/scripts/inspur/step1_timeline_builder.sh +89 -0
  54. package/skills/grub-ibmc-diagnosis/scripts/inspur/step2_hardware_check.sh +79 -0
  55. package/skills/grub-ibmc-diagnosis/scripts/inspur/step3_grub_os_check.sh +76 -0
  56. package/skills/grub-ibmc-diagnosis/scripts/inspur/step4_summary.py +192 -0
  57. package/skills/health-inspection-report-generation/SKILL.md +208 -0
  58. package/skills/linux-security-diagnosis/SKILL.md +161 -0
  59. package/skills/linux-security-diagnosis/references/s1_auth.md +274 -0
  60. package/skills/linux-security-diagnosis/references/s2_permission.md +88 -0
  61. package/skills/linux-security-diagnosis/references/s3_network.md +56 -0
  62. package/skills/linux-security-diagnosis/references/s4_audit.md +93 -0
  63. package/skills/linux-security-diagnosis/references/s5_selinux.md +154 -0
  64. package/skills/linux-security-diagnosis/references/s6_account.md +230 -0
  65. package/skills/linux-security-diagnosis/references/s7_kernel.md +101 -0
  66. package/skills/linux-security-diagnosis/scripts/collect_account_abuse.sh +182 -0
  67. package/skills/linux-security-diagnosis/scripts/collect_all.sh +70 -0
  68. package/skills/linux-security-diagnosis/scripts/collect_audit.sh +140 -0
  69. package/skills/linux-security-diagnosis/scripts/collect_auth.sh +144 -0
  70. package/skills/linux-security-diagnosis/scripts/collect_kernel.sh +137 -0
  71. package/skills/linux-security-diagnosis/scripts/collect_network.sh +110 -0
  72. package/skills/linux-security-diagnosis/scripts/collect_permission.sh +101 -0
  73. package/skills/linux-security-diagnosis/scripts/collect_selinux.sh +115 -0
  74. package/skills/network-diagnosis/scripts/collect_snapshot.sh +1 -1
  75. package/skills/offline-CPU-fault-diagnosis/SKILL.md +309 -0
  76. package/skills/offline-CPU-fault-diagnosis/references/CPU_fault_scenarios.md +21 -0
  77. package/skills/offline-CPU-fault-diagnosis/references/CPU_scenario_analysis.md +110 -0
  78. package/skills/offline-CPU-fault-diagnosis/references/Inspur_ibmc.md +735 -0
  79. package/skills/offline-CPU-fault-diagnosis/references/h3c_ibmc.md +1012 -0
  80. package/skills/offline-CPU-fault-diagnosis/references/huawei_ibmc.md +595 -0
  81. package/skills/offline-CPU-fault-diagnosis/scripts/diagnose_cpu.py +712 -0
  82. package/skills/offline-CPU-fault-diagnosis/scripts/diagnose_ibmc.py +490 -0
  83. package/skills/offline-CPU-fault-diagnosis/scripts/diagnose_infocollect.py +725 -0
  84. package/skills/offline-CPU-fault-diagnosis/scripts/diagnose_messages.py +521 -0
  85. package/skills/offline-CPU-fault-diagnosis/scripts/diagnose_summary.py +349 -0
  86. package/skills/offline-GPU-fault-diagnosis/SKILL.md +291 -0
  87. package/skills/offline-GPU-fault-diagnosis/references/GPU_fault_scenarios.md +11 -0
  88. package/skills/offline-GPU-fault-diagnosis/references/GPU_scenario_analysis.md +88 -0
  89. package/skills/offline-GPU-fault-diagnosis/references/Inspur_ibmc.md +735 -0
  90. package/skills/offline-GPU-fault-diagnosis/references/XID_error_codes.md +30 -0
  91. package/skills/offline-GPU-fault-diagnosis/references/h3c_ibmc.md +1012 -0
  92. package/skills/offline-GPU-fault-diagnosis/references/huawei_ibmc.md +595 -0
  93. package/skills/offline-GPU-fault-diagnosis/references/infocollect_guide.md +131 -0
  94. package/skills/offline-GPU-fault-diagnosis/references/messages.md +341 -0
  95. package/skills/{disk-diagnosis-by-log → offline-GPU-fault-diagnosis}/scripts/diagnose_summary.py +4 -0
  96. package/skills/offline-NPU-fault-diagnosis/SKILL.md +302 -0
  97. package/skills/offline-NPU-fault-diagnosis/references/Inspur_ibmc.md +735 -0
  98. package/skills/offline-NPU-fault-diagnosis/references/NPU_fault_scenarios.md +11 -0
  99. package/skills/offline-NPU-fault-diagnosis/references/NPU_scenario_analysis.md +52 -0
  100. package/skills/offline-NPU-fault-diagnosis/references/h3c_ibmc.md +1012 -0
  101. package/skills/offline-NPU-fault-diagnosis/references/huawei_ibmc.md +595 -0
  102. package/skills/offline-NPU-fault-diagnosis/references/infocollect_guide.md +131 -0
  103. package/skills/offline-NPU-fault-diagnosis/references/messages.md +341 -0
  104. package/skills/offline-NPU-fault-diagnosis/scripts/diagnose_ibmc.py +316 -0
  105. package/skills/offline-NPU-fault-diagnosis/scripts/diagnose_infocollect.py +479 -0
  106. package/skills/offline-NPU-fault-diagnosis/scripts/diagnose_messages.py +293 -0
  107. package/skills/offline-NPU-fault-diagnosis/scripts/diagnose_summary.py +169 -0
  108. package/skills/offline-disk-fault-diagnosis/SKILL.md +305 -0
  109. package/skills/offline-disk-fault-diagnosis/references/DISK_fault_scenarios.md +12 -0
  110. package/skills/offline-disk-fault-diagnosis/references/DISK_scenario_analysis.md +146 -0
  111. package/skills/offline-disk-fault-diagnosis/references/Inspur_ibmc.md +735 -0
  112. package/skills/offline-disk-fault-diagnosis/references/h3c_ibmc.md +1012 -0
  113. package/skills/offline-disk-fault-diagnosis/references/huawei_ibmc.md +595 -0
  114. package/skills/offline-disk-fault-diagnosis/references/infocollect_guide.md +131 -0
  115. package/skills/offline-disk-fault-diagnosis/references/messages.md +341 -0
  116. package/skills/offline-disk-fault-diagnosis/scripts/diagnose_ibmc.py +316 -0
  117. package/skills/offline-disk-fault-diagnosis/scripts/diagnose_infocollect.py +479 -0
  118. package/skills/offline-disk-fault-diagnosis/scripts/diagnose_messages.py +293 -0
  119. package/skills/offline-disk-fault-diagnosis/scripts/diagnose_summary.py +169 -0
  120. package/skills/offline-file-system-fault-diagnosis/SKILL.md +297 -0
  121. package/skills/offline-file-system-fault-diagnosis/references/FS_fault_scenarios.md +12 -0
  122. package/skills/offline-file-system-fault-diagnosis/references/FS_scenario_analysis.md +84 -0
  123. package/skills/offline-file-system-fault-diagnosis/references/Inspur_ibmc.md +735 -0
  124. package/skills/offline-file-system-fault-diagnosis/references/h3c_ibmc.md +1012 -0
  125. package/skills/offline-file-system-fault-diagnosis/references/huawei_ibmc.md +595 -0
  126. package/skills/offline-file-system-fault-diagnosis/references/infocollect_guide.md +131 -0
  127. package/skills/offline-file-system-fault-diagnosis/references/messages.md +341 -0
  128. package/skills/offline-file-system-fault-diagnosis/scripts/diagnose_ibmc.py +316 -0
  129. package/skills/offline-file-system-fault-diagnosis/scripts/diagnose_infocollect.py +560 -0
  130. package/skills/offline-file-system-fault-diagnosis/scripts/diagnose_messages.py +328 -0
  131. package/skills/offline-file-system-fault-diagnosis/scripts/diagnose_summary.py +173 -0
  132. package/skills/offline-memory-fault-diagnosis/SKILL.md +309 -0
  133. package/skills/offline-memory-fault-diagnosis/references/Inspur_ibmc.md +735 -0
  134. package/skills/offline-memory-fault-diagnosis/references/MEMORY_fault_scenarios.md +13 -0
  135. package/skills/offline-memory-fault-diagnosis/references/MEMORY_scenario_analysis.md +111 -0
  136. package/skills/offline-memory-fault-diagnosis/references/h3c_ibmc.md +1012 -0
  137. package/skills/offline-memory-fault-diagnosis/references/huawei_ibmc.md +595 -0
  138. package/skills/offline-memory-fault-diagnosis/references/infocollect_guide.md +131 -0
  139. package/skills/offline-memory-fault-diagnosis/references/messages.md +341 -0
  140. package/skills/offline-memory-fault-diagnosis/scripts/diagnose_ibmc.py +233 -0
  141. package/skills/offline-memory-fault-diagnosis/scripts/diagnose_infocollect.py +213 -0
  142. package/skills/offline-memory-fault-diagnosis/scripts/diagnose_memory.py +179 -0
  143. package/skills/offline-memory-fault-diagnosis/scripts/diagnose_messages.py +178 -0
  144. package/skills/offline-memory-fault-diagnosis/scripts/diagnose_summary.py +264 -0
  145. package/skills/offline-network-hardware-fault-diagnosis/SKILL.md +232 -0
  146. package/skills/offline-network-hardware-fault-diagnosis/references/Inspur_ibmc.md +735 -0
  147. package/skills/offline-network-hardware-fault-diagnosis/references/h3c_ibmc.md +1012 -0
  148. package/skills/offline-network-hardware-fault-diagnosis/references/huawei_ibmc.md +595 -0
  149. package/skills/offline-network-hardware-fault-diagnosis/references/infocollect_guide.md +131 -0
  150. package/skills/offline-network-hardware-fault-diagnosis/references/messages.md +341 -0
  151. package/skills/offline-network-hardware-fault-diagnosis/references/network_fault_scenarios.md +14 -0
  152. package/skills/offline-network-hardware-fault-diagnosis/references/network_scenario_analysis.md +95 -0
  153. package/skills/offline-network-hardware-fault-diagnosis/scripts/diagnose_ibmc.py +161 -0
  154. package/skills/offline-network-hardware-fault-diagnosis/scripts/diagnose_infocollect.py +149 -0
  155. package/skills/offline-network-hardware-fault-diagnosis/scripts/diagnose_messages.py +156 -0
  156. package/skills/offline-network-hardware-fault-diagnosis/scripts/diagnose_network.py +231 -0
  157. package/skills/offline-network-hardware-fault-diagnosis/scripts/diagnose_summary.py +225 -0
  158. package/skills/offline-power-fault-diagnosis/SKILL.md +308 -0
  159. package/skills/offline-power-fault-diagnosis/references/Inspur_ibmc.md +735 -0
  160. package/skills/offline-power-fault-diagnosis/references/Power_fault_scenarios.md +12 -0
  161. package/skills/offline-power-fault-diagnosis/references/Power_scenario_analysis.md +171 -0
  162. package/skills/offline-power-fault-diagnosis/references/h3c_ibmc.md +1012 -0
  163. package/skills/offline-power-fault-diagnosis/references/huawei_ibmc.md +595 -0
  164. package/skills/offline-power-fault-diagnosis/references/infocollect_guide.md +131 -0
  165. package/skills/offline-power-fault-diagnosis/references/messages.md +341 -0
  166. package/skills/offline-power-fault-diagnosis/scripts/diagnose_ibmc.py +343 -0
  167. package/skills/offline-power-fault-diagnosis/scripts/diagnose_infocollect.py +333 -0
  168. package/skills/offline-power-fault-diagnosis/scripts/diagnose_messages.py +361 -0
  169. package/skills/offline-power-fault-diagnosis/scripts/diagnose_power.py +282 -0
  170. package/skills/offline-power-fault-diagnosis/scripts/diagnose_summary.py +332 -0
  171. package/skills/online-cpu-scheduling-diagnosis/SKILL.md +518 -0
  172. package/skills/online-cpu-scheduling-diagnosis/scripts/collect_basic_info.sh +658 -0
  173. package/skills/online-file-system-fault-diagnosis/SKILL.md +424 -0
  174. package/skills/online-file-system-fault-diagnosis/scripts/collect_filesystem_info.sh +612 -0
  175. package/skills/os-restart-diagnosis/SKILL.md +185 -0
  176. package/skills/os-restart-diagnosis/scripts/core_diag_full.sh +83 -0
  177. package/skills/os-restart-diagnosis/scripts/diag_crash.sh +19 -0
  178. package/skills/os-restart-diagnosis/scripts/diag_fault.sh +24 -0
  179. package/skills/os-restart-diagnosis/scripts/diag_guard.sh +51 -0
  180. package/skills/os-restart-diagnosis/scripts/diag_human.sh +53 -0
  181. package/skills/os-restart-diagnosis/scripts/diag_power.sh +22 -0
  182. package/skills/skill-service-check/SKILL.md +56 -0
  183. package/skills/skill-service-check/scripts/check_services.sh +66 -0
  184. package/skills/system-resource-diagnosis/SKILL.md +379 -0
  185. package/skills/system-resource-diagnosis/scripts/collect_resource_info.sh +569 -0
  186. package/skills/time-sync-diagnosis/SKILL.md +181 -0
  187. package/skills/time-sync-diagnosis/scripts/drill_down_control.sh +23 -0
  188. package/skills/time-sync-diagnosis/scripts/drill_down_kernel.sh +16 -0
  189. package/skills/time-sync-diagnosis/scripts/drill_down_mgmt.sh +74 -0
  190. package/skills/time-sync-diagnosis/scripts/drill_down_network.sh +93 -0
  191. package/skills/time-sync-diagnosis/scripts/drill_down_protocol.sh +30 -0
  192. package/skills/time-sync-diagnosis/scripts/time_master_diag.sh +125 -0
  193. package/skills/vmcore-analysis/SKILL.md +46 -26
  194. package/skills/config-manager/SKILL.md +0 -718
  195. package/skills/config-manager/examples/update-service-config.md +0 -377
  196. package/skills/config-manager/examples/validate-configuration.md +0 -449
  197. package/skills/config-manager/tests/test-config-manager.md +0 -674
  198. package/skills/controlled-repair/SKILL.md +0 -798
  199. package/skills/controlled-repair/examples/restart-service-safely.md +0 -502
  200. package/skills/controlled-repair/examples/rollback-configuration.md +0 -727
  201. package/skills/controlled-repair/tests/test-controlled-repair.md +0 -947
  202. package/skills/data-collector/SKILL.md +0 -677
  203. package/skills/data-collector/examples/collect-metrics.md +0 -265
  204. package/skills/data-collector/examples/collect-system-logs.md +0 -161
  205. package/skills/data-collector/tests/test-data-collection.md +0 -400
  206. package/skills/disk-diagnosis-by-log/SKILL.md +0 -266
  207. package/skills/fault-background-info/SKILL.md +0 -38
  208. package/skills/fault-background-info/references/disk_fault.md +0 -46
  209. package/skills/fault-background-info/references/openrca.md +0 -40
  210. package/skills/fault-background-info/references/super_node.md +0 -75
  211. package/skills/fault-background-info/scripts/log_fetcher.py +0 -409
  212. package/skills/fault-delimitation/SKILL.md +0 -249
  213. package/skills/fault-delimitation/scripts/base.py +0 -41
  214. package/skills/fault-delimitation/scripts/data_loader.py +0 -866
  215. package/skills/fault-delimitation/scripts/log_tool.py +0 -409
  216. package/skills/fault-delimitation/scripts/metric_adapter.py +0 -181
  217. package/skills/fault-delimitation/scripts/metric_tool.py +0 -1401
  218. package/skills/fault-delimitation/scripts/schema.py +0 -12
  219. package/skills/fault-delimitation/scripts/time_utils.py +0 -32
  220. package/skills/fault-delimitation/scripts/trace_tool.py +0 -700
  221. package/skills/fault-intelligent-positioning/SKILL.md +0 -56
  222. package/skills/fault-intelligent-positioning/references/output_report_template.md +0 -51
  223. package/skills/fault-localization/SKILL.md +0 -570
  224. package/skills/fault-localization/examples/identify-impact-scope.md +0 -529
  225. package/skills/fault-localization/examples/locate-service-failure.md +0 -898
  226. package/skills/intelligent-inspection/SKILL.md +0 -768
  227. package/skills/intelligent-inspection/examples/daily-system-check.md +0 -585
  228. package/skills/intelligent-inspection/examples/performance-inspection.md +0 -884
  229. package/skills/intelligent-inspection/tests/test-intelligent-inspection.md +0 -1128
  230. package/skills/knowledge-base/SKILL.md +0 -780
  231. package/skills/knowledge-base/examples/add-failure-pattern.md +0 -489
  232. package/skills/knowledge-base/examples/search-solutions.md +0 -605
  233. package/skills/knowledge-base/tests/test-knowledge-base.md +0 -813
  234. package/skills/log-analyzer/SKILL.md +0 -912
  235. package/skills/log-analyzer/examples/analyze-error-logs.md +0 -580
  236. package/skills/log-analyzer/examples/detect-anomaly-patterns.md +0 -850
  237. package/skills/log-analyzer/tests/test-log-analyzer.md +0 -904
  238. package/skills/memory-anomaly-diagnosis/SKILL.md +0 -136
  239. package/skills/memory-anomaly-diagnosis/scripts/start_gdb_trap.sh +0 -65
  240. package/skills/memory-anomaly-diagnosis/scripts/start_monitor.sh +0 -41
  241. package/skills/memory-anomaly-diagnosis/scripts/strace_analyze.sh +0 -52
  242. package/skills/metric-analyzer/SKILL.md +0 -788
  243. package/skills/metric-analyzer/examples/analyze-metric-trends.md +0 -530
  244. package/skills/metric-analyzer/examples/monitor-cpu-usage.md +0 -357
  245. package/skills/metric-analyzer/tests/test-metric-analyzer.md +0 -833
  246. package/skills/oom_params_and_troubleshooting/SKILL.md +0 -208
  247. package/skills/oom_params_and_troubleshooting/references/13_oom_/347/233/270/345/205/263/345/217/202/346/225/260/351/205/215/347/275/256/344/270/216/345/216/237/345/233/240/346/216/222/346/237/245.md +0 -104
  248. package/skills/oom_params_and_troubleshooting/references/index.md +0 -11
  249. package/skills/oom_params_and_troubleshooting/scripts/README.md +0 -48
  250. package/skills/oom_params_and_troubleshooting/scripts/collect_oom_diagnostics.sh +0 -90
  251. package/skills/trace-analyzer/SKILL.md +0 -816
  252. package/skills/trace-analyzer/examples/identify-bottlenecks.md +0 -537
  253. package/skills/trace-analyzer/examples/trace-service-calls.md +0 -380
  254. package/skills/trace-analyzer/tests/test-trace-analyzer.md +0 -687
  255. package/skills/using-witty-diagnosis-agent/SKILL.md +0 -105
  256. package/skills/void-gateway-sop/SKILL.md +0 -86
  257. /package/dist/{cli/index.d.ts → cli.d.ts} +0 -0
  258. /package/skills/{disk-diagnosis-by-log → disk-health-diagnosis}/references/Inspur_ibmc.md +0 -0
  259. /package/skills/{disk-diagnosis-by-log → disk-health-diagnosis}/references/h3c_ibmc.md +0 -0
  260. /package/skills/{disk-diagnosis-by-log → offline-CPU-fault-diagnosis}/references/infocollect_guide.md +0 -0
  261. /package/skills/{disk-diagnosis-by-log → offline-CPU-fault-diagnosis}/references/messages.md +0 -0
  262. /package/skills/{disk-diagnosis-by-log → offline-GPU-fault-diagnosis}/scripts/diagnose_ibmc.py +0 -0
  263. /package/skills/{disk-diagnosis-by-log → offline-GPU-fault-diagnosis}/scripts/diagnose_infocollect.py +0 -0
  264. /package/skills/{disk-diagnosis-by-log → offline-GPU-fault-diagnosis}/scripts/diagnose_messages.py +0 -0
package/LICENSE CHANGED
@@ -1,21 +1,68 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 Huawei
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ License
2
+ Portions of this software are licensed as follows:
3
+
4
+ All third party components incorporated into the software are licensed under the original license
5
+ provided by the owner of the applicable component.
6
+ Content outside of the above mentioned files or restrictions is available under the "Sustainable Use
7
+ License" as defined below.
8
+
9
+ Sustainable Use License
10
+ Version 1.0
11
+
12
+ Acceptance
13
+ By using the software, you agree to all of the terms and conditions below.
14
+
15
+ Copyright License
16
+ The licensor grants you a non-exclusive, royalty-free, worldwide, non-sublicensable, non-transferable license
17
+ to use, copy, distribute, make available, and prepare derivative works of the software, in each case subject
18
+ to the limitations below.
19
+
20
+ Limitations
21
+ You may use or modify the software only for your own internal business purposes or for non-commercial or
22
+ personal use. You may distribute the software or provide it to others only if you do so free of charge for
23
+ non-commercial purposes. You may not alter, remove, or obscure any licensing, copyright, or other notices of
24
+ the licensor in the software. Any use of the licensor's trademarks is subject to applicable law.
25
+
26
+ Patents
27
+ The licensor grants you a license, under any patent claims the licensor can license, or becomes able to
28
+ license, to make, have made, use, sell, offer for sale, import and have imported the software, in each case
29
+ subject to the limitations and conditions in this license. This license does not cover any patent claims that
30
+ you cause to be infringed by modifications or additions to the software. If you or your company make any
31
+ written claim that the software infringes or contributes to infringement of any patent, your patent license
32
+ for the software granted under these terms ends immediately. If your company makes such a claim, your patent
33
+ license ends immediately for work on behalf of your company.
34
+
35
+ Notices
36
+ You must ensure that anyone who gets a copy of any part of the software from you also gets a copy of these
37
+ terms. If you modify the software, you must include in any modified copies of the software a prominent notice
38
+ stating that you have modified the software.
39
+
40
+ No Other Rights
41
+ These terms do not imply any licenses other than those expressly granted in these terms.
42
+
43
+ Termination
44
+ If you use the software in violation of these terms, such use is not licensed, and your license will
45
+ automatically terminate. If the licensor provides you with a notice of your violation, and you cease all
46
+ violation of this license no later than 30 days after you receive that notice, your license will be reinstated
47
+ retroactively. However, if you violate these terms after such reinstatement, any additional violation of these
48
+ terms will cause your license to terminate automatically and permanently.
49
+
50
+ No Liability
51
+ As far as the law allows, the software comes as is, without any warranty or condition, and the licensor will
52
+ not be liable to you for any damages arising out of these terms or the use or nature of the software, under
53
+ any kind of legal claim.
54
+
55
+ Definitions
56
+ The "licensor" is the entity offering these terms.
57
+ The "software" is the software the licensor makes available under these terms, including any portion of it.
58
+ "You" refers to the individual or entity agreeing to these terms.
59
+ "Your company" is any legal entity, sole proprietorship, or other kind of organization that you work for, plus
60
+ all organizations that have control over, are under the control of, or are under common control with that
61
+ organization. Control means ownership of substantially all the assets of an entity, or the power to direct its
62
+ management and policies by vote, contract, or otherwise. Control can be direct or indirect.
63
+ "Your license" is the license granted to you for the software under these terms.
64
+ "Use" means anything you do with the software requiring your license.
65
+ "Trademark" means trademarks, service marks, and similar rights.
66
+
67
+ ---
68
+ NOTICE: This project contains modified code from oh-my-openagent (code-yeongyu), which is licensed under the Sustainable Use License Version 1.0 above. Modifications were made to adapt it for the witty-diagnosis-agent project.
package/README.md CHANGED
@@ -1,148 +1,114 @@
1
- # 项目介绍
1
+ <div align="center">
2
+ <img src="docs/assets/witty-diagnosis-agent_logo.png" alt="Witty Diagnosis Agent Logo" width="600" />
3
+ </div>
2
4
 
3
- Witty智能诊断Agent基于「假设-推断」分析范式与多Agent协同架构,实现多路径并行分析,全面覆盖**应用→系统→内核→硬件**全栈故障场景,显著提升故障诊断的效率、全面性与精准度。依托拓扑动态感知、多模态遥测融合与多维关联分析技术,结合内置故障模式库与运维知识库,可在分钟级完成根因定位(无需人工介入),并支持代码行级精准定界。同时,Agent能自动生成结构化根因报告,清晰呈现溯源路径、关键证据与优化建议,高效支撑各类复杂故障的精准诊断。
5
+ Witty 智能诊断 Agent 基于「假设-验证」(Hypothetico-Deductive)故障排查范式与 Multi-Agent 协同架构,提供分钟级、代码行级的全自动故障诊断能力。
4
6
 
5
- # 架构与功能介绍
7
+ - **全栈并发诊断**:支持跨系统、内核与硬件的多路径并行排查,彻底打破传统线性排查的效率瓶颈。
8
+ - **专家经验封装**:内置多场景诊断技能与丰富故障模式库,固化专家级排查思路,实现根因精准穿透。
9
+ - **端到端闭环自愈**:涵盖“现象分析、根因定界、生成报告、执行修复”全链路,提供一站式自动化运维。
10
+ - **严格的安全管控**:诊断排查阶段严格只读,仅修复阶段按需赋予操作权限,且变更必经用户审批确认。
6
11
 
7
- ## 软件架构
12
+ ### 架构与核心能力
8
13
 
9
- Witty智能诊断Agent采用分层解耦架构,分为Agent层、Skill层、工具层、知识层四大核心模块,各模块通过标准化接口通信,兼具灵活性与可扩展性,确保系统高效迭代与维护。
14
+ Witty 智能诊断 Agent 采用“Agent-Skill-工具-知识”四层解耦架构,兼具高灵活性与可扩展性。
10
15
 
11
- ### 1. Agent层:智能协同的推理引擎与决策中枢
16
+ <div align="center">
17
+ <img src="docs/assets/architecture.png" alt="Diagnosis Agent架构图" width="640" />
18
+ </div>
12
19
 
13
- 采用多智能体协同机制,实现故障根因的全流程自动化诊断:诊断规划Agent(**伏羲 (Fuxi)**)明确故障信息并生成根因假设;编排调度Agent(**大禹 (Dayu)**)匹配诊断Skill,并行分发诊断任务;各验证分析Agent(**夸父 (Kuafu)**)执行具体推理分析;根因融合Agent(**白泽 (Baize)**)汇总多路分析结果,输出包含根因、证据链与修复建议的结构化报告;故障修复Agent依据根因与运维知识,安全可控地执行修复指令,快速恢复业务。
20
+ #### 1. 多智能体协同 (Agent )
14
21
 
15
- ### 2. Skill层:专家经验的标准化沉淀与场景化赋能
22
+ 采用流水线式机制实现诊断自动化:
16
23
 
17
- 将专家诊断思路、排查流程与最佳实践,封装为可复用的标准化技能,覆盖崩溃、死锁、内存泄漏等高频故障场景。为Agent提供标准化执行策略,实现专家经验的规模化复用,提升诊断结果的一致性与准确性。
24
+ - **Xuan Agent(总控)**:调度其它Agent协同完成故障诊断。
25
+ - **Fuxi Agent (规划)**:基于现象生成结构化排查计划。
26
+ - **Dayu Agent (调度)**:解析计划并并发调度给执行节点。
27
+ - **Kuafu Agent (执行)**:加载专属 Skill 深入节点拉取指标与推理。
28
+ - **Baize Agent (融合)**:汇总证据链,输出最终根因报告。
29
+ - **Nuwa Agent (自愈)**:基于安全规则,自动生成并执行修复。
18
30
 
19
- ### 3. 工具层:高效可靠的多源数据处理底座
31
+ #### 2. 专家经验沉淀 (Skill & 知识层)
20
32
 
21
- 深度集成openEuler原生观测与调试工具,以低底噪方式采集指标、日志、内核状态等多维度数据。通过清洗、去重、结构化处理,为上层诊断流程提供高质量数据输入,保障诊断过程的稳定性与高效性。
33
+ - **Skill 层**:将专家排查流程封装为可复用的诊断技能(如 OOM、死锁排查)。
34
+ - **知识底座**:内置 openEuler 专属故障模式与因果规则,持续自我进化。
22
35
 
23
- ### 4. 知识层:持续进化与自我完善的知识底座
36
+ #### 3. 核心诊断场景
24
37
 
25
- 存储openEuler专属故障模式、诊断案例与因果规则,是精准诊断的核心基础。系统可自动沉淀诊断数据与结果,形成可复用案例并反哺Skill层优化,实现诊断能力的自进化迭代,让诊断精度随使用场景持续提升。
38
+ 深度结合 openEuler 操作系统特性,目前已支持:
26
39
 
27
- ![Diagnosis Agent架构图](docs/assets/architecture.png)
40
+ - **内核级诊断**:自动化采集解析 VMCore,精准回溯系统崩溃(Crash/Panic)调用栈。
41
+ - **系统级诊断**:针对磁盘 I/O、网络丢包、内存碎片等资源瓶颈提供多维关联分析。
42
+ - **进程级诊断**:深度诊断进程死锁、僵尸进程及服务超时等逻辑异常。
28
43
 
29
- ## 关键能力
44
+ > 💡 **更多基于 OS 全栈(硬件层 -> 内核层 -> 系统服务层)的诊断能力持续演进中...**
30
45
 
31
- - **智能日志解析**:基于模板挖掘、向量降维等算法,将海量非结构化日志转化为结构化特征,实现关键日志秒级精准识别,为根因分析提供高质量数据支撑。
46
+ ### 快速开始
32
47
 
33
- - **VMCore自动分析**:针对系统宕机等严重故障,自动完成VMCore数据的采集、融合分析与根因定位,将运维人员从复杂的手动调试工作中解放出来,提升故障处置效率。
34
-
35
- - **超节点拓扑动态感知**:基于eBPF技术实现灵衢超节点拓扑动态感知,将多模遥测数据与拓扑节点协同关联,辅助超节点故障的高效定界与定位。
36
-
37
- # 快速开始
38
-
39
- ## 环境要求
40
-
41
- - 运行环境:Bun(推荐)或 Node.js
48
+ #### 环境要求
42
49
 
50
+ - 运行环境:Node.js (>=18.0.0)
43
51
  - 依赖工具:已安装[OpenCode](https://opencode.ai/)
52
+ - 依赖工具:已安装 [Ansible](https://docs.ansible.com/ansible/latest/installation_guide/)(`ansible` 命令须在系统 PATH 中可用,可通过 `ansible --version` 提前验证)
44
53
 
45
- ## 安装
46
-
47
- ```shell
48
- git clone https://gitcode.com/sparklezfl/witty-diagnosis-agent.git
49
- cd witty-diagnosis-agent
50
- bun install
51
- ```
52
-
53
- ## 构建
54
-
55
- ```shell
56
- bun run build
57
- ```
58
-
59
- 构建完成后,将在项目根目录生成 `dist/index.js` 等相关文件。
54
+ > ⚠️ **注意**:执行 `witty-diagnosis-agent install` 前,请确保本地已完成 Ansible 的安装与环境配置,否则安装程序将直接终止。
60
55
 
61
- ## 注册插件
56
+ #### 安装与配置
62
57
 
63
- 配置文件支持两种路径(二选一),优先选择用户级配置:
58
+ Witty 智能诊断 Agent 支持**在线安装**与**源码安装**两种方式,请根据您的网络环境选择合适的安装方式。
64
59
 
65
- - 用户级(推荐):`~/.config/opencode/opencode.json` 或 `opencode.jsonc`
60
+ ##### 方式一:在线安装(推荐)
66
61
 
67
- - 项目级:项目根目录下的 `.opencode/opencode.json` 或 `.opencode/opencode.jsonc`
68
-
69
- 在配置文件中新增或修改 `plugin` 数组,指向本仓库的构建入口(请替换为实际项目路径):
70
-
71
- ```json
72
- {
73
- "$schema": "https://opencode.ai/config.json",
74
- "plugin": [
75
- "file:///{witty-diagnosis-agent项目绝对路径}/dist/index.js"
76
- ]
77
- }
62
+ ```bash
63
+ npm install -g witty-diagnosis-agent@latest
64
+ witty-diagnosis-agent install
78
65
  ```
79
66
 
80
- 示例(假设项目绝对路径为 `/opt/witty-diagnosis-agent`):
81
-
82
- ```json
83
- {
84
- "$schema": "https://opencode.ai/config.json",
85
- "plugin": [
86
- "file:///opt/witty-diagnosis-agent/dist/index.js"
87
- ]
88
- }
89
- ```
67
+ ##### 方式二:源码一键安装(适用于源码)
90
68
 
91
- ## 配置模型
69
+ 如果您已经克隆了仓库,可以使用一键安装脚本自动完成环境检查、依赖安装、项目构建及插件配置:
92
70
 
93
- 修改项目根目录下的 `.opencode/oh-my-opencode.jsonc` 文件,配置如下:
94
-
95
- ```json
96
- {
97
- "agents": {
98
- "fuxi": { "model": "deepseek/deepseek-chat" },
99
- "dayu": { "model": "deepseek/deepseek-chat" },
100
- "kuafu": { "model": "deepseek/deepseek-chat" },
101
- "baize": { "model": "deepseek/deepseek-chat" }
102
- }
103
- }
71
+ ```shell
72
+ git clone https://atomgit.com/openeuler/witty-diagnosis-agent.git
73
+ cd witty-diagnosis-agent
74
+ bash install.sh
104
75
  ```
105
76
 
106
- # 如何使用
77
+ ### 如何使用
107
78
 
108
- 1. 启动 **OpenCode **。
79
+ 1. 启动 \*\*OpenCode \*\*。
109
80
 
110
- 2. 在终端执行命令:
81
+ 2. 执行`/agents`命令,选择`Xuanyuan`Agent。
111
82
 
112
- ```shell
113
- auto-diag 故障问题描述
114
- ```
115
-
116
- **说明**:当前支持离线分析,需在故障描述中指定**遥测数据 / 日志存储路径**。
117
-
118
- 示例:
83
+ ![选择Xuanyuan Agent](docs/assets/select_xuanyuan.png)
84
+
85
+ 3. 输入故障问题描述,示例:
119
86
 
120
87
  ```shell
121
- auto-diag "请诊断2026-03-05 14:31前最近一次硬盘故障,日志路径:/tmp/diskfault/logs"
88
+ 请诊断2026-03-05 14:31前最近一次硬盘故障,日志路径:/tmp/logs
122
89
  ```
123
90
 
124
- ![wittywork命令](docs/assets/wittywork.png)
91
+ <img src="docs/assets/guide_auto_diag_start.png" alt="wittywork命令" width="800" />
125
92
 
126
- 3. 系统将自动执行**智能诊断**流程。
93
+ 4. 系统将自动执行**智能诊断**流程。
127
94
 
128
- 4. 诊断完成后,根据终端输出的报告路径,查看完整的诊断分析报告。
95
+ 5. 诊断完成后,即可查看诊断分析报告概览,可按照界面显示的根因分析报告路径获取完整诊断报告,示例。
129
96
 
130
- ![诊断报告](docs/assets/diagnosis_report.png)
97
+ <img src="docs/assets/guide_auto_diag_report.png" alt="诊断报告" width="800" />
131
98
 
132
- # 如何贡献
99
+ ### 如何贡献
133
100
 
134
- ## 社区贡献
101
+ #### 社区贡献
135
102
 
136
103
  我们诚挚欢迎新贡献者加入项目,也会为新加入者提供全面的指导与帮助。请注意:贡献代码前,请先签署 [CLA](https://clasign.osinfra.cn/sign/6983225bdcbb19710248ccf0),再参考 [代码贡献指引](https://www.openeuler.org/zh/community/contribution/detail#_4-2-代码类贡献) 提交代码。
137
104
 
138
- ## 问题讨论
105
+ #### 问题讨论
139
106
 
140
107
  若您有任何疑问、建议或讨论需求,可通过以下方式联系我们:
141
108
 
142
109
  - 提交 [issue](https://atomgit.com/openeuler/witty-diagnosis-agent/issues)
110
+ - 发送邮件至 <intelligence@openeuler.org>
143
111
 
144
- - 发送邮件至 [intelligence@openeuler.org](mailto:intelligence@openeuler.org)
145
-
146
- # License
112
+ ### License
147
113
 
148
- 本项目采用 **MIT** 开源协议,详情请参阅项目根目录下的 LICENSE 文件。
114
+ 本项目中部分代码基于 `oh-my-openagent` 修改,这部分代码遵循 **Sustainable Use License Version 1.0**。其他原创及贡献部分代码协议以最终发布版本为准。详情请参阅项目根目录下的 [LICENSE](./LICENSE) 文件。
@@ -7,8 +7,8 @@ import {
7
7
  isDistTag,
8
8
  isPrereleaseOrDistTag,
9
9
  isPrereleaseVersion
10
- } from "./chunk-ML545FPN.js";
11
- import "./chunk-7T4NFQTD.js";
10
+ } from "./chunk-VGS3BNP5.js";
11
+ import "./chunk-YVNTYBPS.js";
12
12
  export {
13
13
  checkForUpdate,
14
14
  createAutoUpdateCheckerHook,
@@ -8,11 +8,11 @@ import {
8
8
  migrateConfigFile,
9
9
  parseFrontmatter,
10
10
  parseJsonc
11
- } from "./chunk-ML545FPN.js";
11
+ } from "./chunk-VGS3BNP5.js";
12
12
  import {
13
13
  __require,
14
14
  log
15
- } from "./chunk-7T4NFQTD.js";
15
+ } from "./chunk-YVNTYBPS.js";
16
16
 
17
17
  // src/plugin-config.ts
18
18
  import * as fs from "fs";
@@ -21,20 +21,15 @@ import * as path from "path";
21
21
  // src/config/schema/agent-names.ts
22
22
  import { z } from "zod";
23
23
  var BuiltinAgentNameSchema = z.enum([
24
- "sisyphus",
25
- "hephaestus",
26
24
  "baize",
27
- "prometheus",
25
+ "xuanyuan",
28
26
  "fuxi",
27
+ "fuxi-sub",
28
+ "nuwa",
29
+ "nuwa-sub",
29
30
  "dayu",
30
31
  "kuafu",
31
- "oracle",
32
- "librarian",
33
- "explore",
34
- "multimodal-looker",
35
- "metis",
36
- "momus",
37
- "atlas"
32
+ "multimodal-looker"
38
33
  ]);
39
34
  var BuiltinSkillNameSchema = z.enum([
40
35
  "playwright",
@@ -46,22 +41,15 @@ var BuiltinSkillNameSchema = z.enum([
46
41
  var OverridableAgentNameSchema = z.enum([
47
42
  "build",
48
43
  "plan",
49
- "sisyphus",
50
- "hephaestus",
51
44
  "baize",
52
- "sisyphus-junior",
53
- "OpenCode-Builder",
54
- "prometheus",
45
+ "xuanyuan",
55
46
  "fuxi",
47
+ "fuxi-sub",
48
+ "nuwa",
49
+ "nuwa-sub",
56
50
  "dayu",
57
51
  "kuafu",
58
- "metis",
59
- "momus",
60
- "oracle",
61
- "librarian",
62
- "explore",
63
- "multimodal-looker",
64
- "atlas"
52
+ "multimodal-looker"
65
53
  ]);
66
54
 
67
55
  // src/config/schema/agent-overrides.ts
@@ -134,24 +122,15 @@ var AgentOverrideConfigSchema = z4.object({
134
122
  var AgentOverridesSchema = z4.object({
135
123
  build: AgentOverrideConfigSchema.optional(),
136
124
  plan: AgentOverrideConfigSchema.optional(),
137
- sisyphus: AgentOverrideConfigSchema.optional(),
138
- hephaestus: AgentOverrideConfigSchema.extend({
139
- allow_non_gpt_model: z4.boolean().optional()
140
- }).optional(),
141
125
  baize: AgentOverrideConfigSchema.optional(),
142
- "sisyphus-junior": AgentOverrideConfigSchema.optional(),
143
- "OpenCode-Builder": AgentOverrideConfigSchema.optional(),
144
- prometheus: AgentOverrideConfigSchema.optional(),
126
+ xuanyuan: AgentOverrideConfigSchema.optional(),
145
127
  fuxi: AgentOverrideConfigSchema.optional(),
128
+ "fuxi-sub": AgentOverrideConfigSchema.optional(),
129
+ nuwa: AgentOverrideConfigSchema.optional(),
130
+ "nuwa-sub": AgentOverrideConfigSchema.optional(),
146
131
  dayu: AgentOverrideConfigSchema.optional(),
147
132
  kuafu: AgentOverrideConfigSchema.optional(),
148
- metis: AgentOverrideConfigSchema.optional(),
149
- momus: AgentOverrideConfigSchema.optional(),
150
- oracle: AgentOverrideConfigSchema.optional(),
151
- librarian: AgentOverrideConfigSchema.optional(),
152
- explore: AgentOverrideConfigSchema.optional(),
153
- "multimodal-looker": AgentOverrideConfigSchema.optional(),
154
- atlas: AgentOverrideConfigSchema.optional()
133
+ "multimodal-looker": AgentOverrideConfigSchema.optional()
155
134
  });
156
135
 
157
136
  // src/config/schema/babysitting.ts
@@ -256,6 +235,10 @@ var BuiltinCommandNameSchema = z11.enum([
256
235
  "cancel-ralph",
257
236
  "refactor",
258
237
  "start-work",
238
+ "start-dayu",
239
+ "start-baize",
240
+ "witty-diag",
241
+ "handoff",
259
242
  "stop-continuation"
260
243
  ]);
261
244
 
@@ -317,8 +300,8 @@ var ExperimentalConfigSchema = z13.object({
317
300
  plugin_load_timeout_ms: z13.number().min(1e3).optional(),
318
301
  /** Wrap hook creation in try/catch to prevent one failing hook from crashing the plugin (default: true at call site) */
319
302
  safe_hook_creation: z13.boolean().optional(),
320
- /** Disable auto-injected <omo-env> context in prompts (experimental) */
321
- disable_omo_env: z13.boolean().optional(),
303
+ /** Disable auto-injected <witty-env> context in prompts (experimental) */
304
+ disable_witty_env: z13.boolean().optional(),
322
305
  /** Enable hashline_edit tool for improved file editing with hash-based line anchors */
323
306
  hashline_edit: z13.boolean().optional(),
324
307
  /** Append fallback model info to session title when a runtime fallback occurs (default: false) */
@@ -369,13 +352,10 @@ var HookNameSchema = z15.enum([
369
352
  "edit-error-recovery",
370
353
  "json-error-recovery",
371
354
  "delegate-task-retry",
372
- "prometheus-md-only",
373
355
  "fuxi-md-only",
374
356
  "sisyphus-junior-notepad",
375
357
  "no-sisyphus-gpt",
376
- "no-hephaestus-non-gpt",
377
358
  "start-work",
378
- "atlas",
379
359
  "unstable-agent-babysitter",
380
360
  "task-resume-info",
381
361
  "stop-continuation-guard",
@@ -394,7 +374,7 @@ var NotificationConfigSchema = z16.object({
394
374
  force_enable: z16.boolean().optional()
395
375
  });
396
376
 
397
- // src/config/schema/oh-my-opencode-config.ts
377
+ // src/config/schema/witty-diagnosis-agent-config.ts
398
378
  import { z as z25 } from "zod";
399
379
 
400
380
  // src/mcp/types.ts
@@ -522,12 +502,12 @@ var WebsearchConfigSchema = z24.object({
522
502
  provider: WebsearchProviderSchema.optional()
523
503
  });
524
504
 
525
- // src/config/schema/oh-my-opencode-config.ts
526
- var OhMyOpenCodeConfigSchema = z25.object({
505
+ // src/config/schema/witty-diagnosis-agent-config.ts
506
+ var WittyDiagnosisAgentConfigSchema = z25.object({
527
507
  $schema: z25.string().optional(),
528
508
  /** Enable new task system (default: false) */
529
509
  new_task_system_enabled: z25.boolean().optional(),
530
- /** Default agent name for `oh-my-opencode run` (env: OPENCODE_DEFAULT_AGENT) */
510
+ /** Default agent name for `witty-diagnosis-agent run` (env: OPENCODE_DEFAULT_AGENT) */
531
511
  default_run_agent: z25.string().optional(),
532
512
  disabled_mcps: z25.array(AnyMcpNameSchema).optional(),
533
513
  disabled_agents: z25.array(z25.string()).optional(),
@@ -569,14 +549,14 @@ var OhMyOpenCodeConfigSchema = z25.object({
569
549
 
570
550
  // src/plugin-config.ts
571
551
  function parseConfigPartially(rawConfig) {
572
- const fullResult = OhMyOpenCodeConfigSchema.safeParse(rawConfig);
552
+ const fullResult = WittyDiagnosisAgentConfigSchema.safeParse(rawConfig);
573
553
  if (fullResult.success) {
574
554
  return fullResult.data;
575
555
  }
576
556
  const partialConfig = {};
577
557
  const invalidSections = [];
578
558
  for (const key of Object.keys(rawConfig)) {
579
- const sectionResult = OhMyOpenCodeConfigSchema.safeParse({ [key]: rawConfig[key] });
559
+ const sectionResult = WittyDiagnosisAgentConfigSchema.safeParse({ [key]: rawConfig[key] });
580
560
  if (sectionResult.success) {
581
561
  const parsed = sectionResult.data;
582
562
  if (parsed[key] !== void 0) {
@@ -600,7 +580,7 @@ function loadConfigFromPath(configPath, _ctx) {
600
580
  const content = fs.readFileSync(configPath, "utf-8");
601
581
  const rawConfig = parseJsonc(content);
602
582
  migrateConfigFile(configPath, rawConfig);
603
- const result = OhMyOpenCodeConfigSchema.safeParse(rawConfig);
583
+ const result = WittyDiagnosisAgentConfigSchema.safeParse(rawConfig);
604
584
  if (result.success) {
605
585
  log(`Config loaded from ${configPath}`, { agents: result.data.agents });
606
586
  return result.data;
@@ -666,10 +646,10 @@ function mergeConfigs(base, override) {
666
646
  }
667
647
  function loadPluginConfig(directory, ctx) {
668
648
  const configDir = getOpenCodeConfigDir({ binary: "opencode" });
669
- const userBasePath = path.join(configDir, "oh-my-opencode");
649
+ const userBasePath = path.join(configDir, "witty-diagnosis-agent");
670
650
  const userDetected = detectConfigFile(userBasePath);
671
651
  const userConfigPath = userDetected.format !== "none" ? userDetected.path : userBasePath + ".json";
672
- const projectBasePath = path.join(directory, ".opencode", "oh-my-opencode");
652
+ const projectBasePath = path.join(directory, ".opencode", "witty-diagnosis-agent");
673
653
  const projectDetected = detectConfigFile(projectBasePath);
674
654
  const projectConfigPath = projectDetected.format !== "none" ? projectDetected.path : projectBasePath + ".json";
675
655
  let config = loadConfigFromPath(userConfigPath, ctx) ?? {};
@@ -1145,8 +1125,8 @@ function getConfigPaths() {
1145
1125
  const cwd = process.cwd();
1146
1126
  const configDir = getOpenCodeConfigDir({ binary: "opencode" });
1147
1127
  return {
1148
- project: detectConfigFile(join4(cwd, ".opencode", "oh-my-opencode")).path,
1149
- user: detectConfigFile(join4(configDir, "oh-my-opencode")).path,
1128
+ project: detectConfigFile(join4(cwd, ".opencode", "witty-diagnosis-agent")).path,
1129
+ user: detectConfigFile(join4(configDir, "witty-diagnosis-agent")).path,
1150
1130
  opencode: detectConfigFile(join4(configDir, "opencode")).path
1151
1131
  };
1152
1132
  }
@@ -1758,7 +1738,7 @@ var McpOAuthProvider = class {
1758
1738
  const clientInfo = await getOrRegisterClient({
1759
1739
  registrationEndpoint: metadata.registrationEndpoint,
1760
1740
  serverIdentifier: this.serverUrl,
1761
- clientName: "oh-my-opencode",
1741
+ clientName: "witty-diagnosis-agent",
1762
1742
  redirectUris: [this.redirectUrl()],
1763
1743
  tokenEndpointAuthMethod: "none",
1764
1744
  clientId: this.configClientId,
@@ -1940,7 +1920,7 @@ export {
1940
1920
  getPlanProgress,
1941
1921
  getPlanName,
1942
1922
  createBoulderState,
1943
- OhMyOpenCodeConfigSchema,
1923
+ WittyDiagnosisAgentConfigSchema,
1944
1924
  loadPluginConfig,
1945
1925
  SYMBOL_KIND_MAP,
1946
1926
  SEVERITY_MAP,