pi-shadow-mind 0.1.18 → 0.1.19
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/DESIGN-Evolution.md +29 -25
- package/README.md +1 -1
- package/README.zh-CN.md +1 -1
- package/dist/index.js +9 -7
- package/dist/index.js.map +2 -2
- package/package.json +1 -1
package/DESIGN-Evolution.md
CHANGED
|
@@ -1,35 +1,39 @@
|
|
|
1
1
|
# DESIGN Evolution
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
本日志记录 `DESIGN.md` 当前契约之外仍需保留的约束、分析与变更原因;更新时先压缩历史,再追加新的变更单元。
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## 2026-09-04 · 确立最小可验证的调度模型
|
|
6
6
|
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
- 2026-09-04: Shadow 上下文采用 Main 可见上下文的净化子集。它保留用户约束、Main 行为和工具调用概述,同时排除 Main thinking、完整工具结果与未上报的 Shadow 推理,使 Shadow 能独立核查而不是复制 Main 的证据链。
|
|
11
|
-
- 2026-09-04: 完成后检查由独立 generation 聚合整批结果。新输入或修订会使旧 generation 失效,防止较慢的检查在 Main 已经进入下一条任务线后继续介入。
|
|
12
|
-
- 2026-09-04: `report_to_main` 保持单字段、单次上报协议。严重度、类别和表达结构属于各 Shadow 的职责定义,公共运行时只负责终止当前 loop 与可靠投递。
|
|
7
|
+
- 发生:系统需要验证多个持久职责 Shadow 能否稳定补充 Main。
|
|
8
|
+
- 分析:复杂语义调度会同时改变过多实验变量,基础机制尚未产生足够收益、误报、成本和延迟数据。
|
|
9
|
+
- 改变:采用随机 heartbeat 与确定性 final-response review;语义 Gate、Expected Value of Thinking、学习型调度和自动策略优化保留为获得运行数据后的候选。
|
|
13
10
|
|
|
14
|
-
##
|
|
11
|
+
## 2026-09-04 · 分离持久定义与一次运行
|
|
15
12
|
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
- 在不削弱独立核查的前提下,评估跨次 Shadow 记忆或显式 Shadow 间通信。
|
|
20
|
-
- 当不同执行模型的上下文窗口形成真实限制时,评估独立摘要或截断策略。
|
|
21
|
-
- 根据跨供应商运行的实际隐私需求,评估工具参数中的凭据识别与脱敏。
|
|
22
|
-
- 当观察需求成熟后,评估内置 Markdown 编辑体验以及调试日志轮转策略。
|
|
13
|
+
- 发生:Shadow 既需要跨项目复用职责,又需要避免运行历史在任务间隐式泄漏。
|
|
14
|
+
- 分析:全局定义适合表达持久身份,一次性 AgentSession 适合隔离状态;Main 可见上下文足以支持独立核查,Main thinking、完整工具结果和未上报 Shadow 推理会污染证据链。
|
|
15
|
+
- 改变:Shadow 定义进入全局 registry,运行实例保持一次性;上下文使用 Main 可见内容的净化子集。项目 registry、跨次记忆、Shadow 间通信及独立摘要/截断留待真实需求出现后评估。
|
|
23
16
|
|
|
24
|
-
##
|
|
17
|
+
## 2026-09-04 · 建立完成检查的 generation 边界
|
|
25
18
|
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
- 由运行时强制所有 Main、Shadow 与第三方工具参加文件级写入锁。
|
|
30
|
-
- 用模型对同期 Shadow 报告进行二次总结或去重。
|
|
31
|
-
- 在公共报告协议中加入固定严重度、类别或报告模板。
|
|
19
|
+
- 发生:多个 completion Shadow 可能晚于新输入或修订返回。
|
|
20
|
+
- 分析:旧检查若继续介入,会把过期判断投递到新的任务线;同期结果也需要一次性聚合,而不是逐条打断 Main。
|
|
21
|
+
- 改变:每轮完成检查由独立 generation 管理并整批交付,新输入或修订使旧 generation 失效;模型二次总结或去重暂不进入公共流程。
|
|
32
22
|
|
|
33
|
-
##
|
|
23
|
+
## 2026-09-04 · 明确工具授权边界
|
|
34
24
|
|
|
35
|
-
-
|
|
25
|
+
- 发生:Shadow 需要显式工具能力,广泛授权的静态列表又会随 Main Session registry 漂移。
|
|
26
|
+
- 分析:Pi 的通用 `ToolDefinition` 不能声明只读性,运行时也无法预知第三方工具副作用,因此不能承诺普适文件锁;全工具授权应继承实时 registry,而非复制名称。
|
|
27
|
+
- 改变:普通 Shadow 使用用户白名单,`tools: ["*"]` 动态解析当前工具 registry。协作式目标文件锁、未知工具协调和凭据脱敏仅作为未来可选协议。
|
|
28
|
+
|
|
29
|
+
## 2026-09-04 · 保持最小报告协议
|
|
30
|
+
|
|
31
|
+
- 发生:公共运行时需要可靠接收不同职责 Shadow 的结论。
|
|
32
|
+
- 分析:严重度、类别和表达结构属于职责定义;把它们固化进协议会限制新 Shadow,并增加无必要的运行时分支。
|
|
33
|
+
- 改变:`report_to_main` 保持单字段、单次上报,负责终止当前 loop 和可靠投递;固定严重度、类别、模板及同期报告的模型总结均不进入公共协议。
|
|
34
|
+
|
|
35
|
+
## 2026-09-04 · 收敛设计语言与扩展范围
|
|
36
|
+
|
|
37
|
+
- 发生:早期讨论包含产品隐喻、内置编辑体验和可观测性扩展等非运行时主线内容。
|
|
38
|
+
- 分析:“多核”“章鱼”等隐喻适合产品表达但不拥有架构语义;Markdown 编辑器和日志轮转需要先由真实使用证明价值。
|
|
39
|
+
- 改变:`DESIGN.md` 只保留当前运行时契约;隐喻退出技术定义,编辑体验、日志轮转及其他尚未验证的扩展保留在本变更历史中。
|
package/README.md
CHANGED
|
@@ -97,7 +97,7 @@ On the first session start, the extension creates:
|
|
|
97
97
|
|
|
98
98
|
No default Shadow Mind is created. The global runtime timeout defaults to 300 seconds, and individual Shadows may override it with `timeout_seconds`.
|
|
99
99
|
|
|
100
|
-
Press `Alt+S` to pause or resume Shadow Mind for the current session. The paused footer reads `🐙 Paused` without a redundant zero count. Use `/shadow` to toggle the status panel, `/shadow status` for a summary, or `/shadow toggle`, `/shadow pause`, and `/shadow resume` for command-based control. Management tools can list, create, update, enable, disable, and delete Shadow Minds, as well as read or update the global configuration. Every write requires user confirmation.
|
|
100
|
+
Press `F6` or `Alt+S` to pause or resume Shadow Mind for the current session. On macOS, you may need `Fn+F6`; `Alt+S` corresponds to `Option+S` and depends on the terminal's Option key mapping. The paused footer reads `🐙 Paused` without a redundant zero count. Use `/shadow` to toggle the status panel, `/shadow status` for a summary, or `/shadow toggle`, `/shadow pause`, and `/shadow resume` for command-based control. Management tools can list, create, update, enable, disable, and delete Shadow Minds, as well as read or update the global configuration. Every write requires user confirmation.
|
|
101
101
|
|
|
102
102
|
## Using with DSH
|
|
103
103
|
|
package/README.zh-CN.md
CHANGED
|
@@ -94,7 +94,7 @@ pi install npm:pi-shadow-mind
|
|
|
94
94
|
|
|
95
95
|
扩展不会默认创建 Shadow Mind。全局默认运行超时为 300 秒,单个 Shadow 可以通过 `timeout_seconds` 覆盖。
|
|
96
96
|
|
|
97
|
-
按 `Alt+S` 可以暂停或恢复当前 Session 的 Shadow Mind
|
|
97
|
+
按 `F6` 或 `Alt+S` 可以暂停或恢复当前 Session 的 Shadow Mind。macOS 上可能需要按 `Fn+F6`;`Alt+S` 对应 `Option+S`,是否生效取决于终端的 Option 键映射。暂停时底部状态显示为 `🐙 Paused`,不再显示没有信息量的零计数。使用 `/shadow` 显示或隐藏状态面板,`/shadow status` 查看摘要,也可以通过 `/shadow toggle`、`/shadow pause` 和 `/shadow resume` 控制状态。管理工具可以查询、创建、更新、启用、禁用和删除 Shadow Mind,以及读取或修改全局配置。所有写操作都需要用户确认。
|
|
98
98
|
|
|
99
99
|
## 在 DSH 中使用
|
|
100
100
|
|
package/dist/index.js
CHANGED
|
@@ -8520,13 +8520,15 @@ var ShadowMindRuntime = class {
|
|
|
8520
8520
|
this.updateStatus(ctx);
|
|
8521
8521
|
}
|
|
8522
8522
|
});
|
|
8523
|
-
|
|
8524
|
-
|
|
8525
|
-
|
|
8526
|
-
|
|
8527
|
-
|
|
8528
|
-
|
|
8529
|
-
|
|
8523
|
+
for (const shortcut of ["f6", "alt+s"]) {
|
|
8524
|
+
this.pi.registerShortcut(shortcut, {
|
|
8525
|
+
description: "Pause or resume Shadow Mind",
|
|
8526
|
+
handler: (ctx) => {
|
|
8527
|
+
this.latestContext = ctx;
|
|
8528
|
+
this.setPaused(!this.paused, ctx);
|
|
8529
|
+
}
|
|
8530
|
+
});
|
|
8531
|
+
}
|
|
8530
8532
|
this.pi.registerMessageRenderer(
|
|
8531
8533
|
"shadow-report",
|
|
8532
8534
|
(message, _options, theme) => {
|