@shgroup/dsh-serenity-hooks 1.64.0 → 1.66.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.
- package/README.md +14 -14
- package/dsh.plugin.json +3 -3
- package/lib/{ccc-B0ZGL9lx.js → ccc-C33QWoWZ.js} +3 -3
- package/lib/{ccc-roots-GIJ3A_tw.js → ccc-roots-RMzGU-CJ.js} +2 -2
- package/lib/ccc.d.ts +15 -50
- package/lib/client.js +43 -1
- package/lib/{trajectory-assistant.d.ts → cognitive-trajectory-assistant.d.ts} +9 -9
- package/lib/{trajectory-bound.d.ts → cognitive-trajectory-bound.d.ts} +10 -10
- package/lib/{trajectory-ops.d.ts → cognitive-trajectory-ops.d.ts} +97 -18
- package/lib/{trajectory-skills.d.ts → cognitive-trajectory-skills.d.ts} +8 -8
- package/lib/cro-log.d.ts +2 -2
- package/lib/cro.d.ts +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +244 -228
- package/lib/invariant.d.ts +1 -1
- package/lib/invariant.js +1 -1
- package/lib/json.d.ts +1 -1
- package/lib/{localstore-ops-DMs_ovHo.js → localstore-ops-ylQoPz1Q.js} +1 -1
- package/lib/{message-source-B4P3Uw6D.js → message-source-DM9-2eUT.js} +143 -59
- package/lib/output-guard-seam.d.ts +1 -1
- package/lib/output-guard.d.ts +1 -1
- package/lib/rebuild.d.ts +2 -2
- package/lib/seams/keeper.d.ts +6 -6
- package/lib/seams/system-prompt.d.ts +1 -1
- package/lib/{settings-section-DN7g8K7Q.js → settings-section-B1YzjFz6.js} +1 -1
- package/lib/skiff-core.d.ts +10 -10
- package/lib/skiff-debug.d.ts +1 -1
- package/lib/{skiff-role-B615L9MV.js → skiff-role-Boc4SKct.js} +14 -14
- package/lib/skiff-role.d.ts +4 -4
- package/lib/skills/resource-index.d.ts +1 -1
- package/lib/skills-discovery.d.ts +1 -1
- package/lib/status.d.ts +8 -0
- package/lib/tools/{trajectory.d.ts → cognitive-trajectory.d.ts} +7 -7
- package/lib/tools/skiff-admin.d.ts +1 -1
- package/lib/usage-stats.d.ts +1 -1
- package/lib/wake-registry.d.ts +5 -5
- package/lib/wake-scheduler.d.ts +5 -5
- package/lib/weixin-bridge.d.ts +1 -1
- package/lib/{weixin-route-Aheyq3fN.js → weixin-route-BoSC-uPp.js} +2 -2
- package/package.json +2 -2
package/lib/skiff-role.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* skiff-role.ts — Skiff(F4,v1.25.0 实验性)角色层纯逻辑(零 DSH 依赖,可独立单测)
|
|
3
3
|
*
|
|
4
|
-
* 概念(S142 用户拍板):Skiff = 完整宁静号 trajectory(在宁静号内全知全能)的
|
|
4
|
+
* 概念(S142 用户拍板):Skiff = 完整宁静号 cognitive trajectory(在宁静号内全知全能)的
|
|
5
5
|
* **任意子集**——CCC 通过角色配置定义:能力面(tools 非 MSM 工具白名单 + msms
|
|
6
|
-
* MSM 白名单,双白名单独立,白名单外全隐藏)+ 轨迹纪律面(trajectory 子集)+
|
|
6
|
+
* MSM 白名单,双白名单独立,白名单外全隐藏)+ 轨迹纪律面(cognitive trajectory 子集)+
|
|
7
7
|
* 系统提示词(CCC 完整定义,dsp 只给基础部分)。
|
|
8
8
|
*
|
|
9
9
|
* 实验性质:未配置任何角色 → Skiff 完全零影响(无监听、无 agent 创建、guard 无规则)。
|
|
@@ -20,12 +20,12 @@ export declare function isSkiffSessionId(sessionId: string | undefined): boolean
|
|
|
20
20
|
*/
|
|
21
21
|
export declare function readSkiffRoles(root: string, paths?: string[]): Map<string, SkiffRoleConfig>;
|
|
22
22
|
/** 某角色的轨迹纪律子集(缺省全 false = 完全独立) */
|
|
23
|
-
interface
|
|
23
|
+
interface SkiffCognitiveTrajectorySubset {
|
|
24
24
|
session: boolean;
|
|
25
25
|
keeper: boolean;
|
|
26
26
|
rebuild: boolean;
|
|
27
27
|
}
|
|
28
|
-
export declare function
|
|
28
|
+
export declare function cognitiveTrajectorySubset(role: SkiffRoleConfig | undefined): SkiffCognitiveTrajectorySubset;
|
|
29
29
|
/** 角色可用工具面(白名单并集):tools + msm(msms 非空时作为 MSM 通道自动可用) */
|
|
30
30
|
export declare function roleToolWhitelist(role: SkiffRoleConfig | undefined): Set<string>;
|
|
31
31
|
/** 角色允许的 MSM 白名单(msm 工具 exec 校验 / 过滤用;独立于 tools 白名单) */
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
*
|
|
31
31
|
* 🔴 **两个面,两个入口**(2026-10-12 增;owner 裁决 O2)—— 同源、但成本形态不同:
|
|
32
32
|
* · **载入面** `buildResourceIndex()` —— 完整索引(名字 + 首标题 + 字节),带 `.md` 文件头读取;
|
|
33
|
-
* 在三条路径上各附一次:入口段(`system-prompt.ts` order −50)/轨迹段(`trajectory-skills.ts`
|
|
33
|
+
* 在三条路径上各附一次:入口段(`system-prompt.ts` order −50)/轨迹段(`cognitive-trajectory-skills.ts`
|
|
34
34
|
* order −45)/目录 provider 的 `get()`(`opencode-skills.ts`)。
|
|
35
35
|
* · **目录面** `buildResourceNameSuffix()` —— **只有名字**,**不读任何正文**;只挂一处:
|
|
36
36
|
* 目录 provider 的 `list()`(`available_skills` 的 `SkillSummary.description`)。
|
|
@@ -24,7 +24,7 @@ interface EntrySkill {
|
|
|
24
24
|
/**
|
|
25
25
|
* 防穿越:skill 名必须是简单目录名(拒绝分隔符与 `..`/`.` 路径段)。
|
|
26
26
|
* v1.34.1:导出——轨迹 skill 声明(CCC 数据)的名字也要**先过这一关**才能用于拼路径
|
|
27
|
-
* (规格 `docs/trajectory-skill-injection.md` §3「名字安全(必做)」)。
|
|
27
|
+
* (规格 `docs/cognitive-trajectory-skill-injection.md` §3「名字安全(必做)」)。
|
|
28
28
|
*/
|
|
29
29
|
export declare function isSafeSkillName(name: string): boolean;
|
|
30
30
|
/**
|
package/lib/status.d.ts
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* WebUI 停靠栏的数据源:ACC 版本 / CCC 根 / safe-mode 状态 / 黑名单 / keeper 阈值 / cheap-worker 模型。
|
|
5
5
|
* setSafeMode 直接读写 .serenity-safe-on 标记(守卫实时读取,写即生效)。
|
|
6
6
|
*/
|
|
7
|
+
import { type TrajectorySummary } from './cognitive-trajectory-ops.js';
|
|
7
8
|
/**
|
|
8
9
|
* 🔴 **布局无关档**:从**正在跑的那个入口脚本**反推宿主包根,读它的 `version`。
|
|
9
10
|
*
|
|
@@ -50,6 +51,13 @@ interface SerenityStatus {
|
|
|
50
51
|
}[];
|
|
51
52
|
threshold: number | null;
|
|
52
53
|
cheapWorkerModel: string | null;
|
|
54
|
+
/**
|
|
55
|
+
* 活跃轨迹清单(owner 2026-10-18:CCC 状态面板要展示"所有没有归档的轨迹")。
|
|
56
|
+
* 🔴 判据源 = `listActiveTrajectories`(它内含 `_` 前缀跳过 ⇒ 归档区自动不在域内);
|
|
57
|
+
* ⛔ 面板侧**不得自己扫目录** —— 那会长出第二份会漂的实现。
|
|
58
|
+
* 无 CCC 根时为 `[]`。
|
|
59
|
+
*/
|
|
60
|
+
trajectories: TrajectorySummary[];
|
|
53
61
|
restrict: {
|
|
54
62
|
lastKey: string | null;
|
|
55
63
|
lastAttemptAt: string | null;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* trajectory.ts — `
|
|
2
|
+
* trajectory.ts — `cognitive_trajectory` 真实 DSH 工具定义(defineTool)
|
|
3
3
|
*
|
|
4
4
|
* v1.33(S142 §32 用户裁决):由 `logbook` **更名并收敛为 `trajectory`**(v1.34:工具名再硬切为
|
|
5
|
-
* `container_trajectory`,无别名)——trajectory 是一等概念
|
|
5
|
+
* `container_trajectory`,无别名)——cognitive trajectory 是一等概念
|
|
6
6
|
* (SESSION.md 是它的持久身体),本工具管它的**载体生命周期 + 一次性时间安排**。
|
|
7
7
|
* 动作面现行 **8 个**:list / show / create / use / rebuild / **`send-now`** / **`send-later`** / **`cro-guide`**。
|
|
8
8
|
* 🔴 2026-09-16(所有者裁决):**第 7 个动作 `send-message`(即时投递)**
|
|
9
9
|
* ——与 `wake-later` 共用取用通路,差别只在**时刻**(现在 vs 未来)与**回执**(有 vs 无);
|
|
10
10
|
* 实现落在 `wake-scheduler.ts` 的 `sendToTrajectory()`("怎么把一句话送到一条轨迹"是调度器的知识)。
|
|
11
|
-
* 设计稿 = `docs/trajectory-send-message-design.md`(v0.2 定稿)。
|
|
11
|
+
* 设计稿 = `docs/cognitive-trajectory-send-message-design.md`(v0.2 定稿)。
|
|
12
12
|
* 🔴 2026-09-17(所有者裁决 · **命名 A 案**):**两个投递动作更名** —— `wake-later` → **`send-later`**、
|
|
13
13
|
* `send-message` → **`send-now`**。判据(R↓):两者本是**同一条投递通路**(同取用机制 / 同载荷 /
|
|
14
14
|
* 同落点语义),只差**时刻**;而「唤醒(冷载入)」是**两条路径共有**的属性,不配做区分
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
* 归档能力由 `container_fs mv → _archived/` 承担
|
|
28
28
|
* · `hook-develop-guide` → **淘汰**(v1.34.1:SEP 整体废除——「能落 harness 已有原语,
|
|
29
29
|
* 就不要自造协议 + 脚本管道」;轨迹挂哪些 skill 改由 SESSION.md frontmatter 声明 +
|
|
30
|
-
* `systemPrompt.section` 注入,见 `docs/trajectory-skill-injection.md`)
|
|
30
|
+
* `systemPrompt.section` 注入,见 `docs/cognitive-trajectory-skill-injection.md`)
|
|
31
31
|
* · autopilot 面(all/init/random/diag/doc/check/status/guide)→ `container_admin` 的 autopilot 域
|
|
32
32
|
* · `wake-add`/`wake-list`/`wake-rm` → **`wake-later`**(v1.33 收敛;**2026-09-17 更名 `send-later`**)
|
|
33
33
|
* · 2026-09-20(CRO 落地):新增 **`cro-guide`** —— CRO 编写指南的出口(纯读)。
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
*/
|
|
40
40
|
import { defineTool } from '@deepseek-ai/dsh-tools';
|
|
41
41
|
import type { Context } from 'cordis';
|
|
42
|
-
import { type ActiveSessionInfo, type CreateSessionResult } from '../trajectory-ops.js';
|
|
42
|
+
import { type ActiveSessionInfo, type CreateSessionResult } from '../cognitive-trajectory-ops.js';
|
|
43
43
|
interface RenameOnUseDeps {
|
|
44
44
|
/** sessionTitle 服务可用性 */
|
|
45
45
|
sessionTitleAvailable: boolean;
|
|
@@ -88,8 +88,8 @@ export declare function renameDshSessionForActive(ctx: Context, exec: {
|
|
|
88
88
|
};
|
|
89
89
|
}, info: ActiveSessionInfo, summary?: string): void;
|
|
90
90
|
/**
|
|
91
|
-
* 创建 trajectory 工具(原 logbook;v1.33 S142 §32 更名 + 动作收敛)。
|
|
91
|
+
* 创建 cognitive trajectory 工具(原 logbook;v1.33 S142 §32 更名 + 动作收敛)。
|
|
92
92
|
* 闭包捕获插件 ctx → use 后可调 ctx.sessionTitle.rename。
|
|
93
93
|
*/
|
|
94
|
-
export declare function
|
|
94
|
+
export declare function createCognitiveTrajectoryTool(ctx: Context): ReturnType<typeof defineTool>;
|
|
95
95
|
export {};
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import type { JsonValue } from '../json.js';
|
|
11
11
|
/** Skiff 定义教程(核心):概念 / schema / 认知 MSM 写法 / 双白名单 / 轨迹纪律 / 示例角色 */
|
|
12
|
-
export declare const SKIFF_GUIDE = "\u2550\u2550\u2550 Skiff Definition Guide (F4, experimental) \u2550\u2550\u2550\n\nSkiff = \u5B81\u9759\u53F7\u653E\u51FA\u7684\u72EC\u7ACB\u5C0F\u8247\u2014\u2014\u5B8C\u6574 trajectory\uFF08\u5728\u5B81\u9759\u53F7\u5185\u5168\u77E5\u5168\u80FD\uFF09\u7684**\u4EFB\u610F\u5B50\u96C6\u89D2\u8272**\u3002\n\u7531\u672C CCC\uFF08.opencode/serenity.json skiff.roles\uFF09\u5B9A\u4E49\uFF1A\u80FD\u529B\u9762\uFF08\u53CC\u767D\u540D\u5355\uFF09+ \u8F68\u8FF9\u7EAA\u5F8B\u5B50\u96C6 + \u7CFB\u7EDF\u63D0\u793A\u8BCD\u3002\ndsp \u53EA\u63D0\u4F9B\u673A\u5236\uFF08\u53CC\u767D\u540D\u5355\u5F3A\u5236 + \u57FA\u7840\u63D0\u793A\u8BCD + \u8C03\u8BD5\u95EE\u7B54\u9875\uFF09\uFF1B\u89D2\u8272\u5185\u5BB9\u5B8C\u5168\u7531 CCC \u53D1\u6325\u3002\n\n\u2500\u2500 \u89D2\u8272\u914D\u7F6E schema \u2500\u2500\n { \"skiff\": { \"roles\": {\n \"<role-name>\": {\n \"model\": \"provider/model\", // \u89D2\u8272\u6A21\u578B\uFF08CCC \u76F4\u63A5\u6307\u5B9A\uFF0C\u65E0\u767D\u540D\u5355\u6821\u9A8C\uFF1B\u7F3A\u7701\u56DE\u9000 cheap-worker.defaultModel\uFF09\n \"msms\": [\"msm-a\", \"msm-b\"], // MSM \u767D\u540D\u5355\uFF08\u72EC\u7ACB\uFF09\uFF1Amsm \u5DE5\u5177\u53EA\u80FD\u6267\u884C\u8FD9\u4E9B\uFF1Bregister/deregister \u5FC5\u62D2\n \"tools\": [\"read\",\"grep\",\"glob\",...], // \u975E MSM \u5DE5\u5177\u767D\u540D\u5355\uFF08\u72EC\u7ACB\uFF09\uFF1A\u767D\u540D\u5355\u5916\u5DE5\u5177\u4E00\u5F8B\u4E0D\u53EF\u7528\uFF08guard \u5F3A\u5236\uFF09\n \"
|
|
12
|
+
export declare const SKIFF_GUIDE = "\u2550\u2550\u2550 Skiff Definition Guide (F4, experimental) \u2550\u2550\u2550\n\nSkiff = \u5B81\u9759\u53F7\u653E\u51FA\u7684\u72EC\u7ACB\u5C0F\u8247\u2014\u2014\u5B8C\u6574 cognitive trajectory\uFF08\u5728\u5B81\u9759\u53F7\u5185\u5168\u77E5\u5168\u80FD\uFF09\u7684**\u4EFB\u610F\u5B50\u96C6\u89D2\u8272**\u3002\n\u7531\u672C CCC\uFF08.opencode/serenity.json skiff.roles\uFF09\u5B9A\u4E49\uFF1A\u80FD\u529B\u9762\uFF08\u53CC\u767D\u540D\u5355\uFF09+ \u8F68\u8FF9\u7EAA\u5F8B\u5B50\u96C6 + \u7CFB\u7EDF\u63D0\u793A\u8BCD\u3002\ndsp \u53EA\u63D0\u4F9B\u673A\u5236\uFF08\u53CC\u767D\u540D\u5355\u5F3A\u5236 + \u57FA\u7840\u63D0\u793A\u8BCD + \u8C03\u8BD5\u95EE\u7B54\u9875\uFF09\uFF1B\u89D2\u8272\u5185\u5BB9\u5B8C\u5168\u7531 CCC \u53D1\u6325\u3002\n\n\u2500\u2500 \u89D2\u8272\u914D\u7F6E schema \u2500\u2500\n { \"skiff\": { \"roles\": {\n \"<role-name>\": {\n \"model\": \"provider/model\", // \u89D2\u8272\u6A21\u578B\uFF08CCC \u76F4\u63A5\u6307\u5B9A\uFF0C\u65E0\u767D\u540D\u5355\u6821\u9A8C\uFF1B\u7F3A\u7701\u56DE\u9000 cheap-worker.defaultModel\uFF09\n \"msms\": [\"msm-a\", \"msm-b\"], // MSM \u767D\u540D\u5355\uFF08\u72EC\u7ACB\uFF09\uFF1Amsm \u5DE5\u5177\u53EA\u80FD\u6267\u884C\u8FD9\u4E9B\uFF1Bregister/deregister \u5FC5\u62D2\n \"tools\": [\"read\",\"grep\",\"glob\",...], // \u975E MSM \u5DE5\u5177\u767D\u540D\u5355\uFF08\u72EC\u7ACB\uFF09\uFF1A\u767D\u540D\u5355\u5916\u5DE5\u5177\u4E00\u5F8B\u4E0D\u53EF\u7528\uFF08guard \u5F3A\u5236\uFF09\n \"cognitiveTrajectory\": { \"session\": false, \"keeper\": false, \"rebuild\": false }, // \u8F68\u8FF9\u7EAA\u5F8B\u5B50\u96C6\uFF08\u7F3A\u7701\u5168\u5173 = \u5B8C\u5168\u72EC\u7ACB\uFF09\n // \u89D2\u8272\u4EBA\u683C/\u8BA4\u77E5\u8FB9\u754C/\u98CE\u683C\uFF08CCC \u5B8C\u6574\u5B9A\u4E49\uFF1Bdsp \u53EA\u7ED9\u57FA\u7840\u63D0\u793A\u8BCD\uFF09\n \"systemPromptFile\": \".opencode/skiff/<role>.md\" // \u2605 \u63A8\u8350\uFF1A\u5F15\u7528 md \u6587\u4EF6\uFF08\u76F8\u5BF9 CCC \u6839\uFF1B\u8D85\u957F\u63D0\u793A\u8BCD\u5728 JSON \u5185\u5D4C\u4E0D\u53EF\u8BFB\uFF09\n // \"systemPrompt\": \"...\" // \u517C\u5BB9\uFF1A\u5185\u5D4C\u5B57\u7B26\u4E32\u4ECD\u53EF\u7528\uFF1B\u4E24\u8005\u90FD\u8BBE\u65F6 systemPromptFile \u4F18\u5148\n }\n } } }\n\n\u2500\u2500 \u53CC\u767D\u540D\u5355\u8BED\u4E49\uFF08\u5168\u6309\u767D\u540D\u5355\u66B4\u9732\uFF0C\u767D\u540D\u5355\u5916\u5168\u9690\u85CF\uFF09\u2500\u2500\n - tools \u7A7A + msms \u975E\u7A7A = \u7EAF MSM \u89D2\u8272\uFF08\u8BA4\u77E5\u95EE\u7B54\u5178\u578B\u5F62\u6001\uFF09\n - msms \u975E\u7A7A \u2192 msm \u5DE5\u5177\u81EA\u52A8\u53EF\u7528\uFF08MSM \u901A\u9053\uFF09\n - \u767D\u540D\u5355\u5916\u5DE5\u5177\u5373\u4F7F DSH \u672A\u6765\u65B0\u589E\u4E5F\u81EA\u52A8\u88AB\u6321\uFF08guard \u6309\u89D2\u8272\u5224\u5B9A\uFF0C\u4E0D\u679A\u4E3E\u5DE5\u5177\u540D\u2014\u2014\u5B8C\u5907\u6027\uFF09\n\n\u2500\u2500 \u8BA4\u77E5 MSM \u5199\u6CD5\uFF08\u8BFB\u77E5\u8BC6 / \u64CD\u4F5C\u80FD\u529B\uFF09\u2500\u2500\n - \u8BFB\u77E5\u8BC6\uFF1A\u811A\u672C\u8BFB CCC \u5185\u6587\u4EF6\uFF08SERENITY_ROOT env \u6CE8\u5165\uFF09\u2192 \u8F93\u51FA\u7B54\u6848/\u6458\u8981\uFF08\u5982 cognitive-qa\uFF09\n - \u64CD\u4F5C\u80FD\u529B\uFF1A\u811A\u672C\u8C03\u7528\u65E2\u6709\u5BB6\u5EAD\u5DE5\u5177/\u670D\u52A1\uFF08SSH/API/\u6587\u4EF6\u64CD\u4F5C\uFF09\u2014\u2014\u89D2\u8272\u80FD\u529B\u4E0A\u9650 = \u767D\u540D\u5355 MSM \u7684\u5B9E\u9645\u884C\u4E3A\n - \u4F8B\uFF1Acognitive-qa\uFF08\u8BFB docs/references \u56DE\u7B54\uFF09\u3001review-scan\uFF08\u8BFB\u4EE3\u7801\u51FA\u5BA1\u67E5\u610F\u89C1\uFF09\u3001review-fix\uFF08\u5199\u4FEE\u590D\uFF09\n - \u6CE8\u610F\uFF1AMSM \u5728\u811A\u672C\u5C42\u6267\u884C\uFF08bun\uFF09\uFF0C\u6587\u4EF6\u8BBF\u95EE\u4E0D\u53D7 agent \u5DE5\u5177\u9762\u7EA6\u675F\u2014\u2014\"\u53EA\u8BFB\"\u8BED\u4E49\u9760 CCC \u81EA\u5199 MSM \u81EA\u89C9\n\n\u2500\u2500 \u8F68\u8FF9\u7EAA\u5F8B\u5B50\u96C6\uFF08cognitiveTrajectory\uFF09\u2500\u2500\n - session/keeper/rebuild \u9ED8\u8BA4 false\uFF1ASkiff \u5B8C\u5168\u72EC\u7ACB\uFF08\u4E0D\u5EFA SESSION.md\u3001\u65E0 keeper \u63D0\u9192\u3001\u65E0 rebuild \u538B\u529B\u68C0\u6D4B\uFF09\n - \u5F00\u542F\u67D0\u9879 = \u8BE5\u89D2\u8272\u53C2\u4E0E\u5BF9\u5E94\u8F68\u8FF9\u673A\u5236\uFF08\u5982 keeper=true \u8BA1\u5206\u63D0\u9192\u6309\u89D2\u8272\u751F\u6548\uFF09\n\n\u2500\u2500 \u793A\u4F8B\u89D2\u8272 \u2500\u2500\n qa-readonly: { \"msms\": [\"cognitive-qa\"], \"tools\": [], \"cognitiveTrajectory\": {} }\n \u2192 \u8BA4\u77E5\u95EE\u7B54\uFF08\u4EC5 MSM \u901A\u9053\uFF0C\u65E0\u76F4\u63A5\u5DE5\u5177\uFF0C\u5B8C\u5168\u72EC\u7ACB\uFF09\n code-review: { \"msms\": [\"review-scan\",\"review-fix\"], \"tools\": [\"read\",\"grep\",\"glob\",\"write\",\"edit\"], \"cognitiveTrajectory\": { \"keeper\": true } }\n \u2192 \u6709\u64CD\u4F5C\u80FD\u529B\uFF08\u53EF\u5199\u4FEE\u590D\uFF09\uFF0C\u53C2\u4E0E keeper \u8F68\u8FF9\u673A\u5236\n\n\u2500\u2500 \u8FD0\u884C \u2500\u2500\n \u8C03\u8BD5\uFF1A\u8BBE\u7F6E\u9762\u677F\u300CSerenity\u300D\u9875 Skiff \u533A\u5757\u5F00\u542F \u2192 http://127.0.0.1:<debugPort> \u95EE\u7B54\u9875\u5B9E\u6D4B\n \uD83D\uDD34 \u5916\u90E8\u7A0B\u5E8F\u5316\u63A5\u5165\uFF082026-10-15 \u8D77\u6539\u8D70\u5B98\u65B9\uFF09\uFF1A\u672C\u63D2\u4EF6\u81EA\u9020\u7684 ACP \u9762\uFF08HTTP JSON-RPC 3100 \uFF0F\n \u5EFA\u8BAE\u95EE\u7B54\u9875\uFF09**\u5DF2\u6574\u4F53\u9000\u5F79**\uFF08owner \u88C1\u300C\u780D\u6389\u5916\u90E8\u95EE\u7B54\u300D\uFF09\u3002\u73B0\u5728\u8981\u7A0B\u5E8F\u5316/\u8FDC\u7A0B\u63A5\u5165\uFF0C\u8D70\u5BBF\u4E3B\n \u81EA\u5E26\u7684\u5B98\u65B9 ACP server\uFF1Adsh --profile acp\uFF08\u7EAF stdio\u3001\u96F6\u8BA4\u8BC1\uFF09\uFF0B \u4EFB\u4E00 ACP \u5BA2\u6237\u7AEF\n \uFF08\u624B\u673A\u7AEF\u5982 Agmente / ACP UI\uFF09\u7ECF\u96A7\u9053\u63A5\u5165\u3002\u8BE6\u89C1 S142 \u7684\u63A5\u5165\u6307\u5357\u6587\u6863\u3002\n \u542F\u505C = \u4EBA\u5DE5\uFF08\u8BBE\u7F6E\u9762\u677F\u5F00\u5173\uFF0C\u4E0D\u968F\u63D2\u4EF6\u52A0\u8F7D\u81EA\u52A8\u542F\u52A8\uFF09\uFF1B\u672A\u5F00\u542F\u96F6\u8D44\u6E90\u5360\u7528\n \u751F\u6548\u673A\u5236\uFF1A\u89D2\u8272\u914D\u7F6E**\u5B9E\u65F6\u8BFB\u53D6**\uFF08\u6539 .opencode/serenity.json \u2192 \u5237\u65B0\u8C03\u8BD5\u9875\u5373\u751F\u6548\uFF09\uFF1B\n \u6539\u914D\u7F6E\u540E\u7528 container_admin role apply \u505A\u663E\u5F0F\u6821\u9A8C + \u5E94\u7528\u786E\u8BA4\uFF08\u7ED1\u5B9A CCC + \u89D2\u8272\u6E05\u5355\uFF09\n \u4F1A\u8BDD\u8FFD\u95EE\uFF08v1.25.10\uFF09\uFF1A\u8C03\u8BD5\u9875\u6301\u6709\u5F53\u524D\u4F1A\u8BDD\uFF0C\u8FFD\u95EE\u81EA\u52A8\u7EED\u63A5\uFF08\u540C\u4F1A\u8BDD\u4E0A\u4E0B\u6587\u5EF6\u7EED\uFF09\uFF1B\n \u300C\u65B0\u5BF9\u8BDD\u300D\u6309\u94AE\u5F00\u65B0\u4F1A\u8BDD\uFF1B\u8FDB\u7A0B\u91CD\u542F\u540E\u65E7\u4F1A\u8BDD\u4E0D\u53EF\u7EED\uFF08WebUI \u4ECD\u53EF\u89C1\u5386\u53F2\uFF09\n \u6CE8\u610F\uFF1Askill \u52A0\u8F7D\u5BF9 skiff **\u6052\u53EF\u7528**\uFF08\u4E0D\u8BBE\u767D\u540D\u5355\u2014\u2014\u8BFB\u77E5\u8BC6\u9762\uFF0C\u65E0\u5199\u80FD\u529B\uFF09";
|
|
13
13
|
/** 校验当前 CCC 的 skiff 配置:roles schema 合法 / msms 均已注册 / model ∈ cheap-worker.models / systemPrompt 非空 */
|
|
14
14
|
export declare function validateSkiffConfig(root: string): JsonValue;
|
|
15
15
|
/** 列出当前 CCC 已定义角色(名 / 模型 / msms / tools / 轨迹纪律摘要) */
|
package/lib/usage-stats.d.ts
CHANGED
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
* | 字段 | 含义 | 喂它的地方 |
|
|
39
39
|
* |---|---|---|
|
|
40
40
|
* | `skill.loads` | 模型**主动**调宿主 `skill` 工具(把某 skill 的 `SKILL.md` 全文载入) | `tools/post-execute`(工具名 = `skill`) |
|
|
41
|
-
* | `skill.injections` | ACC **每请求注入**的 skill 段(`
|
|
41
|
+
* | `skill.injections` | ACC **每请求注入**的 skill 段(`cognitiveTrajectory.skills` / 轨迹 frontmatter 声明) | `seams/system-prompt.ts` 的 cognitive-trajectory-skills section 求值回调 |
|
|
42
42
|
* | `msm` | `msm` 工具的一次执行,按 **MSM 名**分桶 | `tools/post-execute`(工具名 = `msm`) |
|
|
43
43
|
*
|
|
44
44
|
* 🔴 **两者差好几个数量级**:`loads` 是模型的**动作**(稀疏),`injections` 是**请求的属性**(稠密)。
|
package/lib/wake-registry.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* wake-registry.ts —
|
|
2
|
+
* wake-registry.ts — 认知轨迹唤醒注册表(D58,S142 2026-09-13)
|
|
3
3
|
*
|
|
4
|
-
* 需求(用户原话):一个 CCC
|
|
4
|
+
* 需求(用户原话):一个 CCC 内允许多个认知轨迹任意形态并行;某个认知轨迹可以
|
|
5
5
|
* **预定未来唤醒自己或别人**,本质上是一次「未来时刻 + 一条 message」的投递;「周期自唤醒」
|
|
6
6
|
* 曾是它的特例(原 ACC autopilot / D59,该机制已于 2026-09-15 整段退场)。协作边界:
|
|
7
7
|
* 互相可见、**无阻塞无等待**。
|
|
@@ -24,11 +24,11 @@ type WakeState = 'pending' | 'delivered' | 'missed' | 'cancelled';
|
|
|
24
24
|
export interface WakeEntry {
|
|
25
25
|
/** 稳定 id(不复用;`w-<当地到分钟>-<4 hex>`) */
|
|
26
26
|
id: string;
|
|
27
|
-
/**
|
|
27
|
+
/** 目标认知轨迹:`S###` 或完整 AGENT_SESSIONS 目录名(编码无关,与绑定锚一致) */
|
|
28
28
|
target: string;
|
|
29
29
|
/** 绝对时刻(当地 RFC3339 带偏移,如 `2026-09-14T09:00:00.000+08:00`) */
|
|
30
30
|
at: string;
|
|
31
|
-
/** 唤醒 message
|
|
31
|
+
/** 唤醒 message(投递给目标认知轨迹的正文) */
|
|
32
32
|
message: string;
|
|
33
33
|
/** 状态 */
|
|
34
34
|
state: WakeState;
|
|
@@ -79,7 +79,7 @@ export declare function parseWakeAt(input: string, nowMs: number): {
|
|
|
79
79
|
/**
|
|
80
80
|
* 登记一条唤醒。
|
|
81
81
|
* @param root CCC 根
|
|
82
|
-
* @param input
|
|
82
|
+
* @param input 目标认知轨迹 / 时刻串 / message / 发起者 / 当前时刻
|
|
83
83
|
* @returns 成功返回条目,失败返回稳定错误文案(不抛错)
|
|
84
84
|
*/
|
|
85
85
|
export declare function addWake(root: string, input: {
|
package/lib/wake-scheduler.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* wake-scheduler.ts —
|
|
2
|
+
* wake-scheduler.ts — 认知轨迹唤醒调度器(D58/D59/D60;S142 2026-09-13)
|
|
3
3
|
*
|
|
4
4
|
* 一个**中心调度器**(5min tick,复用 autopilot 的节律常量),处理 CCC 唤醒注册表里
|
|
5
|
-
* 到期的条目:把「未来时刻 + 一条 message
|
|
5
|
+
* 到期的条目:把「未来时刻 + 一条 message」投递给目标认知轨迹,**fire-and-forget**
|
|
6
6
|
* (无阻塞、无等待、无回执——发起方不 await,调度器不替模型结果负责)。
|
|
7
7
|
*
|
|
8
8
|
* 与 autopilot 的关系(D59):**两个 tick 各自独立**。autopilot 是每 CCC 单例的
|
|
@@ -100,7 +100,7 @@ export declare function deliverWake(ctx: unknown, root: string, entry: WakeEntry
|
|
|
100
100
|
*/
|
|
101
101
|
export declare function buildSendText(target: WakeTarget, message: string, sender: string): string;
|
|
102
102
|
/**
|
|
103
|
-
* 即时投递(`
|
|
103
|
+
* 即时投递(`cognitive_trajectory send-now`)——与 `send-later`(预约)**共用取用通路**(`acquireWakeAgent`),
|
|
104
104
|
* 区别只在**时刻**(现在 vs 未来)与**回执**(有 vs 无):
|
|
105
105
|
* · `send-later`(原 `wake-later`):未来时刻 + 一条 message → 落注册表 → 本文件的调度器到点投递(**fire-and-forget,无回执**)
|
|
106
106
|
* · `send-now`(原 `send-message`):**此刻**把一条 message 递给目标 → **同步回执** → **不落注册表**
|
|
@@ -127,7 +127,7 @@ export declare function buildSendText(target: WakeTarget, message: string, sende
|
|
|
127
127
|
* 预约的本职是"到点唤起",且在跑时排队不打断是它被实证验收过的行为,不顺手动它。
|
|
128
128
|
*
|
|
129
129
|
* **归属**:本函数放在调度器侧而非工具侧 —— "怎么把一句话送到一条轨迹"是**调度器的知识**,
|
|
130
|
-
* 工具只该知道"有这个动作"。这样 `trajectory.ts` 完全不碰调度器内部(v1.35.0 硬约束①:
|
|
130
|
+
* 工具只该知道"有这个动作"。这样 `cognitive-trajectory.ts` 完全不碰调度器内部(v1.35.0 硬约束①:
|
|
131
131
|
* `send-later` 链路**一行为不动**,本次改动 = **纯新增**)。
|
|
132
132
|
*
|
|
133
133
|
* @param ctx 插件上下文
|
|
@@ -137,7 +137,7 @@ export declare function buildSendText(target: WakeTarget, message: string, sende
|
|
|
137
137
|
* @param sender 发起者轨迹标识
|
|
138
138
|
* @returns 投递结果(**同步**返回给调用方)
|
|
139
139
|
*/
|
|
140
|
-
export declare function
|
|
140
|
+
export declare function sendToCognitiveTrajectory(ctx: unknown, root: string, target: string, message: string, sender: string): Promise<WakeDeliveryResult>;
|
|
141
141
|
/**
|
|
142
142
|
* CRO 唤起消息正文(**刻意不复用** {@link buildWakeText} / {@link buildSendText})。
|
|
143
143
|
*
|
package/lib/weixin-bridge.d.ts
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
* `human-channel.ts`(机器级机制;本文件只接线)。这是"微信桥上移 ACC 层"的第一步。
|
|
22
22
|
*
|
|
23
23
|
* 外部面纯净(D9/D11 延续):微信桥会话 = 外部面——session/prompt 走
|
|
24
|
-
*
|
|
24
|
+
* includeCognitiveTrajectory:false(对外不返回轨迹);skiff 角色白名单即授权(G9)。
|
|
25
25
|
*/
|
|
26
26
|
import type { Context } from 'cordis';
|
|
27
27
|
import { type WeixinAccountCredential } from './weixin-route.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-8H4AJuhK.js";
|
|
2
|
-
import { s as loadSerenityConfig, t as DEFAULT_SERENITY_CONFIG_PATHS } from "./ccc-
|
|
3
|
-
import { c as unsetEntry, l as writeEntry, r as getEntry } from "./localstore-ops-
|
|
2
|
+
import { s as loadSerenityConfig, t as DEFAULT_SERENITY_CONFIG_PATHS } from "./ccc-C33QWoWZ.js";
|
|
3
|
+
import { c as unsetEntry, l as writeEntry, r as getEntry } from "./localstore-ops-ylQoPz1Q.js";
|
|
4
4
|
import { join, resolve } from "node:path";
|
|
5
5
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
6
6
|
import { createHash } from "node:crypto";
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shgroup/dsh-serenity-hooks",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "宁静号 ACC harness(Native Cordis 插件)——给 DeepSeek Harness 装一个「AI 工作区」:14 个工具(container_fs/
|
|
3
|
+
"version": "1.66.0",
|
|
4
|
+
"description": "宁静号 ACC harness(Native Cordis 插件)——给 DeepSeek Harness 装一个「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(三档)。",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|