07.2 Shell、模型与设置基座
关注源码
src/utils/bash/*src/utils/powershell/*src/utils/model/*src/utils/settings/*src/utils/secureStorage/*
Shell 基座
utils/bash/parser.ts 和相关模块说明,这套系统对 shell 命令不是做浅字符串判断,而是尽量进行结构化分析:
- tree-sitter bash 解析
- AST walking
- heredoc / substitution / prefix 分析
- fail-closed parse aborted sentinel
PowerShell 也有对应的独立分析与危险 cmdlet 识别。
这为:
- 权限规则匹配
- 只读判定
- sandbox 决策
- classifier 输入
提供了底层能力。
模型基座
utils/model/model.ts 及相关模块负责:
- alias 与 canonical name
- 默认模型选择
- provider 差异
- 订阅层级默认策略
- 计划模式特判
- 1m context 与 capability 判断
这层把“模型名”提升成了完整策略对象。
设置基座
utils/settings/* 负责:
- settings 读取与缓存
- 校验
- managed settings / MDM
- permission validation
- schema 输出
- settings 写回
入口层、权限层、插件层、模型层都依赖这套设置能力。
安全存储
utils/secureStorage/* 管理:
- keychain
- plaintext fallback
- 预取
它对启动性能和认证流程都有直接影响。
设计上的关键点
1. shell 不是执行细节,而是安全基础设施
因为工具权限和 sandbox 决策都依赖 shell 解析结果。
2. 模型选择是平台策略,不是 UI 偏好
它综合了订阅、provider、能力、计划模式和上下文规模。
3. settings 是多源融合系统
不是只读一个 settings.json,而是本地、用户、策略、MDM、CLI 等多来源折叠后的结果。