@shgroup/dsh-serenity-hooks 1.64.0 → 1.65.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/README.md +14 -14
  2. package/dsh.plugin.json +3 -3
  3. package/lib/{ccc-B0ZGL9lx.js → ccc-C33QWoWZ.js} +3 -3
  4. package/lib/{ccc-roots-GIJ3A_tw.js → ccc-roots-RMzGU-CJ.js} +2 -2
  5. package/lib/ccc.d.ts +15 -50
  6. package/lib/{trajectory-assistant.d.ts → cognitive-trajectory-assistant.d.ts} +9 -9
  7. package/lib/{trajectory-bound.d.ts → cognitive-trajectory-bound.d.ts} +10 -10
  8. package/lib/{trajectory-ops.d.ts → cognitive-trajectory-ops.d.ts} +6 -6
  9. package/lib/{trajectory-skills.d.ts → cognitive-trajectory-skills.d.ts} +8 -8
  10. package/lib/cro-log.d.ts +2 -2
  11. package/lib/cro.d.ts +1 -1
  12. package/lib/index.d.ts +1 -1
  13. package/lib/index.js +214 -213
  14. package/lib/invariant.d.ts +1 -1
  15. package/lib/invariant.js +1 -1
  16. package/lib/json.d.ts +1 -1
  17. package/lib/{localstore-ops-DMs_ovHo.js → localstore-ops-ylQoPz1Q.js} +1 -1
  18. package/lib/{message-source-B4P3Uw6D.js → message-source--2veY0JU.js} +17 -17
  19. package/lib/output-guard-seam.d.ts +1 -1
  20. package/lib/output-guard.d.ts +1 -1
  21. package/lib/rebuild.d.ts +2 -2
  22. package/lib/seams/keeper.d.ts +6 -6
  23. package/lib/seams/system-prompt.d.ts +1 -1
  24. package/lib/{settings-section-DN7g8K7Q.js → settings-section-B1YzjFz6.js} +1 -1
  25. package/lib/skiff-core.d.ts +10 -10
  26. package/lib/skiff-debug.d.ts +1 -1
  27. package/lib/{skiff-role-B615L9MV.js → skiff-role-Boc4SKct.js} +14 -14
  28. package/lib/skiff-role.d.ts +4 -4
  29. package/lib/skills/resource-index.d.ts +1 -1
  30. package/lib/skills-discovery.d.ts +1 -1
  31. package/lib/tools/{trajectory.d.ts → cognitive-trajectory.d.ts} +7 -7
  32. package/lib/tools/skiff-admin.d.ts +1 -1
  33. package/lib/usage-stats.d.ts +1 -1
  34. package/lib/wake-registry.d.ts +5 -5
  35. package/lib/wake-scheduler.d.ts +5 -5
  36. package/lib/weixin-bridge.d.ts +1 -1
  37. package/lib/{weixin-route-Aheyq3fN.js → weixin-route-BoSC-uPp.js} +2 -2
  38. package/package.json +2 -2
package/README.md CHANGED
@@ -71,7 +71,7 @@ dsh plugin --profile web add link:$(pwd)/hooks/dsh-serenity-hooks
71
71
  | 工具 | 功能 | 使用场景 |
72
72
  |---|---|---|
73
73
  | `container_fs` | 在工作区内管理文件:列目录、查找、复制、移动、新建、追加、在文件管理器中打开 | 需要查看或整理工作区内文件时 |
74
- | `container_trajectory` | **一条轨迹**:其身体(SESSION.md)+ 其时间轴。除建/看/切换/原地重建外,还可登记**未来唤醒**与**即时递话** | 任何多步骤工作,第一步即调用它;需要 AI 在未来某刻自动继续时也用它 |
74
+ | `cognitive_trajectory` | **一条认知轨迹**:其身体(SESSION.md)+ 其时间轴。除建/看/切换/原地重建外,还可登记**未来唤醒**与**即时递话** | 任何多步骤工作,第一步即调用它;需要 AI 在未来某刻自动继续时也用它 |
75
75
  | `dashboard` | 仪表盘:工作区健康检查(三项)、当前时间、等待 | 进入工作区后先行自查;等待外部服务时使用 |
76
76
  | `container_git` | git 操作:status / commit / push / log / pull / diff | 提交与推送代码;它绝不自动强推 |
77
77
  | `msm` | 小工具执行入口:`msm("名字", ["参数"])`;名字记不全时返回候选;`inspect=true` 查看用法 | 调用工作区内已注册的任何小工具 |
@@ -86,9 +86,9 @@ dsh plugin --profile web add link:$(pwd)/hooks/dsh-serenity-hooks
86
86
  | `diagram` | 绘图:AI 给出一段**标签式源码**,插件**在进程内**将其绘制为 PNG 并**贴入对话**——不启动浏览器、不截图、正常路径不落文件。坐标 = 画布像素、y 向下;写错的图元逐条报错并跳过,其余照常绘制;自带四项检查(块重叠 / 标签溢出 / 悬空端点 / 线压字),**只告警不拦图** | 需要把关系图/示意图直接放进对话时。**条件出现**:实验性 demo,**默认关**(关闭时该工具**根本不注册**,AI 看不到它、不占上下文);开关在设置面板「工具」组,拨动即时生效。中英文与常用符号均可绘制,因字体随插件内置(约 5 MB) |
87
87
 
88
88
  > **更名记录**(旧名已彻底停用,无兼容别名;旧会话中出现旧名时,**一律取所在那一组的末项**):
89
- > `cc_fs` → `container_fs` · `cc_git` → `container_git` · `session`+`session_rebuild` → `logbook` → `trajectory` → **`container_trajectory`**(今名) ·
89
+ > `cc_fs` → `container_fs` · `cc_git` → `container_git` · `session`+`session_rebuild` → `logbook` → `trajectory` → **`cognitive_trajectory`**(今名) ·
90
90
  > `acc_kit` → `dashboard` · `acc_msm` → `msm`(执行)+ `container_admin`(管理) · `eap`/`neat`/`cce` → `praxis` ·
91
- > `skiff_admin` → `container_admin role` · `autopilot-trajectory` → `trajectory` → **`container_trajectory`**(今名)。
91
+ > `skiff_admin` → `container_admin role` · `autopilot-trajectory` → `trajectory` → **`cognitive_trajectory`**(今名)。
92
92
 
93
93
  ### 3.2 机械约束(AI 绕不过去)
94
94
 
@@ -180,7 +180,7 @@ my-workspace/ ← 工作区根目录(放一个 .serenity
180
180
 
181
181
  | # | 目标 | 实际路径 |
182
182
  |---|---|---|
183
- | 1 | **长期项目不断线** | `container_trajectory create` 建轨迹 → 每推进一段写进去 → 中断后 `container_trajectory use` 接上 → 上下文满了 `container_trajectory rebuild` 原地重建并自动继续 |
183
+ | 1 | **长期项目不断线** | `cognitive_trajectory create` 建轨迹 → 每推进一段写进去 → 中断后 `cognitive_trajectory use` 接上 → 上下文满了 `cognitive_trajectory rebuild` 原地重建并自动继续 |
184
184
  | 2 | **批量同步代码** | 当前仓库 `container_git commit/push`;多个子仓库一条命令全同步(自动提交 + 推送) |
185
185
  | 3 | **做一集字幕** | 搜片源 → 下载 → Whisper 转写 → 翻译 → 双语 SRT → 机械质检(7 项)→ 推送订阅/邮件 |
186
186
  | 4 | **服务器巡检** | 一条命令输出 CPU/内存/GPU/容器/服务报告;重启容器也在同一条白名单通道里 |
@@ -286,20 +286,20 @@ my-workspace/ ← 工作区根目录(放一个 .serenity
286
286
  > **为什么不再自造**:原 3100 面是一个**没有客户端生态**的私有外壳,而官方件已发布并随宿主同版本演进。
287
287
  > 详细接法与手机端配置见宁静号 CCC 的接入指南。
288
288
 
289
- ### 6.5 轨迹与定时唤醒(trajectory)
289
+ ### 6.5 认知轨迹与定时唤醒(cognitive trajectory)
290
290
 
291
- `trajectory`(轨迹)是一等概念:一个工作区里可以有任意多条轨迹并行。
291
+ `cognitive trajectory`(认知轨迹)是一等概念:一个工作区里可以有任意多条认知轨迹并行。
292
292
 
293
- **定时唤醒**:用 `container_trajectory send-later` 登记一条"唤醒" = 未来某时刻 + 一条消息——可以给自己预约,也可以唤醒别的轨迹;落在工作区内的 `AGENT_SESSIONS/wake-registry.json`(可读可审计),到点由中心调度器投递,**不阻塞、不等待、也不回执**。
293
+ **定时唤醒**:用 `cognitive_trajectory send-later` 登记一条"唤醒" = 未来某时刻 + 一条消息——可以给自己预约,也可以唤醒别的轨迹;落在工作区内的 `AGENT_SESSIONS/wake-registry.json`(可读可审计),到点由中心调度器投递,**不阻塞、不等待、也不回执**。
294
294
 
295
- **即时投递**:用 `container_trajectory send-now` 把一条消息**现在**就递过去,并且**不排队**——目标在内存里且**正在跑轮次**,就 `steer` **当场注入当前轮**;目标空闲就**立即起一轮**;目标不在内存里就**冷载入后投递**(**等效于直接唤醒**,但**不等调度器的 5 分钟节拍**)。它**有同步回执**(告知走了 live 还是冷载入),**不落注册表**(那张表专管"未来时刻")。
295
+ **即时投递**:用 `cognitive_trajectory send-now` 把一条消息**现在**就递过去,并且**不排队**——目标在内存里且**正在跑轮次**,就 `steer` **当场注入当前轮**;目标空闲就**立即起一轮**;目标不在内存里就**冷载入后投递**(**等效于直接唤醒**,但**不等调度器的 5 分钟节拍**)。它**有同步回执**(告知走了 live 还是冷载入),**不落注册表**(那张表专管"未来时刻")。
296
296
 
297
297
  - 两者只差两处:**时刻**(现在 / 未来)与**回执**(有 / 无)——"预约"天生是 fire-and-forget(不可回收、不回执),"递话"则是一次调用一次答复。各自语义干净,不把两种语义塞进同一个动作(🔴 更名:原名 `wake-later` / `send-message`,现名 **`send-later` / `send-now`**——族名取共享词干 `send-`,轴取 `-later`/`-now`)
298
298
  - ⚠️ **回执只到"已注入 / 已起轮"**:它**不表示**目标已经执行或答复。要确证"目标真的动了",须查看它自己的 `SESSION.md`(**不得凭回执结案**)
299
299
  - ⚠️ **唯一的例外路径**:`steer` 不可用时**退回排队**(fail-safe:**宁可排队,不可静默丢消息**)——此时回执文案写明"steer 不可用 ⇒ 退回 followup"。**`send-later` 不受影响**:预约的本职是"到点唤起",在跑时排队不打断当前轮,这一行为已经过实证验收
300
300
  - **目标没打开也能唤醒**:冷载入不了则条目留在登记表里并记下原因,**不静默丢弃**
301
301
  - **"周期"归工作区自己**:要一轮接一轮,就由**收到唤醒的那条轨迹**在每轮结束时再排一次下一轮——ACC 只提供"到点投递一条消息"这个原语,不替工作区决定节拍(焦点、节拍、偏见都由工作区自定;任意条轨迹并行、互不干扰)
302
- - **轨迹可以带上 skill**(两种写法,**取并集**:容器级在前、轨迹级追加、同名去重):① **一处声明、全容器生效**——在 `.opencode/serenity.json` 写 `trajectory.skills: [名字, …]`(底座),**本工作区的每条轨迹**被绑定期间都注入这些 skill 的全文(**连子角色会话也算**);② **只给这一条**——在它的 `SESSION.md` 顶部 frontmatter 写 `skills: [名字, …]`(这条额外的)。⚠️ 是"**绑定期间一直供给**"而非"`use` 时注入一次"——改了配置或 frontmatter **立即生效**(每请求重新求值,不缓存),也不随对话压缩消失;而 `create` 只新建、**不夺走当前绑定** ⇒ 新轨迹要**显式 `use`** 才挂上。skill 名来自工作区数据,**先过安全校验才会用于拼路径**,找不到会在提示里明说"缺失"而**不静默跳过**;⚠️ **重写 `SESSION.md` 时务必原样保留顶部 frontmatter**(抹掉 = 静默撤销该轨迹的声明)
302
+ - **轨迹可以带上 skill**(两种写法,**取并集**:容器级在前、轨迹级追加、同名去重):① **一处声明、全容器生效**——在 `.opencode/serenity.json` 写 `cognitiveTrajectory.skills: [名字, …]`(底座),**本工作区的每条轨迹**被绑定期间都注入这些 skill 的全文(**连子角色会话也算**);② **只给这一条**——在它的 `SESSION.md` 顶部 frontmatter 写 `skills: [名字, …]`(这条额外的)。⚠️ 是"**绑定期间一直供给**"而非"`use` 时注入一次"——改了配置或 frontmatter **立即生效**(每请求重新求值,不缓存),也不随对话压缩消失;而 `create` 只新建、**不夺走当前绑定** ⇒ 新轨迹要**显式 `use`** 才挂上。skill 名来自工作区数据,**先过安全校验才会用于拼路径**,找不到会在提示里明说"缺失"而**不静默跳过**;⚠️ **重写 `SESSION.md` 时务必原样保留顶部 frontmatter**(抹掉 = 静默撤销该轨迹的声明)
303
303
 
304
304
  #### CRO —— 由轨迹**自行判断何时该被叫醒**
305
305
 
@@ -314,7 +314,7 @@ my-workspace/ ← 工作区根目录(放一个 .serenity
314
314
  | **谁跑它** | ACC 的唤醒调度器(既有 **5 分钟** tick) |
315
315
  | **给它什么** | 一条 stdin 进来的 **JSON 快照**:身份 / 时间 / 轨迹身体(SESSION.md 体积与 mtime、`references/` 清单)/ 绑定与载体(绑定的、live 的、🔴 **正在跑轮次的**)/ 调度面(本轨迹在办唤醒、调度器状态) |
316
316
  | **它给我什么** | stdout **一行 JSON**:`{"wake":true,"prompt":"…","reason":"…"}` 或 `{"wake":false}`(**缺省 = 不打扰**) |
317
- | **写程序前先读** | `container_trajectory cro-guide` —— **指南 + 一份可直接拿去自测的样例快照** |
317
+ | **写程序前先读** | `cognitive_trajectory cro-guide` —— **指南 + 一份可直接拿去自测的样例快照** |
318
318
 
319
319
  **几条设计上的硬约束**(都不是随便定的):
320
320
 
@@ -347,7 +347,7 @@ my-workspace/ ← 工作区根目录(放一个 .serenity
347
347
  |---|---|---|
348
348
  | DSH 原生设置 | DSH 的 settings.yaml(即设置面板那几项) | 开关与阈值:网关总开关、重建阈值、子角色开关与调试端口、**CRO 总闸(`croEnabled`,默认为开)**、**图工具总闸(默认关)**、**官方 ACP 面(`acpFaceEnabled`,默认关)** |
349
349
  | 插件全局文件 | `~/.dsh/serenity-hooks.json`(权限 0600) | 网关账号(scrypt + TOTP)、监听地址与端口、工作区白名单、cookie 安全开关 |
350
- | 工作区配置 | `.opencode/serenity.json` | 助手模型白名单、日志阈值、安全模式黑名单、子角色、**轨迹级 skill 供给(`trajectory.skills`)**、微信(账号/路由/开关) |
350
+ | 工作区配置 | `.opencode/serenity.json` | 助手模型白名单、日志阈值、安全模式黑名单、子角色、**认知轨迹级 skill 供给(`cognitiveTrajectory.skills`)**、微信(账号/路由/开关) |
351
351
  | 工作区凭据 | `localstore.json` | 密钥与本地偏好;微信机器人 token 也在这一层 |
352
352
 
353
353
  > 原则:**插件是全局的,工作区是具体的**——账号、开关、阈值归插件层;角色、凭据、本地偏好归工作区层。
@@ -362,7 +362,7 @@ AI 一次能"记住"的内容有上限。满了不用手动开新会话:
362
362
  | 机制 | 说明 |
363
363
  |---|---|
364
364
  | **工作日志(SESSION.md)** | AI 的"笔记本",永远留在原地。目标、决定、进度都写这儿 |
365
- | **原地重建(container_trajectory rebuild)** | 快满时它会提示 AI 主动重建:把这一轮对话清空,但重新注入"你是谁 + 继续 S### 的工作"——**载体换了,活儿接着干**。重建前它会把"手头做到哪了"写进同目录的 `REBUILD-TODO.md`,重建后的它先去读那张便签 |
365
+ | **原地重建(cognitive_trajectory rebuild)** | 快满时它会提示 AI 主动重建:把这一轮对话清空,但重新注入"你是谁 + 继续 S### 的工作"——**载体换了,活儿接着干**。重建前它会把"手头做到哪了"写进同目录的 `REBUILD-TODO.md`,重建后的它先去读那张便签 |
366
366
  | **进度提醒** | 做久了会按计分提醒 AI 把进度写回日志,并要求它回确认码 |
367
367
  | **沉淀纪律** | 重建前如果产生了有价值的认知,先把它写进相关技能(而不是丢掉) |
368
368
 
@@ -399,7 +399,7 @@ pnpm build # 打包(lib/index.js + client.js)
399
399
  | 跑在 | OpenCode | DeepSeek Harness |
400
400
  | 实现 | 独立 | **独立**(不复用源码,但遵循同一套标准) |
401
401
  | 系统提示词 | `system.transform` | `systemPrompt.section`,平台无关的部分逐字对齐 |
402
- | 工具 | msm / container_fs / logbook 等 | container_fs / container_trajectory / dashboard / container_git / msm / praxis / ontology / serenity-skill-creator / cheap-worker / localstore / container_admin + 三个条件出现的(`im-bridge` / `acc-diag` / `diagram`) |
402
+ | 工具 | msm / container_fs / logbook 等 | container_fs / cognitive_trajectory / dashboard / container_git / msm / praxis / ontology / serenity-skill-creator / cheap-worker / localstore / container_admin + 三个条件出现的(`im-bridge` / `acc-diag` / `diagram`) |
403
403
 
404
404
  **同一个工作区可以随时换运行时**:`.serenity` 标记、`.opencode/skills/`、配置、`AGENT_SESSIONS/` 的文件格式都一致;
405
405
  差别只在平台层(工具名、注入方式),换过去以后 AI 收到的约束是一样的。
@@ -418,7 +418,7 @@ pnpm build # 打包(lib/index.js + client.js)
418
418
  连续失败 5 次锁 15 分钟起(指数退避,上限 4 小时)。等锁过期,或检查账号的验证码绑定状态。
419
419
 
420
420
  **Q:上下文快满了怎么办?**
421
- 先让 AI 把进度写回 SESSION.md,然后按提示调用 `container_trajectory rebuild`。轨迹会自动接续,不用手动开新会话。
421
+ 先让 AI 把进度写回 SESSION.md,然后按提示调用 `cognitive_trajectory rebuild`。轨迹会自动接续,不用手动开新会话。
422
422
 
423
423
  **Q:对外问答页会返回内部信息吗?**
424
424
  该面已于 2026-10-15 移除(改用官方 ACP,见 §6.4)。走官方 ACP 时,**认证与暴露范围由接入层决定**——
package/dsh.plugin.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "id": "dsh-serenity-hooks",
3
- "version": "1.64.0",
3
+ "version": "1.65.0",
4
4
  "main": "lib/index.js",
5
- "description": "宁静号 ACC harness(Native Cordis 插件):给 DSH 装一个「AI 工作区」——14 个工具(container_fs/container_trajectory/dashboard/container_git/msm/praxis/ontology/serenity-skill-creator/cheap-worker/localstore/container_admin;另三个 im-bridge/acc-diag/diagram 按配置条件出现)+ 机械约束(安全模式/工作区围墙/密钥守卫)+ 轨迹日志与原地重建 + 网页登录入口/微信桥/子角色/官方 ACP 面/trajectory 唤醒注册表。适配 DSH 0.1.7-rc.1 / 0.2.0-rc.1 / 0.2.1-rc.1(三档,deepseek-ai/deepseek-harness)。",
5
+ "description": "宁静号 ACC harness(Native Cordis 插件):给 DSH 装一个「AI 工作区」——14 个工具(container_fs/cognitive_trajectory/dashboard/container_git/msm/praxis/ontology/serenity-skill-creator/cheap-worker/localstore/container_admin;另三个 im-bridge/acc-diag/diagram 按配置条件出现)+ 机械约束(安全模式/工作区围墙/密钥守卫)+ 认知轨迹日志与原地重建 + 网页登录入口/微信桥/子角色/官方 ACP 面/认知轨迹唤醒注册表。适配 DSH 0.1.7-rc.1 / 0.2.0-rc.1 / 0.2.1-rc.1(三档,deepseek-ai/deepseek-harness)。",
6
6
  "engines": {
7
7
  "dsh": ">=0.1.7-rc.1"
8
8
  },
9
9
  "contributes": {
10
10
  "tools": [
11
11
  "container_fs",
12
- "container_trajectory",
12
+ "cognitive_trajectory",
13
13
  "dashboard",
14
14
  "container_git",
15
15
  "msm",
@@ -213,8 +213,8 @@ function readSafeModeHiddenTools(root, paths = DEFAULT_SERENITY_CONFIG_PATHS) {
213
213
  * @param paths 候选配置相对路径
214
214
  * @returns 去空白后的 skill 名列表(非字符串/空白项被丢弃)
215
215
  */
216
- function readTrajectorySkills(root, paths = DEFAULT_SERENITY_CONFIG_PATHS) {
217
- const list = loadSerenityConfig(root, paths).trajectory?.skills;
216
+ function readCognitiveTrajectorySkills(root, paths = DEFAULT_SERENITY_CONFIG_PATHS) {
217
+ const list = loadSerenityConfig(root, paths).cognitiveTrajectory?.skills;
218
218
  if (!Array.isArray(list)) return [];
219
219
  return list.filter((x) => typeof x === "string" && x.trim() !== "").map((x) => x.trim());
220
220
  }
@@ -256,4 +256,4 @@ function matchBlacklist(relPath, rules) {
256
256
  return null;
257
257
  }
258
258
  //#endregion
259
- export { resolveInside as _, findSerenityRoot as a, matchBlacklist as c, readCccName as d, readCheapWorkerConfig as f, readUtf8 as g, readTrajectorySkills as h, findGitRoot as i, pathInside as l, readSafeModeHiddenTools as m, SAFE_MODE_MARKER as n, isSafeModeOn as o, readExclusiveTools as p, classifyPath as r, loadSerenityConfig as s, DEFAULT_SERENITY_CONFIG_PATHS as t, readBlacklist as u };
259
+ export { resolveInside as _, findSerenityRoot as a, matchBlacklist as c, readCccName as d, readCheapWorkerConfig as f, readUtf8 as g, readSafeModeHiddenTools as h, findGitRoot as i, pathInside as l, readExclusiveTools as m, SAFE_MODE_MARKER as n, isSafeModeOn as o, readCognitiveTrajectorySkills as p, classifyPath as r, loadSerenityConfig as s, DEFAULT_SERENITY_CONFIG_PATHS as t, readBlacklist as u };
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
2
- import { a as findSerenityRoot } from "./ccc-B0ZGL9lx.js";
2
+ import { a as findSerenityRoot } from "./ccc-C33QWoWZ.js";
3
3
  import { basename } from "node:path";
4
4
  //#region src/host/access.ts
5
5
  /**
@@ -227,7 +227,7 @@ async function listCccs(ctx, opts = {}) {
227
227
  if (typeof defaultRoot === "string" && defaultRoot !== "" && !c.roots.includes(defaultRoot)) c.roots.unshift(defaultRoot);
228
228
  let rolesOf = null;
229
229
  if (opts.withRoles === true) {
230
- const { readSkiffRoles } = await import("./skiff-role-B615L9MV.js").then((n) => n.u);
230
+ const { readSkiffRoles } = await import("./skiff-role-Boc4SKct.js").then((n) => n.d);
231
231
  rolesOf = (root) => [...readSkiffRoles(root).keys()];
232
232
  }
233
233
  return c.roots.map((root) => ({
package/lib/ccc.d.ts CHANGED
@@ -92,23 +92,17 @@ interface SerenityConfig {
92
92
  roles?: Record<string, SkiffRoleConfig>;
93
93
  };
94
94
  /**
95
- * Autopilot Trajectory(自动巡航轨迹,正式版 v1.27.4;前身 autotrajectory 实验 v1.26.12~17):
96
- * CCC 定义的一条自主 trajectory——时钟唤起 + 先验偏见(自生+随机)+ 前台运行。
97
- * 未配置或 enabled=false → 机制完全不启动(零资源占用,零影响现有功能)。
98
- * 多 CCC 独立(v1.27.4):每 CCC 自己的配置,时钟遍历所有 live+enabled CCC 各自唤起。
99
- */
100
- autopilotTrajectory?: AutopilotTrajectorySettings;
101
- /** 旧键兼容(正式化前存量 CCC——新键 autopilotTrajectory 优先,旧键回退) */
102
- autotrajectory?: AutopilotTrajectorySettings;
103
- /**
104
- * trajectory 族配置(D58,S142 2026-09-13):`trajectory` 是一等概念,
105
- * **autopilot 降为其子集**——故 autopilot 的配置迁到 `trajectory.autopilot`。
106
- * 读取顺序(逐级回退,**不回写**):`trajectory.autopilot` → `autopilotTrajectory` → `autotrajectory`。
107
- * 唤醒注册表(未来时刻一次性唤醒)为 CCC 级文件 `AGENT_SESSIONS/wake-registry.json`,不在此配置。
95
+ * 认知轨迹族配置(D58,S142 2026-09-13;2026-10-18 更名 `cognitiveTrajectory`)。
96
+ *
97
+ * 🔴 **2026-10-18(owner 令):autopilot 配置面整体删除** —— ACC 侧 autopilot 机制
98
+ * 早在 v1.35.0 就整段退场(周期性自主巡航已由 CRO 取代)。当时的处置只删了实现,
99
+ * 把配置读取面留了下来,成为"读到也无人消费"的死键。owner 2026-10-18 明示
100
+ * 「autopilot 整体已经废弃,可以删除的」⇒ 本次一并移除:
101
+ * `cognitiveTrajectory.autopilot` / 旧键 `autopilotTrajectory` / 更旧键 `autotrajectory`
102
+ * / 类型 `AutopilotTrajectorySettings`。
103
+ * ⇒ 存量 CCC 里这段配置**不再被读取**(静默忽略;无迁移必要 —— 它已无消费者)。
108
104
  */
109
- trajectory?: {
110
- /** autopilot(周期自唤醒的特例;每 CCC 单例,D59) */
111
- autopilot?: AutopilotTrajectorySettings;
105
+ cognitiveTrajectory?: {
112
106
  /**
113
107
  * **CCC 级 skill 供给**(v1.44.0;owner 令 2026-09-20:「要求实现我的诉求……skiff 也支持」)。
114
108
  *
@@ -156,37 +150,6 @@ interface SerenityConfig {
156
150
  */
157
151
  exclusiveTools?: string[];
158
152
  }
159
- /**
160
- * Autopilot Trajectory 配置(CCC 定义;S142 用户拍板 v0.5 + 正式化 v1.27.4):
161
- * - 偏见内容提供者 = CCC 根目录下脚本(biasProvider,缺省 autopilot-bias.ts;旧默认
162
- * autotrajectory-bias.ts 回退——存量 CCC 零迁移)——tool 直接运行取 stdout 作为偏见内容
163
- * - 会话标志 = 目录名后缀 `--auto`:AGENT_SESSIONS/<date>--<desc>--auto/
164
- * - **session 必填**(用户拍板:自动唤起不默认任何会话——CCC 日常有多条 trajectory 在跑,
165
- * 未配置明确目标绝不唤起);唤起窗口避开北京时间 8~18 点(用量峰谷省钱——用户拍板)
166
- */
167
- export interface AutopilotTrajectorySettings {
168
- /** 总开关(缺省 false——默认关,未开零资源占用) */
169
- enabled?: boolean;
170
- /** 无人类活动 N 小时后自动唤起(缺省 12;下限 0.01h——v1.27.8 支持小数高频实验) */
171
- intervalHours?: number;
172
- /** 偏见内容提供者脚本(相对 CCC 根;缺省 autopilot-bias.ts——缺失报错要求实现) */
173
- biasProvider?: string;
174
- /**
175
- * 轨迹焦点(topPrompt,v1.26.17,用户"确保自动轨迹质量"):**CCC 定义 Autopilot 时
176
- * 自己填写**的顶层提示词——本轨迹的核心目标/纪律/质量要求。**每次唤起最先注入**(位于
177
- * 身份锚定之前,影响力最大),作为稳定焦点锚定 trajectory,防止多轮自主唤起中焦点丢失
178
- * (腐化)。区别于偏见内容(每轮随机探索方向):焦点=稳定锚,偏见=随机探索,两者互补。
179
- * 实验经验:trajectory 在多轮中腐化严重(焦点丢失)——topPrompt 即为此而设。
180
- */
181
- topPrompt?: string;
182
- /** **必填**:目标会话(S### / 目录名)——未配置绝不唤起(CCC 日常多轨迹并行,不默认) */
183
- session?: string;
184
- /** 避开唤起的高峰时段(北京时间,[start, end) 内不唤起;缺省 {8, 18}——用量峰谷省钱) */
185
- avoidWakeHours?: {
186
- start?: number;
187
- end?: number;
188
- };
189
- }
190
153
  /**
191
154
  * 微信桥配置(CCC 级;S142 用户拍板):
192
155
  * - 结构/路由/开关在 .opencode/serenity.json(git 管可重建)
@@ -342,8 +305,10 @@ export interface SkiffRoleConfig {
342
305
  msms?: string[];
343
306
  /** 非 MSM 工具白名单(独立):平台/ACC 工具名列表;缺省空 = 仅 MSM 通道 */
344
307
  tools?: string[];
345
- /** 轨迹纪律子集(缺省全 false = 完全独立,不参与 keeper/session/rebuild) */
346
- trajectory?: {
308
+ /** 认知轨迹纪律子集(缺省全 false = 完全独立,不参与 keeper/session/rebuild)
309
+ * 🔴 2026-10-18 更名:`trajectory` → **`cognitiveTrajectory`**(与顶层同名同义)。
310
+ * ⚠️ CCC 侧必须同批改(owner 令「CCC 自行处理」),否则该角色静默退化为全 false。 */
311
+ cognitiveTrajectory?: {
347
312
  session?: boolean;
348
313
  keeper?: boolean;
349
314
  rebuild?: boolean;
@@ -442,7 +407,7 @@ export declare function readSafeModeHiddenTools(root: string, paths?: string[]):
442
407
  * @param paths 候选配置相对路径
443
408
  * @returns 去空白后的 skill 名列表(非字符串/空白项被丢弃)
444
409
  */
445
- export declare function readTrajectorySkills(root: string, paths?: string[]): string[];
410
+ export declare function readCognitiveTrajectorySkills(root: string, paths?: string[]): string[];
446
411
  export declare const SAFE_MODE_MARKER = ".serenity-safe-on";
447
412
  export declare function isSafeModeOn(root: string): boolean;
448
413
  /** 黑名单条目(对齐 osp BlacklistEntry):pattern + 可选自定义拦截提示 message */
@@ -1,8 +1,8 @@
1
1
  /**
2
- * trajectory-assistant.ts — 关卡化注入的统一命名与风格门面(v0.3,S142)
2
+ * cognitive-trajectory-assistant.ts — 关卡化注入的统一命名与风格门面(v0.3,S142)
3
3
  *
4
4
  * 概念(用户拍板 2026-09-05):dsp 全部"过程中动态提示注入"统一命名为
5
- * trajectory-assistant(轨迹助航员)。关卡设计思想塑造**结构与时机**
5
+ * cognitive-trajectory-assistant(轨迹助航员)。关卡设计思想塑造**结构与时机**
6
6
  * (何时/何地注入),**不用于提示词用词**(D8 词法原则)——纯游戏黑话
7
7
  * (BOSS/XP/level-up)禁止出现在提示词文本;CHECKPOINT/LIMIT/TUTORIAL 等
8
8
  * 跨领域自然通用词允许。
@@ -15,7 +15,7 @@
15
15
  * L6 结算)仅在本模块注释与内部文档出现,永不浮现在提示词文本。
16
16
  *
17
17
  * 结算(settlement)挂点:D6 用户拍板——若 CCC 有标准 SESSION 复盘仪式,
18
- * 结算视图归 trajectory-assistant。当前 close/archive 无复盘摘要 ⇒ 机制延后。
18
+ * 结算视图归 cognitive-trajectory-assistant。当前 close/archive 无复盘摘要 ⇒ 机制延后。
19
19
  * 🔴 2026-09-25(S142 分批清死代码·第 1 批):原先那个 `onSettlement(cb)` **空 seam 已删**
20
20
  * (零调用者、无触发器、空实现)——仪式真落地时按当时的信号重新设计,**不再靠空占位**。
21
21
  */
@@ -40,12 +40,12 @@ export declare const EVENT_LABEL: {
40
40
  readonly scratchPrune: "SCRATCH PRUNE";
41
41
  };
42
42
  /** 家族标识(所有动态注入统一前缀) */
43
- export declare const ASSISTANT_PREFIX = "TRAJECTORY-ASSISTANT";
44
- /** 完整 token:`[TRAJECTORY-ASSISTANT · <LABEL>]` */
43
+ export declare const ASSISTANT_PREFIX = "COGNITIVE-TRAJECTORY-ASSISTANT";
44
+ /** 完整 token:`[COGNITIVE-TRAJECTORY-ASSISTANT · <LABEL>]` */
45
45
  export declare function eventToken(event: keyof typeof EVENT_LABEL): string;
46
46
  /** ACK 确认码前缀(recorded/skipped 语义不变,仅家族名更新) */
47
- export declare const ACK_PREFIX = "TRAJECTORY-ASSISTANT-recorded";
48
- export declare const ACK_SKIP_PREFIX = "TRAJECTORY-ASSISTANT-skipped";
47
+ export declare const ACK_PREFIX = "COGNITIVE-TRAJECTORY-ASSISTANT-recorded";
48
+ export declare const ACK_SKIP_PREFIX = "COGNITIVE-TRAJECTORY-ASSISTANT-skipped";
49
49
  /**
50
50
  * rebuild 交界便签的**文件名**(v1.49.0;owner 2026-09-26 需求)。
51
51
  *
@@ -66,11 +66,11 @@ export declare const ACK_SKIP_PREFIX = "TRAJECTORY-ASSISTANT-skipped";
66
66
  */
67
67
  export declare const REBUILD_TODO_FILENAME = "REBUILD-TODO.md";
68
68
  /** 风格档位:plain(默认,精确文本)/ metaphor(借星舰词——产品隐喻非游戏词) */
69
- type TrajectoryStyle = 'plain' | 'metaphor';
69
+ type CognitiveTrajectoryStyle = 'plain' | 'metaphor';
70
70
  /**
71
71
  * 按风格生成前缀 token。plain = eventToken()(原样);metaphor 仅当有
72
72
  * 星舰化变体时替换用词(当前等价保留——星舰词库隐喻域的既有措辞即
73
73
  * "context limit/deck check" 类,不强制替换;扩展点留给未来实验)。
74
74
  */
75
- export declare function styledToken(event: keyof typeof EVENT_LABEL, style?: TrajectoryStyle): string;
75
+ export declare function styledToken(event: keyof typeof EVENT_LABEL, style?: CognitiveTrajectoryStyle): string;
76
76
  export {};
@@ -1,8 +1,8 @@
1
1
  /**
2
- * trajectory-bound.ts — SESSION 绑定持久化(CCC 内 `AGENT_SESSIONS/.bindings.json`)
2
+ * cognitive-trajectory-bound.ts — SESSION 绑定持久化(CCC 内 `AGENT_SESSIONS/.bindings.json`)
3
3
  *
4
4
  * 目标(S142 用户拍板,方案 v1.0):让「dsh 会话(载体)↔ SESSION(宁静号轨迹)」
5
- * 的绑定坚固——LLM 不能因智力因素(幻觉/理解偏差)在过程中或 container_trajectory rebuild 后
5
+ * 的绑定坚固——LLM 不能因智力因素(幻觉/理解偏差)在过程中或 cognitive_trajectory rebuild 后
6
6
  * 自行更换 SESSION。
7
7
  *
8
8
  * 存储形态(v1.30.6 起,S142 review F-01):绑定**不再写入 dsh 会话日志**。
@@ -39,7 +39,7 @@ interface SessionBoundRecord {
39
39
  * 但**不再作为唤醒候选**({@link listBoundSessionIds} 过滤掉)——这正是"解绑"的机械形态。
40
40
  *
41
41
  * 为什么需要(实证):`.bindings.json` 只增不清——实测 S142 名下挂 **4 代**、S185 挂 **2 代**,
42
- * 同一 trajectory 因此可以有**两条 live 会话**:各持一份完整上下文(内存翻倍)
42
+ * 同一 cognitive trajectory 因此可以有**两条 live 会话**:各持一份完整上下文(内存翻倍)
43
43
  * 且**都在写同一批文件**(双写者)。
44
44
  */
45
45
  supersededAt?: number;
@@ -85,7 +85,7 @@ export declare function readLastBound(session: unknown): SessionBoundRecord | nu
85
85
  /** 判定会话是否已有绑定(供 reconcile 判定:无绑定才标题升级)。 */
86
86
  export declare function hasAnyBound(session: unknown): boolean;
87
87
  /**
88
- * **调用方自身**所属 trajectory 的标签(审计字段 `createdBy` 的唯一正解)。
88
+ * **调用方自身**所属 cognitive trajectory 的标签(审计字段 `createdBy` 的唯一正解)。
89
89
  *
90
90
  * 三级来源,逐级回退(R↓:为什么不用单一来源):
91
91
  * 1. `readLastBound(session)` —— **持久 bound**,权威(重启存活、不受别的会话激活污染)
@@ -93,7 +93,7 @@ export declare function hasAnyBound(session: unknown): boolean;
93
93
  * 3. `getLastActiveSessionInfo()` —— **全局**最近激活指针(无绑定的会话兼容回退)
94
94
  *
95
95
  * ⚠️ 为何单列成本函数(S142 §30.12.1 实测缺陷):唤醒注册表的 `createdBy` 原先直接取第 3 级
96
- * 全局指针,而它记录的是"**进程内最近一次被激活的 trajectory**"——多会话并发时必然张冠李戴
96
+ * 全局指针,而它记录的是"**进程内最近一次被激活的 cognitive trajectory**"——多会话并发时必然张冠李戴
97
97
  * (实测:S142 登记唤醒被写成 `by=S060`)。`createdBy` 是 D60「以可审计替代入口栅」的**唯一凭证**,
98
98
  * 失真即替代控制失效 ⇒ 必须以"调用方自己是谁"为准,全局指针只作最后兜底。
99
99
  *
@@ -101,9 +101,9 @@ export declare function hasAnyBound(session: unknown): boolean;
101
101
  * @param scope 调用方 dsh 会话 id(取不到传空串)
102
102
  * @returns 轨迹标签(`S###` 或完整目录名);三级全落空 → 空串(渲染为 `?`)
103
103
  */
104
- export declare function resolveSessionTrajectoryLabel(session: unknown, scope: string): string;
104
+ export declare function resolveSessionCognitiveTrajectoryLabel(session: unknown, scope: string): string;
105
105
  /**
106
- * 反向查:绑定到某 trajectory 目录名的 dsh 会话 id(**按绑定时间倒序,最新在前**)。
106
+ * 反向查:绑定到某 cognitive trajectory 目录名的 dsh 会话 id(**按绑定时间倒序,最新在前**)。
107
107
  *
108
108
  * 用途(wake-scheduler 冷唤醒):.bindings.json 以 **sessionId 为键**,而唤醒条目的
109
109
  * target 是**目录名**——需要值侧扫描做反向索引。冷会话被唤醒时必须先知道"哪个 dsh
@@ -115,17 +115,17 @@ export declare function resolveSessionTrajectoryLabel(session: unknown, scope: s
115
115
  */
116
116
  export declare function listBoundSessionIds(root: string, dirName: string): string[];
117
117
  /**
118
- * **(b) 同一 trajectory 多 live 会话的机械守卫**(S142 §0y,所有者 2026-09-18 裁「b 做」)。
118
+ * **(b) 同一 cognitive trajectory 多 live 会话的机械守卫**(S142 §0y,所有者 2026-09-18 裁「b 做」)。
119
119
  *
120
120
  * 把绑定到 `dirName` 的**其它**会话 id 标记为 `supersededAt` —— **保留记录**(沿革/正向查询不丢),
121
121
  * 只切断"**唤醒还会找到它**"这条路。语义上即"解绑",且**不动那个会话本身**(它仍可被人工使用)。
122
122
  *
123
123
  * 为什么必须有机制(R↓):`.bindings.json` 的语义是"latest-wins 覆盖**本条会话记录**",
124
- * 对**同一 trajectory 的其它会话**没有任何约束 ⇒ 多代会话自然堆积(实测 S142 4 代 / S185 2 代),
124
+ * 对**同一 cognitive trajectory 的其它会话**没有任何约束 ⇒ 多代会话自然堆积(实测 S142 4 代 / S185 2 代),
125
125
  * 而 `acquireWakeAgent` 是"遍历全部绑定 id、任一条 live 就用它"——**两条 live 都能被选中**。
126
126
  *
127
127
  * @param root CCC 根
128
- * @param dirName 目标 trajectory 目录名
128
+ * @param dirName 目标 cognitive trajectory 目录名
129
129
  * @param keepIds 保留(不标记)的会话 id 集合——通常是"当前正在 use 的这条"
130
130
  * @returns **实际被标记**的会话 id(升序稳定;供调用方如实报告,未标记任何一条 → `[]`)
131
131
  */
@@ -1,9 +1,9 @@
1
1
  /**
2
- * trajectory-ops.ts — 轨迹工具纯操作层(零 DSH 依赖,可独立单测)
2
+ * cognitive-trajectory-ops.ts — 轨迹工具纯操作层(零 DSH 依赖,可独立单测)
3
3
  *
4
4
  * 行为对齐 osp(opencode-serenity-plugin/src/session/lib.ts)——osp 是 ACC 工具 spec。
5
5
  *
6
- * v1.33 收敛(S142 §32):本文件只服务 `container_trajectory` 的动作面
6
+ * v1.33 收敛(S142 §32):本文件只服务 `cognitive_trajectory` 的动作面
7
7
  * (现行 **8 个**:list / show / create / use / rebuild / **send-now** / **send-later** / **cro-guide**)。旧 `logbook` 面里
8
8
  * **close / archive / health / qa 四个动作已删**(用户裁决「功能上废弃,实际上没用」),
9
9
  * 其函数(closeSession / archiveSessions / healthCheck / qaCheck)**同批删除**——
@@ -12,7 +12,7 @@
12
12
  * 「完成」不再由 close 写入,而是从 SESSION.md 的 `[x]` 推导;归档走 `container_fs mv`。
13
13
  */
14
14
  /**
15
- * `container_trajectory` 工具的动作集合(v1.33,S142 §32 用户裁决后的收敛结果)。
15
+ * `cognitive_trajectory` 工具的动作集合(v1.33,S142 §32 用户裁决后的收敛结果)。
16
16
  *
17
17
  * 为什么收敛到这 8 个(R↓;v1.33 收敛时为 **6 个** —— 其后追加 `send-now`(09-16)
18
18
  * 与 `cro-guide`(09-20),🔴 2026-09-25 更正计数,勿再写成"6 个"):旧面是 `logbook`(11)+ `trajectory`(12)两个工具,用户裁决
@@ -24,7 +24,7 @@
24
24
  * wake-add/list/rm 收敛为 wake-later(**2026-09-17 更名 `send-later`**)。
25
25
  * 2026-09-16(所有者裁决):新增 **send-message**(**2026-09-17 更名 `send-now`**)—— 即时投递
26
26
  * (与 wake-later 共用取用通路,差别只在时刻"现在 vs 未来"与回执"有 vs 无")。
27
- * 设计稿 docs/trajectory-send-message-design.md。
27
+ * 设计稿 docs/cognitive-trajectory-send-message-design.md。
28
28
  * 2026-09-17(所有者裁决 · 命名 A 案):**两个投递动作更名** —— `wake-later` → **`send-later`**、
29
29
  * `send-message` → **`send-now`**。判据(R↓):两者是**同一条投递通路**(同取用机制 / 同载荷 /
30
30
  * 同落点语义),只差**时刻**;而「唤醒(冷载入)」是**两条路径共有**的属性,不配做区分
@@ -37,8 +37,8 @@
37
37
  * 而**管轨迹的人正是用本工具的人**;挂这儿 = 设计 §9-5 的"**既有 guide 位置、不新增域**"。
38
38
  * ⚠️ 本动作**纯读**(输出指南正文,不碰 fs、不碰注册表)。
39
39
  */
40
- type TrajectoryAction = 'list' | 'show' | 'create' | 'use' | 'rebuild' | 'send-now' | 'send-later' | 'cro-guide';
41
- export declare const TRAJECTORY_ACTIONS: readonly TrajectoryAction[];
40
+ type CognitiveTrajectoryAction = 'list' | 'show' | 'create' | 'use' | 'rebuild' | 'send-now' | 'send-later' | 'cro-guide';
41
+ export declare const COGNITIVE_TRAJECTORY_ACTIONS: readonly CognitiveTrajectoryAction[];
42
42
  /**
43
43
  * 读取 Session 事件序列(v1.28.1 适配 0.1.2-rc.1 补齐):rc.1 起官方 Session 类
44
44
  * 移除 `.events` 属性 → `snapshotEvents()` 方法(dsh-session/src/session.ts:
@@ -1,20 +1,20 @@
1
1
  /**
2
- * trajectory-skills.ts — 轨迹 skill 声明解析 + 注入内容装配(纯逻辑,零 DSH 依赖)
2
+ * cognitive-trajectory-skills.ts — 轨迹 skill 声明解析 + 注入内容装配(纯逻辑,零 DSH 依赖)
3
3
  *
4
- * 接口真相源:`docs/trajectory-skill-injection.md` v1.0(§2 数据契约 / §3 注入契约)。
4
+ * 接口真相源:`docs/cognitive-trajectory-skill-injection.md` v1.0(§2 数据契约 / §3 注入契约)。
5
5
  * 一句话:**轨迹自己声明它要挂哪些 skill**(`SESSION.md` 顶部 YAML frontmatter 的 `skills:`),
6
6
  * ACC 在**绑定期间**把这些 skill 的 `SKILL.md` 全文注入系统提示词。
7
7
  *
8
8
  * 分工(R↓:为什么解析与注册分开):
9
9
  * · 本模块 = **纯文本层**(解析 / 装配 / 安全判定)——可脱离 DSH 单测;
10
- * · `seams/system-prompt.ts` 的 `registerTrajectorySkillSection` = **宿主接入层**
10
+ * · `seams/system-prompt.ts` 的 `registerCognitiveTrajectorySkillSection` = **宿主接入层**
11
11
  * (per-agent `ctx.systemPrompt.section`),只做门与注册,不再解析文本。
12
12
  *
13
13
  * 边界(规格 §2.2):**不解析** `skills` 以外任何键的语义(CCC 可自由使用,ACC 视而不见);
14
14
  * **不改写** frontmatter(ACC 只读)。
15
15
  */
16
16
  /** 全文注入总长上限(字符数;规格 §3「缺省 32 KB」——防上下文爆炸) */
17
- export declare const TRAJECTORY_SKILLS_MAX_CHARS: number;
17
+ export declare const COGNITIVE_TRAJECTORY_SKILLS_MAX_CHARS: number;
18
18
  /**
19
19
  * 抽取文件顶部 YAML frontmatter 区(规格 §2.1)。
20
20
  *
@@ -51,12 +51,12 @@ export declare function parseDeclaredSkills(sessionMd: string): string[];
51
51
  * (规格 §6-6 要求"不静默";不注册就等于静默)
52
52
  * 其余(文件在但无 frontmatter / 无 `skills` 键 / 值为空)⇒ false,不注册、不产生噪声。
53
53
  */
54
- export declare function hasTrajectorySkillsDeclaration(root: string, mdPath: string): boolean;
54
+ export declare function hasCognitiveTrajectorySkillsDeclaration(root: string, mdPath: string): boolean;
55
55
  /**
56
56
  * 合并两条声明来源(v1.44.0):**CCC 级在前,轨迹级追加**,同名去重取首次位置。
57
57
  *
58
58
  * 两条来源(owner 令 2026-09-20):
59
- * · **CCC 级** = `.opencode/serenity.json` 的 `trajectory.skills`(本 CCC 所有轨迹共有的底座);
59
+ * · **CCC 级** = `.opencode/serenity.json` 的 `cognitiveTrajectory.skills`(本 CCC 所有轨迹共有的底座);
60
60
  * · **轨迹级** = 该轨迹 `SESSION.md` frontmatter 的 `skills:`(这条轨迹额外的)。
61
61
  *
62
62
  * 为什么是**并集**而不是二选一(R↓):C1 设计当初否决"纯 CCC 全局"的理由是"会**丢掉
@@ -78,11 +78,11 @@ export declare function mergeSkillNames(cccSkills: readonly string[], trajSkills
78
78
  * @param root CCC 根
79
79
  * @param mdPath 轨迹的 SESSION.md 路径(**来自绑定的 `mdPath`**,不用 label 拼)
80
80
  * @param maxChars 总长上限(字符)
81
- * @param cccSkills CCC 级声明(`readTrajectorySkills`;缺省空 = 只有轨迹级,行为与 v1.43 一致)
81
+ * @param cccSkills CCC 级声明(`readCognitiveTrajectorySkills`;缺省空 = 只有轨迹级,行为与 v1.43 一致)
82
82
  * @param onInjectedNames 观测回调(本次请求实际带上的 skill 名;**纯观测**,供用量统计用——
83
83
  * 回调抛错被吞,**不影响注入正文**)
84
84
  * @returns 注入正文;两条来源皆无声明 → `''`(空串 = 宿主不产出该 section 块);
85
85
  * SESSION.md 缺失/读失败 → 响亮提示(若同时有 CCC 级声明,则提示在前、正文随后——
86
86
  * **提示不因"别处有内容"而被吞掉**)
87
87
  */
88
- export declare function buildTrajectorySkillsSection(root: string, mdPath: string, maxChars?: number, cccSkills?: readonly string[], onInjectedNames?: (names: readonly string[]) => void): string;
88
+ export declare function buildCognitiveTrajectorySkillsSection(root: string, mdPath: string, maxChars?: number, cccSkills?: readonly string[], onInjectedNames?: (names: readonly string[]) => void): string;
package/lib/cro-log.d.ts CHANGED
@@ -3,10 +3,10 @@
3
3
  *
4
4
  * ## 所有者令(本模块的存在理由)
5
5
  *
6
- * 「S151 和 S185 的验证都说明,trajectory 倾向于自己做个结构化记录来记录自身 CRO 的执行情况,
6
+ * 「S151 和 S185 的验证都说明,认知轨迹倾向于自己做个结构化记录来记录自身 CRO 的执行情况,
7
7
  * 这是个结构化流水账;**我们 ACC 有必要进行 CRO 唤醒的日志记录**,当 CRO 存在时,每次**成功唤醒**
8
8
  * 写相关信息,但是保留数量要少,**只保留仅两日**的记录即可,**这个时间是程序化的**」
9
- * +「**这个日志写结构化文件到 trajectory 目录,文件名固定即可**」
9
+ * +「**这个日志写结构化文件到认知轨迹目录,文件名固定即可**」
10
10
  * +「**失败成功都记录**」。
11
11
  *
12
12
  * ## 它解决什么麻烦(白话)
package/lib/cro.d.ts CHANGED
@@ -332,7 +332,7 @@ export declare function parseCroHostBinding(raw: string): string | null;
332
332
  * @param root CCC 根
333
333
  * @returns 启用了 CRO 的轨迹目录名(**排序后**,保证同 tick 顺序稳定、便于日志比对)
334
334
  */
335
- export declare function listCroTrajectories(root: string): string[];
335
+ export declare function listCroCognitiveTrajectories(root: string): string[];
336
336
  /**
337
337
  * 执行一次 CRO 程序(**永不抛** —— 旁路容忍铁律)。
338
338
  *
package/lib/index.d.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  * 形态(DSH 官方 native hook 约定):name / inject / Config / apply,无 default export。
5
5
  *
6
6
  * 能力:
7
- * 1. 真实 DSH 工具注册:container_fs(文件系统 15 子命令,含 reveal)、container_trajectory(轨迹生命周期 + 一次性安排,含 rebuild)
7
+ * 1. 真实 DSH 工具注册:container_fs(文件系统 15 子命令,含 reveal)、cognitive_trajectory(轨迹生命周期 + 一次性安排,含 rebuild)
8
8
  * 2. 拦截缝机械约束:tools/pre-execute + ctx.tools.guard(安全模式/黑名单/路径守卫)
9
9
  *
10
10
  * 加载:~/.dsh/config.yaml 加 insert 行(免改 DSH 源码),插件包装入 DSH node_modules。