Skip to Content
JSON Schema

JSON Schema

.aindex.tnmsc.json 的配置细节现在统一收敛在 aindex 与 .tnmsc.json

当前生成的 tnmsc.schema.json 比稳定且精简的运行时配置表面更宽松。编写新的 ~/.aindex/.tnmsc.json 时,请使用下列稳定字段,并把旧兼容键视为遗留项。

稳定运行时字段

字段类型含义
versionstring贯穿运行时的版本标记
workspaceDirstring工作区根目录
logLevelenumtrace / debug / info / warn / error
frontMatterobjectfront matter 输出格式选项
codeStylesobject轻量级用户代码风格偏好
windowsobjectWindows 与 WSL 集成选项
profileobject开放式用户 profile 对象
pluginsobject按插件显式覆写输出启用状态

frontMatter

frontMatter 配置块目前只暴露一个字段:

JSON
{
  "frontMatter": {
    "blankLineAfter": true
  }
}

具体区别可参见 Front Matter

codeStyles

JSON
{
  "codeStyles": {
    "indent": "space",
    "tabSize": 2
  }
}
字段类型含义
codeStyles.indent"tab" | "space"偏好的缩进风格
codeStyles.tabSizeinteger偏好的缩进宽度

当前也接受额外键,这样这个配置块就能容纳更多简单的个人风格偏好,而不必为每一个小增量都修改 schema。

这个配置块本身是可选的。若省略,合并后的运行时默认值仍会解析为 indent = "space"tabSize = 2

windows

JSON
{
  "windows": {
    "wsl2": {
      "instances": ["Ubuntu", "Ubuntu-24.04"]
    }
  }
}
字段类型含义
windows.wsl2.instancesstring | string[]Windows 特定集成中使用的 WSL 实例名

profile

profile 是一个开放对象。schema 目前显式识别以下可选字段:

  • name
  • username
  • gender
  • birthday

也接受额外键。

plugins

当前 TypeScript schema 还识别如下写法:

JSON
{
  "plugins": {
    "git": true,
    "codex": false,
    "trae": true
  }
}

每个插件键只接受:

  • true
  • false

未知键现在不会再被忽略。如果 plugins 包含不受支持的键,tnmsc 会记录配置校验错误、显示受支持键列表,并直接退出。

已知键包括:

  • agentsMd
  • claudeCode
  • codex
  • cursor
  • droid
  • gemini
  • git
  • jetbrains
  • jetbrainsCodeStyle
  • kiro
  • opencode
  • qoder
  • readme
  • trae
  • traeCn
  • vscode
  • warp
  • windsurf
  • zed

当省略 plugins 时,当前内建默认行为会保持 gitreadme 启用。其他已知插件键会保持关闭,直到你显式把它们设为 true

plugins.readme 同时用于 README 类输出和 .editorconfig

请使用 plugins.git,而不是 plugins.gitExclude

这个配置块就是直接的输出闸门。某个插件即使出现在 plugin.config.ts 里,作为已装配的集成目标存在,只要它的启用状态没有解析为 true,它就不会输出文件。

Warning 输出插件经常会写入 .codex/.claude/ 这类由工具接管的目录。如果 tnmsc 需要创建目录的位置上已经存在一个同名文件,这会被视为冲突,因为目录树无法正常创建。

当前运行时的设计是继续向前推进:它会先发出警告,删除阻塞文件,然后重建所需目录路径,以便同步可以完成。

例如,下面这段配置现在会校验失败:

JSON
{
  "plugins": {
    "vscode": true,
    "codex": true,
    "foo": true
  }
}

foo 会被拒绝,因为它不在上面列出的受支持插件键之中。

遗留兼容键

不要再把下面这些键视为受支持的用户侧配置表面的一部分:

  • agents
  • commandSeriesOptions
  • outputScopes
  • cleanupProtection
  • aindexdir,以及旧的 *.src / *.dist 路径覆盖
  • 更早迁移时期的字段,如 externalProjectsexcludePatternsshadowSourceProject

如果你仍然在旧示例或过渡期 schema 输出中看到这些键,请把它们视为兼容性残留,并从新配置中移除。

Last updated on