@easynet/agent-runtime 1.0.3 → 1.0.4

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 (205) hide show
  1. package/.github/workflows/ci.yml +9 -24
  2. package/.github/workflows/release.yml +14 -35
  3. package/agent-runtime/.github/workflows/ci.yml +69 -0
  4. package/agent-runtime/.github/workflows/release.yml +118 -0
  5. package/agent-runtime/.releaserc.cjs +26 -0
  6. package/agent-runtime/config/agent.deep.yaml +25 -0
  7. package/agent-runtime/config/agent.react.yaml +24 -0
  8. package/agent-runtime/example/basic-usage.ts +49 -0
  9. package/agent-runtime/package-lock.json +7740 -0
  10. package/agent-runtime/package.json +49 -0
  11. package/agent-runtime/pnpm-lock.yaml +3712 -0
  12. package/agent-runtime/scripts/resolve-deps.js +54 -0
  13. package/agent-runtime/src/agents/deep-agent.ts +165 -0
  14. package/agent-runtime/src/agents/react-agent.helpers.ts +227 -0
  15. package/agent-runtime/src/agents/react-agent.ts +584 -0
  16. package/{src → agent-runtime/src/agents}/sub-agent.ts +2 -2
  17. package/agent-runtime/src/cli/args.ts +15 -0
  18. package/agent-runtime/src/cli/event-listener.ts +162 -0
  19. package/agent-runtime/src/cli/interactive.ts +144 -0
  20. package/agent-runtime/src/cli/runtime.ts +31 -0
  21. package/agent-runtime/src/cli/spinner.ts +23 -0
  22. package/agent-runtime/src/cli/terminal-render.ts +322 -0
  23. package/agent-runtime/src/cli/types.ts +33 -0
  24. package/agent-runtime/src/cli.ts +134 -0
  25. package/agent-runtime/src/config/helpers.ts +179 -0
  26. package/agent-runtime/src/config/index.ts +245 -0
  27. package/agent-runtime/src/config/types.ts +62 -0
  28. package/agent-runtime/src/core/context.ts +266 -0
  29. package/agent-runtime/src/index.ts +55 -0
  30. package/agent-runtime/tsconfig.json +18 -0
  31. package/apps/imessagebot/README.md +38 -0
  32. package/apps/imessagebot/config/.agent/cache/easynet/agent-tool-buildin/0.0.45/README.md +33 -0
  33. package/apps/imessagebot/config/.agent/cache/easynet/agent-tool-buildin/0.0.45/package-lock.json +15257 -0
  34. package/apps/imessagebot/config/.agent/cache/easynet/agent-tool-buildin/0.0.45/package.json +55 -0
  35. package/apps/imessagebot/config/agents/deep/agent.yaml +31 -0
  36. package/apps/imessagebot/config/agents/react/agent.yaml +58 -0
  37. package/apps/imessagebot/config/agents/shared/.agent/cache/easynet/agent-tool-buildin/0.0.43/README.md +33 -0
  38. package/apps/imessagebot/config/agents/shared/.agent/cache/easynet/agent-tool-buildin/0.0.43/package-lock.json +15457 -0
  39. package/apps/imessagebot/config/agents/shared/.agent/cache/easynet/agent-tool-buildin/0.0.43/package.json +55 -0
  40. package/apps/imessagebot/config/agents/shared/.agent/cache/easynet/agent-tool-buildin/0.0.46/README.md +33 -0
  41. package/apps/imessagebot/config/agents/shared/.agent/cache/easynet/agent-tool-buildin/0.0.46/package-lock.json +15257 -0
  42. package/apps/imessagebot/config/agents/shared/.agent/cache/easynet/agent-tool-buildin/0.0.46/package.json +62 -0
  43. package/apps/imessagebot/config/agents/shared/memory.yaml +31 -0
  44. package/apps/imessagebot/config/agents/shared/model.yaml +23 -0
  45. package/apps/imessagebot/config/agents/shared/tool.yaml +13 -0
  46. package/apps/imessagebot/config/app.yaml +14 -0
  47. package/apps/imessagebot/package-lock.json +53695 -0
  48. package/apps/imessagebot/package.json +41 -0
  49. package/apps/imessagebot/pnpm-lock.yaml +1589 -0
  50. package/apps/imessagebot/scripts/resolve-deps.js +41 -0
  51. package/apps/imessagebot/scripts/test-llm.mjs +27 -0
  52. package/apps/imessagebot/scripts/validate-tools-config.mjs +174 -0
  53. package/apps/imessagebot/src/config.ts +76 -0
  54. package/apps/imessagebot/src/context.ts +35 -0
  55. package/apps/imessagebot/src/index.ts +17 -0
  56. package/apps/imessagebot/tsconfig.json +18 -0
  57. package/apps/itermbot/.github/workflows/ci.yml +61 -0
  58. package/apps/itermbot/.github/workflows/release.yml +80 -0
  59. package/apps/itermbot/.releaserc.cjs +26 -0
  60. package/apps/itermbot/README.md +82 -0
  61. package/apps/itermbot/config/app.yaml +29 -0
  62. package/apps/itermbot/config/tsconfig.json +18 -0
  63. package/apps/itermbot/macos_disk_usage_agent_plan.md +244 -0
  64. package/apps/itermbot/package-lock.json +53697 -0
  65. package/apps/itermbot/package.json +57 -0
  66. package/apps/itermbot/pnpm-lock.yaml +3966 -0
  67. package/apps/itermbot/scripts/patch-buildin-cache.sh +25 -0
  68. package/apps/itermbot/scripts/resolve-deps.js +41 -0
  69. package/apps/itermbot/scripts/test-llm.mjs +32 -0
  70. package/apps/itermbot/skills/command-explain-and-guard/SKILL.md +39 -0
  71. package/apps/itermbot/skills/command-explain-and-guard/handler.js +86 -0
  72. package/apps/itermbot/skills/disk-usage-investigate/SKILL.md +44 -0
  73. package/apps/itermbot/skills/disk-usage-investigate/handler.js +12 -0
  74. package/apps/itermbot/skills/gpu-ssh-monitor/SKILL.md +64 -0
  75. package/apps/itermbot/skills/repo-triage/SKILL.md +40 -0
  76. package/apps/itermbot/skills/repo-triage/handler.js +56 -0
  77. package/apps/itermbot/skills/test-failure-diagnose/SKILL.md +43 -0
  78. package/apps/itermbot/skills/test-failure-diagnose/handler.js +107 -0
  79. package/apps/itermbot/src/config.ts +95 -0
  80. package/apps/itermbot/src/context.ts +35 -0
  81. package/apps/itermbot/src/index.ts +223 -0
  82. package/apps/itermbot/src/iterm/session-hint.ts +40 -0
  83. package/apps/itermbot/src/iterm/target-routing.ts +419 -0
  84. package/apps/itermbot/src/startup/colors.ts +317 -0
  85. package/apps/itermbot/src/startup/diagnostics.ts +97 -0
  86. package/apps/itermbot/src/startup/ui.ts +141 -0
  87. package/config/agent.deep.yaml +25 -0
  88. package/config/agent.react.yaml +24 -0
  89. package/dist/agents/deep-agent.d.ts +37 -0
  90. package/dist/agents/deep-agent.d.ts.map +1 -0
  91. package/dist/agents/deep-agent.js +115 -0
  92. package/dist/agents/deep-agent.js.map +1 -0
  93. package/dist/agents/react-agent.d.ts +40 -0
  94. package/dist/agents/react-agent.d.ts.map +1 -0
  95. package/dist/agents/react-agent.helpers.d.ts +40 -0
  96. package/dist/agents/react-agent.helpers.d.ts.map +1 -0
  97. package/dist/agents/react-agent.helpers.js +196 -0
  98. package/dist/agents/react-agent.helpers.js.map +1 -0
  99. package/dist/agents/react-agent.js +400 -0
  100. package/dist/agents/react-agent.js.map +1 -0
  101. package/dist/agents/sub-agent.d.ts +34 -0
  102. package/dist/agents/sub-agent.d.ts.map +1 -0
  103. package/dist/agents/sub-agent.js +53 -0
  104. package/dist/agents/sub-agent.js.map +1 -0
  105. package/dist/cli/args.d.ts +8 -0
  106. package/dist/cli/args.d.ts.map +1 -0
  107. package/dist/cli/args.js +9 -0
  108. package/dist/cli/args.js.map +1 -0
  109. package/dist/cli/event-listener.d.ts +3 -0
  110. package/dist/cli/event-listener.d.ts.map +1 -0
  111. package/dist/cli/event-listener.js +131 -0
  112. package/dist/cli/event-listener.js.map +1 -0
  113. package/dist/cli/interactive.d.ts +4 -0
  114. package/dist/cli/interactive.d.ts.map +1 -0
  115. package/dist/cli/interactive.js +118 -0
  116. package/dist/cli/interactive.js.map +1 -0
  117. package/dist/cli/runtime.d.ts +8 -0
  118. package/dist/cli/runtime.d.ts.map +1 -0
  119. package/dist/cli/runtime.js +27 -0
  120. package/dist/cli/runtime.js.map +1 -0
  121. package/dist/cli/spinner.d.ts +2 -0
  122. package/dist/cli/spinner.d.ts.map +1 -0
  123. package/dist/cli/spinner.js +22 -0
  124. package/dist/cli/spinner.js.map +1 -0
  125. package/dist/cli/terminal-render.d.ts +7 -0
  126. package/dist/cli/terminal-render.d.ts.map +1 -0
  127. package/dist/cli/terminal-render.js +282 -0
  128. package/dist/cli/terminal-render.js.map +1 -0
  129. package/dist/cli/types.d.ts +29 -0
  130. package/dist/cli/types.d.ts.map +1 -0
  131. package/dist/cli/types.js +3 -0
  132. package/dist/cli/types.js.map +1 -0
  133. package/dist/cli.d.ts +4 -41
  134. package/dist/cli.d.ts.map +1 -1
  135. package/dist/cli.js +84 -588
  136. package/dist/cli.js.map +1 -1
  137. package/dist/config/helpers.d.ts +6 -0
  138. package/dist/config/helpers.d.ts.map +1 -0
  139. package/dist/config/helpers.js +164 -0
  140. package/dist/config/helpers.js.map +1 -0
  141. package/dist/config/index.d.ts +15 -0
  142. package/dist/config/index.d.ts.map +1 -0
  143. package/dist/config/index.js +160 -0
  144. package/dist/config/index.js.map +1 -0
  145. package/dist/config/types.d.ts +57 -0
  146. package/dist/config/types.d.ts.map +1 -0
  147. package/dist/config/types.js +2 -0
  148. package/dist/config/types.js.map +1 -0
  149. package/dist/context.d.ts +8 -69
  150. package/dist/context.d.ts.map +1 -1
  151. package/dist/context.js +44 -24
  152. package/dist/context.js.map +1 -1
  153. package/dist/core/context.d.ts +66 -0
  154. package/dist/core/context.d.ts.map +1 -0
  155. package/dist/core/context.js +149 -0
  156. package/dist/core/context.js.map +1 -0
  157. package/dist/deep-agent.d.ts +5 -2
  158. package/dist/deep-agent.d.ts.map +1 -1
  159. package/dist/deep-agent.js +44 -11
  160. package/dist/deep-agent.js.map +1 -1
  161. package/dist/index.d.ts +6 -6
  162. package/dist/index.d.ts.map +1 -1
  163. package/dist/index.js +6 -6
  164. package/dist/index.js.map +1 -1
  165. package/dist/middleware/malformed-tool-call-middleware.d.ts +8 -0
  166. package/dist/middleware/malformed-tool-call-middleware.d.ts.map +1 -0
  167. package/dist/middleware/malformed-tool-call-middleware.js +191 -0
  168. package/dist/middleware/malformed-tool-call-middleware.js.map +1 -0
  169. package/dist/react-agent.d.ts +2 -2
  170. package/dist/react-agent.d.ts.map +1 -1
  171. package/dist/react-agent.js +28 -9
  172. package/dist/react-agent.js.map +1 -1
  173. package/package.json +1 -1
  174. package/scripts/resolve-deps.js +54 -0
  175. package/src/agents/deep-agent.ts +165 -0
  176. package/src/agents/react-agent.helpers.ts +227 -0
  177. package/src/agents/react-agent.ts +584 -0
  178. package/src/agents/sub-agent.ts +82 -0
  179. package/src/cli/args.ts +15 -0
  180. package/src/cli/event-listener.ts +162 -0
  181. package/src/cli/interactive.ts +144 -0
  182. package/src/cli/runtime.ts +31 -0
  183. package/src/cli/spinner.ts +23 -0
  184. package/src/cli/terminal-render.ts +322 -0
  185. package/src/cli/types.ts +33 -0
  186. package/src/cli.ts +91 -702
  187. package/src/config/helpers.ts +179 -0
  188. package/src/config/index.ts +245 -0
  189. package/src/config/types.ts +62 -0
  190. package/src/core/context.ts +266 -0
  191. package/src/index.ts +13 -11
  192. package/src/middleware/malformed-tool-call-middleware.ts +239 -0
  193. package/src/types/markdown-it-terminal.d.ts +4 -0
  194. package/src/types/marked-terminal.d.ts +16 -0
  195. package/dist/config.d.ts +0 -86
  196. package/dist/config.d.ts.map +0 -1
  197. package/dist/config.js +0 -84
  198. package/dist/config.js.map +0 -1
  199. package/src/config.ts +0 -177
  200. package/src/context.ts +0 -247
  201. package/src/deep-agent.ts +0 -104
  202. package/src/react-agent.ts +0 -576
  203. /package/{src → agent-runtime/src/middleware}/malformed-tool-call-middleware.ts +0 -0
  204. /package/{src → agent-runtime/src/types}/markdown-it-terminal.d.ts +0 -0
  205. /package/{src → agent-runtime/src/types}/marked-terminal.d.ts +0 -0
@@ -0,0 +1,18 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "module": "NodeNext",
5
+ "moduleResolution": "NodeNext",
6
+ "outDir": "../dist",
7
+ "rootDir": "../src",
8
+ "strict": true,
9
+ "esModuleInterop": true,
10
+ "skipLibCheck": true,
11
+ "declaration": true,
12
+ "declarationMap": true,
13
+ "sourceMap": true,
14
+ "resolveJsonModule": true
15
+ },
16
+ "include": ["../src/**/*"],
17
+ "exclude": ["../node_modules", "../dist"]
18
+ }
@@ -0,0 +1,244 @@
1
+ # macOS 硬盘占用调查 AI Agent 方案(快速定位大户)
2
+
3
+ > 目标:让 Agent 用**最少的命令**在 macOS 上快速定位“占空间最大的目录/文件类别”,并输出结构化报告。
4
+ > 默认原则:**只读调查**(不删除、不改系统状态),除非你明确授权。
5
+
6
+ ---
7
+
8
+ ## 0) 核心思路:分层探测 + 剪枝 + 并行
9
+
10
+ - **分层探测**:先看 `/System/Volumes/Data`(数据卷)一级目录,再对“大户”逐层下钻。
11
+ - **剪枝**:小于阈值就停止下钻;耗时过长就跳过并记录。
12
+ - **并行**:同时扫 2~4 个路径即可(避免把机器打爆)。
13
+ - **专项黑洞检查**:Time Machine 本地快照、iOS 备份、Xcode、Docker、Homebrew、Caches 等。
14
+
15
+ ---
16
+
17
+ ## 1) 全局画像(最快判断是不是快照/卷层面问题)
18
+
19
+ ### 1.1 盘与卷的占用
20
+ ```bash
21
+ df -h
22
+ diskutil list
23
+ diskutil apfs list
24
+ ```
25
+
26
+ **判断点**
27
+ - `df -h`:哪个挂载点 `%Used` 最高(常见 `/`、`/System/Volumes/Data`)。
28
+ - `diskutil apfs list`:看 APFS Container 空间分配/可用空间是否异常。
29
+
30
+ ### 1.2 Time Machine 本地快照是否吞空间(常见)
31
+ ```bash
32
+ tmutil listlocalsnapshots /
33
+ ```
34
+
35
+ > ⚠️ 注意:下面命令可能会释放空间(会改变系统状态),默认**不要**让 Agent 自动执行。
36
+ > 只在你明确授权时执行:
37
+ ```bash
38
+ tmutil thinlocalsnapshots / 10000000000 4
39
+ ```
40
+
41
+ ---
42
+
43
+ ## 2) 快速定位“大目录”:两层 du 下钻(只扫 Data)
44
+
45
+ > macOS 系统/数据分卷;真正长胖的通常在 **Data**:
46
+ > `/System/Volumes/Data`
47
+
48
+ ### 2.1 扫 Data 一级目录(速度非常快)
49
+ ```bash
50
+ sudo du -xhd 1 /System/Volumes/Data 2>/dev/null | sort -h
51
+ ```
52
+
53
+ 常见大户:
54
+ - `/System/Volumes/Data/Users`
55
+ - `/System/Volumes/Data/Library`
56
+ - `/System/Volumes/Data/private/var`
57
+
58
+ ### 2.2 对大户再下钻一级
59
+ 例如 `Users` 很大:
60
+ ```bash
61
+ sudo du -xhd 1 /System/Volumes/Data/Users 2>/dev/null | sort -h
62
+ ```
63
+
64
+ 再对你的 home 下钻:
65
+ ```bash
66
+ sudo du -xhd 1 /System/Volumes/Data/Users/<you> 2>/dev/null | sort -h
67
+ ```
68
+
69
+ ---
70
+
71
+ ## 3) 常见“容量黑洞”专项检查清单(优先级从高到低)
72
+
73
+ > 建议:Agent 在定位到用户目录后,先跑这些固定路径,能极大提升命中率。
74
+
75
+ ### 3.1 用户目录常见大头
76
+
77
+ #### Downloads / Desktop
78
+ ```bash
79
+ du -hd 1 ~/Downloads | sort -h | tail -n 30
80
+ du -hd 1 ~/Desktop | sort -h | tail -n 30
81
+ ```
82
+
83
+ #### iPhone / iPad 备份(极常见)
84
+ ```bash
85
+ du -hd 1 ~/Library/Application\ Support/MobileSync/Backup 2>/dev/null | sort -h
86
+ ```
87
+
88
+ #### Mail / Messages / Photos
89
+ ```bash
90
+ du -hd 1 ~/Library/Mail 2>/dev/null | sort -h
91
+ du -hd 1 ~/Library/Messages 2>/dev/null | sort -h
92
+ du -hd 1 ~/Pictures 2>/dev/null | sort -h
93
+ ```
94
+
95
+ #### Caches / Containers
96
+ ```bash
97
+ du -hd 1 ~/Library/Caches 2>/dev/null | sort -h | tail -n 50
98
+ du -hd 1 ~/Library/Containers 2>/dev/null | sort -h | tail -n 50
99
+ ```
100
+
101
+ ---
102
+
103
+ ### 3.2 开发者机器常见大头
104
+
105
+ #### Xcode / iOS 模拟器 / DerivedData
106
+ ```bash
107
+ du -hd 1 ~/Library/Developer/Xcode 2>/dev/null | sort -h
108
+ du -hd 1 ~/Library/Developer/CoreSimulator 2>/dev/null | sort -h
109
+ du -hd 1 ~/Library/Developer/Xcode/DerivedData 2>/dev/null | sort -h
110
+ ```
111
+
112
+ #### Docker(常见爆仓)
113
+ ```bash
114
+ du -sh ~/Library/Containers/com.docker.docker 2>/dev/null
115
+ du -sh ~/Library/Group\ Containers/group.com.docker 2>/dev/null
116
+ ```
117
+
118
+ #### Homebrew(Cellar / Cache)
119
+ ```bash
120
+ du -sh /opt/homebrew/Cellar 2>/dev/null
121
+ du -sh /opt/homebrew/Caskroom 2>/dev/null
122
+ du -sh ~/Library/Caches/Homebrew 2>/dev/null
123
+ ```
124
+
125
+ ---
126
+
127
+ ## 4) 更深层“兜底扫描”(可选,但很管用)
128
+
129
+ > 这个会更慢一些,但能找出 `node_modules`、`venv`、`build`、大型缓存目录等。
130
+
131
+ ```bash
132
+ sudo du -xhd 4 /System/Volumes/Data/Users/<you> 2>/dev/null | sort -h | tail -n 50
133
+ ```
134
+
135
+ ---
136
+
137
+ ## 5) 并行扫描模板(控制并发 2~4)
138
+
139
+ ```bash
140
+ printf "%s\n" "/System/Volumes/Data/Users" "/System/Volumes/Data/Library" "/System/Volumes/Data/private/var" | xargs -I{} -P 3 sh -c 'sudo du -xhd 1 "{}" 2>/dev/null | sort -h | tail -n 20; echo "---- {} ----"'
141
+ ```
142
+
143
+ 建议参数:
144
+ - `-P 2` 或 `-P 3`:更稳
145
+ - 扫描深度先从 `-d 1` 起步
146
+
147
+ ---
148
+
149
+ ## 6) Agent 速度关键:剪枝规则(强烈建议写进策略)
150
+
151
+ ### 6.1 仅扫描目标范围
152
+ - 只扫 `/System/Volumes/Data`(避免系统目录与无意义扫描)
153
+ - `du` 使用 `-x` 不跨文件系统,避免扫到外接盘/其它挂载点
154
+
155
+ ### 6.2 下钻与停止条件(推荐默认值)
156
+ - **深度阶梯**:`1 → 2 → 3`(很少需要 > 4)
157
+ - **继续下钻阈值**:
158
+ - 目录大小 **> 20GB** 或
159
+ - 占本层总量 **> 25%**
160
+ - **停止条件**:
161
+ - 本层最大目录 **< 5GB**:停止下钻,换下一个路径
162
+ - 扫描某目录超过 **20s**:记录为“耗时过长”,跳过(后面专项处理)
163
+
164
+ ### 6.3 安全策略(默认只读)
165
+ - 默认禁止执行会改变系统状态的命令(例如:
166
+ - `tmutil thinlocalsnapshots ...`
167
+ - `rm -rf ...`
168
+ - `docker system prune ...`
169
+ - 清理 Xcode DerivedData 等)
170
+ - 这些动作仅在你明确授权后执行(Agent 在报告中列出候选与影响范围)。
171
+
172
+ ---
173
+
174
+ ## 7) 报告输出格式(建议 Agent 统一输出)
175
+
176
+ 1. **磁盘概览**
177
+ - `df -h`(只保留关键行:`/` 与 `/System/Volumes/Data`)
178
+ 2. **Top 大目录(分层)**
179
+ - Data 一级 top 10
180
+ - `Users` 一级 top 10
181
+ - 你的 home 一级 top 10(或进一步下钻结果)
182
+ 3. **专项黑洞检查结果**
183
+ - Time Machine 本地快照数量与日期范围
184
+ - iOS Backup 大小
185
+ - Xcode / Docker / Homebrew / Caches / Containers 大小
186
+ 4. **清理候选清单(仅建议,不执行)**
187
+ - `路径` + `大小` + `风险说明`(例如“仅缓存,可重建”、“可能包含重要备份”等)
188
+ 5. **需要你确认后才能执行的释放空间动作**
189
+ - 列出命令与预期效果、潜在影响、回滚/恢复建议
190
+
191
+ ---
192
+
193
+ ## 8) 最小可用 Agent 逻辑(伪代码)
194
+
195
+ ```text
196
+ root = "/System/Volumes/Data"
197
+
198
+ run df -h, diskutil apfs list
199
+ run tmutil listlocalsnapshots /
200
+
201
+ top1 = du(depth=1, path=root)
202
+ candidates = pick(top1, size>20GB or share>25%)
203
+
204
+ for c in candidates:
205
+ top2 = du(depth=1, path=c)
206
+ if max(top2) < 5GB: continue
207
+ subc = pick(top2, size>20GB or share>25%)
208
+ repeat until depth_limit=3 or stop_condition
209
+
210
+ run blackhole_checks (iOS backup, caches, xcode, docker, brew...)
211
+ compile report
212
+ ```
213
+
214
+ ---
215
+
216
+ ## 9) 你可以直接复用的“命令清单”(按执行顺序)
217
+
218
+ ### 9.1 全局
219
+ ```bash
220
+ df -h
221
+ diskutil apfs list
222
+ tmutil listlocalsnapshots /
223
+ ```
224
+
225
+ ### 9.2 分层定位
226
+ ```bash
227
+ sudo du -xhd 1 /System/Volumes/Data 2>/dev/null | sort -h
228
+ sudo du -xhd 1 /System/Volumes/Data/Users 2>/dev/null | sort -h
229
+ sudo du -xhd 1 /System/Volumes/Data/Users/<you> 2>/dev/null | sort -h
230
+ ```
231
+
232
+ ### 9.3 黑洞专项
233
+ ```bash
234
+ du -hd 1 ~/Library/Application\ Support/MobileSync/Backup 2>/dev/null | sort -h
235
+ du -hd 1 ~/Library/Caches 2>/dev/null | sort -h | tail -n 50
236
+ du -hd 1 ~/Library/Developer/Xcode 2>/dev/null | sort -h
237
+ du -sh ~/Library/Containers/com.docker.docker 2>/dev/null
238
+ du -sh /opt/homebrew/Cellar 2>/dev/null
239
+ ```
240
+
241
+ ---
242
+
243
+ ## 总结
244
+ 这套方案用 **Data 卷优先 + du 分层下钻 + 剪枝/超时/并行 + 黑洞路径专项检查**,让 Agent 在很少命令内迅速锁定“谁在吃空间”;默认只输出报告与建议,释放空间动作等你授权后再执行。