JSON Schema
.aindex 和 .tnmsc.json 的配置细节现在统一收敛在 aindex 与 .tnmsc.json。
当前生成的 tnmsc.schema.json 比稳定且精简的运行时配置表面更宽松。编写新的 ~/.aindex/.tnmsc.json 时,请使用下列稳定字段,并把旧兼容键视为遗留项。
稳定运行时字段
| 字段 | 类型 | 含义 |
|---|---|---|
version | string | 贯穿运行时的版本标记 |
workspaceDir | string | 工作区根目录 |
logLevel | enum | trace / debug / info / warn / error |
frontMatter | object | front matter 输出格式选项 |
codeStyles | object | 轻量级用户代码风格偏好 |
windows | object | Windows 与 WSL 集成选项 |
profile | object | 开放式用户 profile 对象 |
plugins | object | 按插件显式覆写输出启用状态 |
frontMatter
frontMatter 配置块目前只暴露一个字段:
{
"frontMatter": {
"blankLineAfter": true
}
}具体区别可参见 Front Matter。
codeStyles
{
"codeStyles": {
"indent": "space",
"tabSize": 2
}
}| 字段 | 类型 | 含义 |
|---|---|---|
codeStyles.indent | "tab" | "space" | 偏好的缩进风格 |
codeStyles.tabSize | integer | 偏好的缩进宽度 |
当前也接受额外键,这样这个配置块就能容纳更多简单的个人风格偏好,而不必为每一个小增量都修改 schema。
这个配置块本身是可选的。若省略,合并后的运行时默认值仍会解析为 indent = "space" 和 tabSize = 2。
windows
{
"windows": {
"wsl2": {
"instances": ["Ubuntu", "Ubuntu-24.04"]
}
}
}| 字段 | 类型 | 含义 |
|---|---|---|
windows.wsl2.instances | string | string[] | Windows 特定集成中使用的 WSL 实例名 |
profile
profile 是一个开放对象。schema 目前显式识别以下可选字段:
nameusernamegenderbirthday
也接受额外键。
plugins
当前 TypeScript schema 还识别如下写法:
{
"plugins": {
"git": true,
"codex": false,
"trae": true
}
}每个插件键只接受:
truefalse
未知键现在不会再被忽略。如果 plugins 包含不受支持的键,tnmsc 会记录配置校验错误、显示受支持键列表,并直接退出。
已知键包括:
agentsMdclaudeCodecodexcursordroidgeminigitjetbrainsjetbrainsCodeStylekiroopencodeqoderreadmetraetraeCnvscodewarpwindsurfzed
当省略 plugins 时,当前内建默认行为会保持 git 和 readme 启用。其他已知插件键会保持关闭,直到你显式把它们设为 true。
plugins.readme 同时用于 README 类输出和 .editorconfig。
请使用 plugins.git,而不是 plugins.gitExclude。
这个配置块就是直接的输出闸门。某个插件即使出现在 plugin.config.ts 里,作为已装配的集成目标存在,只要它的启用状态没有解析为 true,它就不会输出文件。
Warning 输出插件经常会写入
.codex/、.claude/这类由工具接管的目录。如果 tnmsc 需要创建目录的位置上已经存在一个同名文件,这会被视为冲突,因为目录树无法正常创建。当前运行时的设计是继续向前推进:它会先发出警告,删除阻塞文件,然后重建所需目录路径,以便同步可以完成。
例如,下面这段配置现在会校验失败:
{
"plugins": {
"vscode": true,
"codex": true,
"foo": true
}
}foo 会被拒绝,因为它不在上面列出的受支持插件键之中。
遗留兼容键
不要再把下面这些键视为受支持的用户侧配置表面的一部分:
agentscommandSeriesOptionsoutputScopescleanupProtectionaindex、dir,以及旧的*.src/*.dist路径覆盖- 更早迁移时期的字段,如
externalProjects、excludePatterns和shadowSourceProject
如果你仍然在旧示例或过渡期 schema 输出中看到这些键,请把它们视为兼容性残留,并从新配置中移除。