@shgroup/dsh-serenity-hooks 1.31.13 → 1.32.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 +8 -5
- package/dsh.plugin.json +3 -3
- package/experiments/autopilot-trajectory/SKILL.md +23 -21
- package/lib/autopilot-trajectory.d.ts +15 -5
- package/lib/ccc.d.ts +10 -0
- package/lib/client.js +16 -4
- package/lib/index.js +635 -49
- package/lib/invariant.d.ts +1 -1
- package/lib/invariant.js +1 -1
- package/lib/msm-ops.d.ts +2 -2
- package/lib/{session-bound-BpTayaIS.js → session-bound-NHozeLFc.js} +57 -1
- package/lib/session-bound.d.ts +30 -0
- package/lib/{settings-section-01rTVq6v.js → settings-section-Bm-xG-NR.js} +6 -3
- package/lib/settings-section.d.ts +5 -0
- package/lib/{skiff-debug-w2c3UqQk.js → skiff-debug-K2k1JnGj.js} +1 -1
- package/lib/tools/autopilot-trajectory.d.ts +2 -2
- package/lib/wake-registry.d.ts +146 -0
- package/lib/wake-scheduler.d.ts +76 -0
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -78,10 +78,10 @@ dsh plugin --profile web add link:$(pwd)/hooks/dsh-serenity-hooks
|
|
|
78
78
|
| `handyman` | 杂工:派一个便宜模型的助手干活。**默认模式(foreground)**= 一次串行委派、拿回结果;**background 模式**= 循环干活直到完成(完成码校验 / 轮次上限 / 自动重启 / 进度文件),也可一次派多个并行 | 大批量、重复性的活(扫描几十个技能、逐用例回归) |
|
|
79
79
|
| `localstore` | 存密钥和配置(凭据、偏好两个命名空间) | API key、密码集中放一处,不进 git |
|
|
80
80
|
| `container_admin` | 机务舱:管理子角色、管理小工具注册表、查看全部配置 | 定义"子角色"、注册新小工具时 |
|
|
81
|
-
| `
|
|
81
|
+
| `trajectory` | 轨迹管理:登记**未来唤醒**(唤醒 = 未来某时刻 + 一条消息,可唤醒自己,也可唤醒别的轨迹);定时自动巡航(到点唤醒工作区、注入当前焦点),支持多个工作区各自独立 | 想让 AI 定时自己干活、或安排它未来某刻自动接着干(见 §6.5) |
|
|
82
82
|
| `im-bridge` | 给 IM 联系人发消息(目前是微信):发文本、发文件、查已配置联系人、查通道状态。每次成功发送自动进工作区的消息记录 | 想让 AI 主动给家人/同事发消息(见 §6.6)。**只在工作区配了微信桥时才出现**,且只能发本工作区的消息 |
|
|
83
83
|
|
|
84
|
-
> **改过名**(旧名已彻底停用,没有兼容别名):`cc_fs` → `container_fs` · `cc_git` → `container_git` · `session`+`session_rebuild` → `logbook` · `acc_kit` → `dashboard` · `acc_msm` → `msm`(执行)+ `container_admin`(管理)· `eap`/`neat`/`cce` → `praxis` · `skiff_admin` → `container_admin role`。老会话里看到旧名,照这张表对照即可。
|
|
84
|
+
> **改过名**(旧名已彻底停用,没有兼容别名):`cc_fs` → `container_fs` · `cc_git` → `container_git` · `session`+`session_rebuild` → `logbook` · `acc_kit` → `dashboard` · `acc_msm` → `msm`(执行)+ `container_admin`(管理)· `eap`/`neat`/`cce` → `praxis` · `skiff_admin` → `container_admin role` · `autopilot-trajectory` → `trajectory`。老会话里看到旧名,照这张表对照即可。
|
|
85
85
|
|
|
86
86
|
### 3.2 机械约束(AI 绕不过去)
|
|
87
87
|
|
|
@@ -264,14 +264,17 @@ DSH 一个进程可以同时带多个工作区,每个工作区各自对接自
|
|
|
264
264
|
- **只给答案**:响应里只有 answer / answer_html / sessionId——内部轨迹、工具结果、机制信息都不出去
|
|
265
265
|
- 默认只监听 127.0.0.1;要给别人用,怎么暴露(隧道/反代/端口映射)由你决定
|
|
266
266
|
|
|
267
|
-
### 6.5
|
|
267
|
+
### 6.5 轨迹与自主巡航(trajectory)
|
|
268
268
|
|
|
269
|
-
|
|
269
|
+
`trajectory`(轨迹)是一等概念:一个工作区里可以有任意多条轨迹并行;**autopilot(自主巡航)是它的一个子集**——"周期自唤醒"的特例。
|
|
270
|
+
|
|
271
|
+
**自主巡航**:让工作区**到点自己醒过来干活**,全程在你眼前发生(前台注入,随时可介入):
|
|
270
272
|
|
|
271
273
|
- **什么时候醒**:工作区开关打开 + 全局开关打开(默认关,只在你想跑的机器上开)+ 目标会话存在(目录带 `--auto` 后缀)+ 到了间隔(支持小数,最密约 36 秒)+ 不在避开的高峰窗口(默认北京时间 8~18 点)+ 偏见脚本就绪
|
|
272
274
|
- **醒了先看什么**:先看你自己写的"焦点"(`topPrompt`,每轮最先注入,防跑偏),再看随机生成的"偏见内容"(你写的脚本,负责探索方向)
|
|
273
275
|
- **多个工作区各自独立**:每个工作区自己的间隔/会话/焦点/窗口,互不干扰
|
|
274
276
|
- **有审计**:每次唤醒都记一笔,面板里能看到最近几次;失败会指数退避重试
|
|
277
|
+
- **还能预约未来某一刻**:登记一条"唤醒"= 未来某时刻 + 一条消息——可以给自己预约,也可以唤醒别的轨迹;落在工作区内的 `AGENT_SESSIONS/wake-registry.json`(可读可审计),到点由中心调度器投递,不阻塞、不等待
|
|
275
278
|
- 没有"每天最多唤醒几次"的限制——频率只由间隔和窗口决定
|
|
276
279
|
|
|
277
280
|
### 6.6 安全模型
|
|
@@ -344,7 +347,7 @@ pnpm build # 打包(lib/index.js + client.js)
|
|
|
344
347
|
| 跑在 | OpenCode | DeepSeek Harness |
|
|
345
348
|
| 实现 | 独立 | **独立**(不复用源码,但遵循同一套标准) |
|
|
346
349
|
| 系统提示词 | `system.transform` | `systemPrompt.section`,平台无关的部分逐字对齐 |
|
|
347
|
-
| 工具 | msm / container_fs / logbook 等 | container_fs / logbook / dashboard / container_git / msm / praxis / handyman / localstore / container_admin /
|
|
350
|
+
| 工具 | msm / container_fs / logbook 等 | container_fs / logbook / dashboard / container_git / msm / praxis / handyman / localstore / container_admin / trajectory / im-bridge |
|
|
348
351
|
|
|
349
352
|
**同一个工作区可以随时换运行时**:`.serenity` 标记、`.opencode/skills/`、配置、`AGENT_SESSIONS/` 的文件格式都一致;
|
|
350
353
|
差别只在平台层(工具名、注入方式),换过去以后 AI 收到的约束是一样的。
|
package/dsh.plugin.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "dsh-serenity-hooks",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.32.0",
|
|
4
4
|
"main": "lib/index.js",
|
|
5
|
-
"description": "宁静号 ACC harness(Native Cordis 插件):给 DSH 装一个「AI 工作区」——11 个工具(container_fs/logbook/dashboard/container_git/msm/praxis/handyman/localstore/container_admin/
|
|
5
|
+
"description": "宁静号 ACC harness(Native Cordis 插件):给 DSH 装一个「AI 工作区」——11 个工具(container_fs/logbook/dashboard/container_git/msm/praxis/handyman/localstore/container_admin/trajectory/im-bridge)+ 机械约束(安全模式/工作区围墙/密钥守卫)+ 工作日志与原地重建 + 网页登录入口/微信桥/子角色/对外问答页/trajectory 唤醒注册表。适配 DSH 0.1.5-rc.2(deepseek-ai/deepseek-harness)。",
|
|
6
6
|
"engines": {
|
|
7
7
|
"dsh": ">=0.1.5-rc.2"
|
|
8
8
|
},
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"handyman",
|
|
18
18
|
"localstore",
|
|
19
19
|
"container_admin",
|
|
20
|
-
"
|
|
20
|
+
"trajectory",
|
|
21
21
|
"im-bridge"
|
|
22
22
|
],
|
|
23
23
|
"skills": []
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: autopilot-trajectory-experiment
|
|
3
|
-
description: Autopilot Trajectory(自动巡航轨迹,正式版;前身自主轨迹实验)参与 skill。本 skill 让 CCC 完整理解机制背景(人类 waiting 是 trajectory 速度瓶颈)、目的(验证"无人等待的 trajectory"能否加速认知推进)、方式(时钟唤起 + 先验偏见 + 轨迹焦点 + 前台运行 + 多 CCC
|
|
3
|
+
description: Autopilot Trajectory(自动巡航轨迹,正式版;前身自主轨迹实验)参与 skill。本 skill 让 CCC 完整理解机制背景(人类 waiting 是 trajectory 速度瓶颈)、目的(验证"无人等待的 trajectory"能否加速认知推进)、方式(时钟唤起 + 先验偏见 + 轨迹焦点 + 前台运行 + 多 CCC 独立),并提供一站式管理工具(`trajectory`:无参全报告 / init 初始化 / random 验证偏见内容 / diag 诊断)。任何希望参与的 CCC 复制本目录到 .opencode/skills/ 即可开始。
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Skill: autopilot-trajectory-experiment
|
|
7
7
|
|
|
8
8
|
> 本 skill 是 Autopilot Trajectory(自动巡航轨迹)的 **CCC 参与入口**——加载本 skill 即完整理解机制的**背景、目的、方式**。
|
|
9
|
-
>
|
|
9
|
+
> 实验管理:工具 `trajectory`(动作 `<all|doc|check|status|guide>`;D58 起 ACC 工具 `autopilot-trajectory` 更名 `trajectory`,硬切无别名)
|
|
10
10
|
> 理论依据:serenity-acc-specs `docs/self-sustaining-trajectory-hypothesis.md`(v0.1 猜想)
|
|
11
11
|
|
|
12
12
|
## 触发条件/何时加载
|
|
@@ -37,31 +37,33 @@ description: Autopilot Trajectory(自动巡航轨迹,正式版;前身自
|
|
|
37
37
|
|
|
38
38
|
## 3. 参与方式(CCC 侧四步——第一步可一键 init)
|
|
39
39
|
|
|
40
|
-
### ① 初始化(一键):`
|
|
40
|
+
### ① 初始化(一键):`trajectory init`
|
|
41
41
|
|
|
42
|
-
自动完成:写配置(`.opencode/serenity.json`
|
|
42
|
+
自动完成:写配置(`.opencode/serenity.json` `trajectory.autopilot` 段)+ 生成偏见提供者脚本模板(CCC 根 `autopilot-bias.ts`)。
|
|
43
43
|
|
|
44
44
|
```jsonc
|
|
45
45
|
// 写入的配置(init 后可在 .opencode/serenity.json 查看/调整)
|
|
46
46
|
{
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
47
|
+
"trajectory": {
|
|
48
|
+
"autopilot": { // 原 autopilotTrajectory 段,字段不变
|
|
49
|
+
"enabled": true, // 总开关(缺省 false,默认关零资源占用)
|
|
50
|
+
"intervalHours": 12, // 无人类活动 N 小时后唤起(缺省 12)
|
|
51
|
+
"biasProvider": "autopilot-bias.ts", // 偏见内容提供者脚本(CCC 根下)
|
|
52
|
+
"topPrompt": "本轨迹的核心焦点:<CCC 填写>", // 轨迹焦点:CCC 定义,每次唤起最先注入
|
|
53
|
+
"session": "S###", // 必填:目标会话(不配置绝不唤起)
|
|
54
|
+
"avoidWakeHours": { "start": 8, "end": 18 } // 可选:避开北京高峰(缺省 8~18 省钱)
|
|
55
|
+
}
|
|
54
56
|
}
|
|
55
57
|
}
|
|
56
58
|
```
|
|
57
59
|
|
|
58
60
|
### ② 定义轨迹焦点(topPrompt——CCC 自己填写)
|
|
59
61
|
|
|
60
|
-
**CCC 定义
|
|
62
|
+
**CCC 定义 `trajectory.autopilot` 时同时定义本轨迹的顶层提示词**(`topPrompt`):核心目标/纪律/质量要求(示例:"持续深化某领域认知,产出可重建的结论与决策记录")。它会在**每次唤起时最先注入**(`[轨迹焦点]` 段,位于身份锚定之前,影响力最大),作为**稳定焦点锚定 trajectory**——**实验观察:无焦点锚定时,多轮自主唤起中轨迹腐化严重(焦点丢失)**。与偏见内容的分工:**焦点=稳定锚(每轮不变),偏见=随机探索方向(每轮不同),互补**。init 生成占位,CCC 按自己轨迹目标改写(勿留空——留空 = 唤起无焦点锚定,轨迹易漂移)。
|
|
61
63
|
|
|
62
64
|
### ③ 实现偏见内容提供者(`autopilot-bias.ts`)
|
|
63
65
|
|
|
64
|
-
CCC 根目录下一个脚本,**stdout 输出本轮唤起注入的偏见内容**(反事实问题/探索方向/任何让轨迹偏离既有路径的输入)。**偏见内容归 CCC**——用本 CCC 自己的反馈信息来源保证"足够随机"。`
|
|
66
|
+
CCC 根目录下一个脚本,**stdout 输出本轮唤起注入的偏见内容**(反事实问题/探索方向/任何让轨迹偏离既有路径的输入)。**偏见内容归 CCC**——用本 CCC 自己的反馈信息来源保证"足够随机"。`trajectory random` 可验证输出。
|
|
65
67
|
|
|
66
68
|
### ④ 标记目标会话(可选自生动机段)
|
|
67
69
|
|
|
@@ -83,17 +85,17 @@ CCC 根目录下一个脚本,**stdout 输出本轮唤起注入的偏见内容*
|
|
|
83
85
|
|
|
84
86
|
**人类角色**:不触发、不中断;回复/评价天然并入(同一前台会话);轨迹不等人类。
|
|
85
87
|
|
|
86
|
-
## 5.
|
|
88
|
+
## 5. 实验管理(`trajectory` 工具)——一站式
|
|
87
89
|
|
|
88
90
|
| 用法 | 功能 |
|
|
89
91
|
|------|------|
|
|
90
|
-
| `
|
|
91
|
-
| `
|
|
92
|
-
| `
|
|
93
|
-
| `
|
|
94
|
-
| `
|
|
95
|
-
| `
|
|
96
|
-
| `
|
|
92
|
+
| `trajectory`(**推荐,无参**) | **一站式全报告**:背景摘要 + 就绪度检查 + 当前状态 + 下一步指引 + 步骤——CCC agent 看一次即完整理解并知道怎么开始 |
|
|
93
|
+
| `trajectory init` | **一键初始化**:写配置 + 生成偏见提供者脚本模板(CCC 根 autopilot-bias.ts) |
|
|
94
|
+
| `trajectory random` | 运行偏见提供者脚本,输出当前偏见内容(验证) |
|
|
95
|
+
| `trajectory doc` | 机制定义说明全文(本 SKILL.md) |
|
|
96
|
+
| `trajectory check` | 仅就绪度检查(配置/轨迹焦点 topPrompt/偏见提供者/--auto 标志/动机段) |
|
|
97
|
+
| `trajectory status` | 仅当前状态(配置快照/目标会话/距上次活动/唤起窗口/可唤起性) |
|
|
98
|
+
| `trajectory guide` | 仅步骤指引 |
|
|
97
99
|
|
|
98
100
|
## 6. 观察与验证
|
|
99
101
|
|
|
@@ -50,7 +50,7 @@ export declare const BIAS_OUTPUT_MAX: number;
|
|
|
50
50
|
export declare const BIAS_RUN_TIMEOUT_MS = 60000;
|
|
51
51
|
/** 审计历史 ring 上限(每 CCC 保留最近 N 条唤起记录) */
|
|
52
52
|
export declare const AUDIT_HISTORY_MAX = 50;
|
|
53
|
-
/**
|
|
53
|
+
/** 读配置:`trajectory.autopilot`(D58 新键)优先 → 旧键 autopilotTrajectory → 旧键 autotrajectory */
|
|
54
54
|
export declare function readAutopilotSettings(root: string): AutopilotTrajectorySettings | null;
|
|
55
55
|
/**
|
|
56
56
|
* 北京时间(UTC+8)当前小时——不依赖服务器时区(服务器可能 UTC/本地任意)。
|
|
@@ -142,13 +142,13 @@ export declare function performAutopilotWake(ctx: Context, root: string, setting
|
|
|
142
142
|
*/
|
|
143
143
|
export declare function registerAutopilot(ctx: Context): void;
|
|
144
144
|
/**
|
|
145
|
-
* 面板状态(GET /serenity/
|
|
145
|
+
* 面板状态(GET /serenity/trajectory 数据源;纯逻辑,可单测)——
|
|
146
146
|
* WebUI 设置面板「Autopilot Trajectory」只读区块展示的完整状态:配置摘要 + 目标会话
|
|
147
147
|
* 命中/标志/空闲时长 + 当前窗口/可唤起判定 + 审计(最近唤起)。
|
|
148
|
-
* 不运行偏见脚本(只报脚本是否就绪——运行验证走
|
|
148
|
+
* 不运行偏见脚本(只报脚本是否就绪——运行验证走 trajectory random)。
|
|
149
149
|
*/
|
|
150
150
|
export interface AutopilotTrajectoryStatus {
|
|
151
|
-
/** 是否配置了
|
|
151
|
+
/** 是否配置了 trajectory.autopilot 段(.opencode/serenity.json;旧键 autopilotTrajectory / autotrajectory 回退) */
|
|
152
152
|
configured: boolean;
|
|
153
153
|
/** 总开关(缺省 false——未开零资源占用) */
|
|
154
154
|
enabled: boolean;
|
|
@@ -202,7 +202,17 @@ export declare function collectAutopilotCccs(ctx: Context, opts?: {
|
|
|
202
202
|
includeDisabled?: boolean;
|
|
203
203
|
}): string[];
|
|
204
204
|
/**
|
|
205
|
-
*
|
|
205
|
+
* 所有 live 会话所属的 CCC 根(去重,保持出现顺序)。
|
|
206
|
+
*
|
|
207
|
+
* 与 {@link collectAutopilotCccs} 的区别:**不要求该 CCC 配置 trajectory.autopilot**——
|
|
208
|
+
* 唤醒注册表(wake-scheduler)的条目可以指向任何 CCC 的任何 trajectory。
|
|
209
|
+
*
|
|
210
|
+
* @param ctx 插件上下文
|
|
211
|
+
* @returns CCC 根路径列表(无 live 会话 → `[]`)
|
|
212
|
+
*/
|
|
213
|
+
export declare function collectLiveCccs(ctx: Context): string[];
|
|
214
|
+
/**
|
|
215
|
+
* 进程内诊断(trajectory diag-live 数据源;用户"排查访问不到 pangu 写个 msm")——
|
|
206
216
|
* 输出当前实例 live 会话清单(id/cwd/ccc/标题)+ 每个配置了 Autopilot 的 CCC
|
|
207
217
|
* 状态(配置摘要/目标命中/可唤起)+ 目标 agent 定位结果。脚本 diag 看不到运行时,
|
|
208
218
|
* 本函数在插件进程内运行(能读 sessions/agents)。
|
package/lib/ccc.d.ts
CHANGED
|
@@ -84,6 +84,16 @@ export interface SerenityConfig {
|
|
|
84
84
|
autopilotTrajectory?: AutopilotTrajectorySettings;
|
|
85
85
|
/** 旧键兼容(正式化前存量 CCC,如 pangu——新键 autopilotTrajectory 优先,旧键回退) */
|
|
86
86
|
autotrajectory?: AutopilotTrajectorySettings;
|
|
87
|
+
/**
|
|
88
|
+
* trajectory 族配置(D58,S142 2026-09-13):`trajectory` 是一等概念,
|
|
89
|
+
* **autopilot 降为其子集**——故 autopilot 的配置迁到 `trajectory.autopilot`。
|
|
90
|
+
* 读取顺序(逐级回退,**不回写**):`trajectory.autopilot` → `autopilotTrajectory` → `autotrajectory`。
|
|
91
|
+
* 唤醒注册表(未来时刻一次性唤醒)为 CCC 级文件 `AGENT_SESSIONS/wake-registry.json`,不在此配置。
|
|
92
|
+
*/
|
|
93
|
+
trajectory?: {
|
|
94
|
+
/** autopilot(周期自唤醒的特例;每 CCC 单例,D59) */
|
|
95
|
+
autopilot?: AutopilotTrajectorySettings;
|
|
96
|
+
};
|
|
87
97
|
/**
|
|
88
98
|
* 微信桥(F4c-3,v1.27.0 实验性):**CCC 级**配置——dsh 一个进程含多个 CCC,
|
|
89
99
|
* 每个 CCC 独立对接微信桥(S142 用户拍板:ACC 不绑定 role,配置归 CCC,手工)。
|
package/lib/client.js
CHANGED
|
@@ -5112,6 +5112,7 @@ Instruction-following style:
|
|
|
5112
5112
|
const [cccs, setCccs] = (0, react.useState)([]);
|
|
5113
5113
|
const [selectedRoot, setSelectedRoot] = (0, react.useState)("");
|
|
5114
5114
|
const [status, setStatus] = (0, react.useState)(null);
|
|
5115
|
+
const [wakes, setWakes] = (0, react.useState)([]);
|
|
5115
5116
|
const [unavailable, setUnavailable] = (0, react.useState)(false);
|
|
5116
5117
|
const [waking, setWaking] = (0, react.useState)(false);
|
|
5117
5118
|
const [wakeResult, setWakeResult] = (0, react.useState)(null);
|
|
@@ -5135,9 +5136,10 @@ Instruction-following style:
|
|
|
5135
5136
|
const refresh = (0, react.useCallback)(async () => {
|
|
5136
5137
|
if (!selectedRoot) return;
|
|
5137
5138
|
try {
|
|
5138
|
-
const res = await fetch(`/serenity/
|
|
5139
|
+
const res = await fetch(`/serenity/trajectory?ccc=${encodeURIComponent(selectedRoot)}`, { headers: { accept: "application/json" } });
|
|
5139
5140
|
if (!res.ok) return;
|
|
5140
5141
|
const body = await res.json();
|
|
5142
|
+
if (Array.isArray(body.wakes)) setWakes(body.wakes);
|
|
5141
5143
|
if (body.status) {
|
|
5142
5144
|
setStatus(body.status);
|
|
5143
5145
|
setUnavailable(false);
|
|
@@ -5156,7 +5158,7 @@ Instruction-following style:
|
|
|
5156
5158
|
setWaking(true);
|
|
5157
5159
|
setWakeResult(null);
|
|
5158
5160
|
try {
|
|
5159
|
-
const res = await fetch("/serenity/
|
|
5161
|
+
const res = await fetch("/serenity/trajectory", {
|
|
5160
5162
|
method: "POST",
|
|
5161
5163
|
headers: {
|
|
5162
5164
|
"content-type": "application/json",
|
|
@@ -5204,7 +5206,7 @@ Instruction-following style:
|
|
|
5204
5206
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("li", { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(RowCard, {
|
|
5205
5207
|
title: "目标 CCC",
|
|
5206
5208
|
desc: "多 CCC 各自独立——选中哪个就查看/唤起哪个",
|
|
5207
|
-
help: "Autopilot Trajectory 目标认知容器:\n· 机制:dsh 一个进程可挂载多个 CCC,每个 CCC 的 autopilot 独立配置\n· 选择:下拉切换要查看/唤起的目标 CCC(各 CCC 时钟独立)\n· 配置:各 CCC 在自身 .opencode/serenity.json 定义 autopilotTrajectory
|
|
5209
|
+
help: "Autopilot Trajectory 目标认知容器:\n· 机制:dsh 一个进程可挂载多个 CCC,每个 CCC 的 autopilot 独立配置\n· 选择:下拉切换要查看/唤起的目标 CCC(各 CCC 时钟独立)\n· 配置:各 CCC 在自身 .opencode/serenity.json 定义 trajectory.autopilot(旧键 autopilotTrajectory 兼容)\n· 唤起:仅对选中 CCC 生效,互不干扰",
|
|
5208
5210
|
control: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("select", {
|
|
5209
5211
|
className: "ss-select",
|
|
5210
5212
|
value: selectedRoot,
|
|
@@ -5224,7 +5226,7 @@ Instruction-following style:
|
|
|
5224
5226
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("li", { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(RowCard, {
|
|
5225
5227
|
title: "运行状态",
|
|
5226
5228
|
desc: stateText,
|
|
5227
|
-
help: "Autopilot Trajectory 运行状态含义:\n· 未配置:该 CCC 未定义
|
|
5229
|
+
help: "Autopilot Trajectory 运行状态含义:\n· 未配置:该 CCC 未定义 trajectory.autopilot(机制不开始)\n· 已配置未启用:enabled=false,零资源占用(不唤起不消耗)\n· 已启用:时钟驱动周期性自动唤起——无人类活动满间隔小时数后\n 启动一次前台 agent 轮(用户全程可见可介入)",
|
|
5228
5230
|
control: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
5229
5231
|
className: "ss-value",
|
|
5230
5232
|
children: status.enabled ? "● 运行中" : status.configured ? "○ 待启" : "—"
|
|
@@ -5255,6 +5257,16 @@ Instruction-following style:
|
|
|
5255
5257
|
}
|
|
5256
5258
|
] })
|
|
5257
5259
|
}) }),
|
|
5260
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("li", { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
5261
|
+
className: "ss-rowCard",
|
|
5262
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DefList, { items: [{
|
|
5263
|
+
term: "唤醒注册表",
|
|
5264
|
+
value: wakes.length === 0 ? "无条目(agent 用 trajectory wake-add 登记:未来时刻 + 一条 message)" : `${wakes.filter((w) => w.state === "pending").length} 条在办 / 共 ${wakes.length} 条`
|
|
5265
|
+
}, ...wakes.slice(0, 5).map((w) => ({
|
|
5266
|
+
term: w.state === "pending" ? "· 待唤醒" : `· ${w.state}`,
|
|
5267
|
+
value: `${new Date(w.at).toLocaleString()} → ${w.target}${w.lastResult ? `(${w.lastResult})` : ""}`
|
|
5268
|
+
}))] })
|
|
5269
|
+
}) }),
|
|
5258
5270
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("li", { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(RowCard, {
|
|
5259
5271
|
title: "立即唤起",
|
|
5260
5272
|
desc: wakeResult ?? "调试:手动触发一次(跳过窗口/间隔,仍校验配置与偏见脚本)",
|