Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

28 - utils 模块源码分析

路径: src/utils/ 根级文件数: 280+ 个 .ts/.tsx 文件 子目录数: 31 个 功能: 工具函数库 — 覆盖项目所有基础设施需求


模块概述

utils/ 是 Claude Code 中文件数量最多的模块,包含 280+ 个根级工具文件和 31 个子目录。


根级核心文件(按功能分类,仅列出已验证存在的文件)

Shell 与进程

文件说明
Shell.tsShell 抽象层(exec/execStream/which)
ShellCommand.tsShell 命令封装
execFileNoThrow.ts不抛异常的 execFile
process.ts进程工具
genericProcessUtils.ts通用进程工具
gracefulShutdown.ts优雅关闭
cleanupRegistry.ts清理注册表(进程退出时资源释放)

Git 操作

文件说明
git.tsGit 核心操作(status/branch/commit 等)
gitDiff.tsGit Diff 处理
gitSettings.tsGit 配置
worktree.tsGit Worktree 管理
getWorktreePaths.tsWorktree 路径获取
detectRepository.ts仓库检测
ghPrStatus.tsGitHub PR 状态
commitAttribution.ts提交归因

认证与安全

文件说明
auth.ts认证核心
authFileDescriptor.ts认证文件描述符
authPortable.ts可移植认证
aws.tsAWS 集成
awsAuthStatusManager.tsAWS 认证状态
crypto.ts加密工具
mtls.tsmTLS 配置

文件操作

文件说明
file.ts文件基础操作
fileRead.ts文件读取(多格式支持)
fileReadCache.ts文件读取缓存
fileHistory.ts文件历史追踪
fileStateCache.ts文件状态缓存
fileOperationAnalytics.ts文件操作分析
readFileInRange.ts范围读取
diff.ts差异计算
pdf.ts / pdfUtils.tsPDF 处理
notebook.tsJupyter Notebook 处理

会话管理

文件说明
sessionStorage.ts会话持久化
sessionRestore.ts会话恢复
sessionState.ts会话状态
sessionTitle.ts会话标题生成
sessionStart.ts会话启动
sessionActivity.ts会话活动追踪
sessionUrl.ts会话 URL
listSessionsImpl.ts会话列表实现
crossProjectResume.ts跨项目恢复

Agent 与 AI

文件说明
agentContext.tsAgent 上下文
agentId.tsAgent ID 管理
agenticSessionSearch.tsAgent 会话搜索
teammate.ts队友管理
teammateContext.ts队友上下文
teammateMailbox.ts队友邮箱
sideQuery.ts侧查询(轻量级 LLM 调用)
sideQuestion.ts侧问题
advisor.ts顾问
effort.ts推理努力级别
fastMode.ts快速模式

消息处理

文件说明
messages.ts消息构建工具
messagePredicates.ts消息谓词(类型判断)
messageQueueManager.ts消息队列管理
contentArray.ts内容数组工具

配置与设置

文件说明
config.ts配置管理
configConstants.ts配置常量
envUtils.ts环境变量工具
claudemd.tsCLAUDE.md 处理
cliArgs.tsCLI 参数解析

钩子系统

文件说明
hooks.ts钩子顶层工具(注意:执行引擎在 utils/hooks/ 子目录)

格式化与显示

文件说明
format.ts通用格式化
intl.ts国际化
markdown.tsMarkdown 处理
truncate.ts文本截断
sliceAnsi.tsANSI 切片
stringUtils.ts字符串工具
hyperlink.ts终端超链接

调试与日志

文件说明
debug.ts调试日志
debugFilter.ts调试过滤
diagLogs.ts诊断日志
log.ts日志
errors.ts错误处理
errorLogSink.ts错误日志接收器

Token 与预算

文件说明
tokenBudget.tsToken 预算管理
tokens.tsToken 工具
modelCost.ts模型费用计算

网络

文件说明
http.tsHTTP 请求
proxy.ts代理配置
caCerts.tsCA 证书
peerAddress.ts对端地址

其他重要文件

文件说明
lazySchema.ts懒加载 Schema(打破循环依赖)
memoize.ts缓存/记忆化
frontmatterParser.tsFrontmatter 解析
uuid.tsUUID 生成
hash.ts哈希计算
json.tsJSON 工具
sleep.ts延时
cron.ts / cronScheduler.ts / cronTasks.ts定时任务
glob.tsGlob 匹配
ripgrep.tsRipgrep 搜索
platform.ts平台检测
terminal.ts终端工具
theme.ts主题
zodToJsonSchema.tsZod→JSON Schema 转换
xml.ts / yaml.tsXML/YAML 工具

子目录(31 个)

目录说明
hooks/钩子执行引擎(17 文件:execPromptHook、execHttpHook、execAgentHook 等)
permissions/权限规则引擎
settings/设置读写(三层合并:user/project/local)
shell/Shell 提供者(bash/zsh/fish/powershell)
bash/Bash 特定工具
powershell/PowerShell 特定工具
git/Git 扩展操作
github/GitHub API 集成
model/模型工具(别名解析、能力查询)
mcp/MCP 工具
memory/记忆工具
messages/消息工具
skills/技能工具
plugins/插件工具
todo/待办列表工具
task/任务管理工具
swarm/Swarm 模式(多 Agent 协作)
suggestions/提示建议
ultraplan/Ultraplan 工具
sandbox/沙箱工具
computerUse/计算机使用工具
claudeInChrome/Chrome 中的 Claude
teleport/Teleport API 集成
secureStorage/安全存储
filePersistence/文件持久化
background/后台任务(含 remote/ 子目录)
deepLink/深度链接
telemetry/遥测工具
nativeInstaller/原生安装器
dxt/桌面扩展工具
processUserInput/用户输入处理

之前文档中不存在的文件(已删除)

以下文件在 src/utils/不存在,之前文档错误列出:

  • processManager.tskillProcess.ts
  • ~~gitWorktreeworktree.ts`)、gitBlame.tsgitLog.ts
  • fileWrite.tsfileDiff.ts(实际是 diff.ts
  • messageFormat.tsmessageSearch.ts
  • permissionRules.tspermissionMode.ts(在 utils/permissions/ 子目录中)
  • hookRunner.tshookContext.ts(在 utils/hooks/ 子目录中)
  • logForDebugging.ts(实际是 debug.ts)、profiling.ts
  • tokenCount.tstokenEstimate.ts(实际是 tokens.ts
  • websocket.tsretry.ts(API 重试在 services/api/withRetry.ts