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 等多来源折叠后的结果。