dsh-plugin-prompt-tool 3.0.2 → 3.1.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 (48) hide show
  1. package/README.md +17 -1
  2. package/engine/actions/index.mjs +5 -3
  3. package/engine/actions/tool-visibility.mjs +4 -1
  4. package/engine/compositions/source/local/context-provenance.yml +9 -0
  5. package/engine/compositions/source/local/generation-recovery.yml +10 -0
  6. package/engine/compositions/source/local/retrieval.yml +7 -0
  7. package/engine/compositions/source/local/soul-ledger.yml +3 -0
  8. package/engine/compositions/source/local/soul-maintenance.yml +9 -0
  9. package/engine/conditions/examples.mjs +1 -0
  10. package/engine/conditions/index.mjs +7 -0
  11. package/engine/conditions/manifest.mjs +28 -0
  12. package/engine/context-idle-compaction.mjs +58 -0
  13. package/engine/context-provenance.d.mts +7 -0
  14. package/engine/context-provenance.mjs +156 -0
  15. package/engine/context-pruner.mjs +64 -0
  16. package/engine/context-routing.mjs +45 -0
  17. package/engine/context-summary.mjs +80 -0
  18. package/engine/fillers.mjs +11 -2
  19. package/engine/generation-recovery-coordinator.mjs +40 -0
  20. package/engine/generation-recovery-maintenance.mjs +18 -0
  21. package/engine/generation-recovery.mjs +153 -0
  22. package/engine/host-package.mjs +13 -0
  23. package/engine/layers.d.mts +4 -0
  24. package/engine/layers.mjs +57 -20
  25. package/engine/present-as.mjs +2 -2
  26. package/engine/retrieval-reference.d.mts +5 -0
  27. package/engine/retrieval-reference.mjs +26 -0
  28. package/engine/retrieval.mjs +17 -0
  29. package/engine/rule-engine.mjs +1 -0
  30. package/engine/rule-runtime.d.mts +8 -1
  31. package/engine/rule-runtime.mjs +18 -10
  32. package/engine/rule-spec.mjs +4 -2
  33. package/engine/schema.mjs +1 -1
  34. package/engine/service-names.d.mts +5 -0
  35. package/engine/service-names.mjs +5 -0
  36. package/engine/soul-ledger.mjs +8 -0
  37. package/engine/soul-maintenance.mjs +20 -0
  38. package/lib/client.js +12 -2
  39. package/lib/client.js.map +1 -1
  40. package/lib/index.mjs +1868 -208
  41. package/modules/soul/assets/ledger.md +4 -2
  42. package/modules/soul/assets/manifest.yml +2 -0
  43. package/modules/soul/assets/templates/agents-template.md +3 -0
  44. package/modules/soul/assets/templates/self-template.md +19 -0
  45. package/modules/soul/module.yml +71 -13
  46. package/modules/tool-surface/module.yml +1 -1
  47. package/package.json +1 -1
  48. package/templates/80-tool-surface.yml +1 -1
@@ -1,9 +1,11 @@
1
1
  # 账本:只追加
2
2
 
3
- 打开只能往后加:**不改、不删、不重排**。多写者环境里共享可变文件是万恶之源;只追加不需要锁。
3
+ 打开只能往后加:**不改、不删、不重排**。写入用 `soul_ledger`(moduleId: soul,action: append);宿主在模块锁内核对身份与主导资格,再追加一行。
4
4
 
5
5
  **八种 type**:fact(发生什么)、gain(得到什么)、loss(失去/发现缺什么)、shelved(搁置的活,未结清单的唯一真相)、promise(对用户的承诺,只有主导能写)、persona(对自己的修正)、container(会话退场交接)、lead(主导权,最后一条 lead 的署名者)。
6
6
 
7
- **六个字段**:t(现在)、by(谁写的)、type、text(一句话索引,不写长文)、ref(出处,强烈建议)、feel(当时的感受,条件)。
7
+ **六个字段**:t(现在)、by(谁写的)、type、概要(一句话索引,不写长文;兼容旧 text)、ref(出处,强烈建议)、feel(当时的感受,条件)。t、by 由真实执行会话生成,不可通过参数代写;概要与 text 二选一。
8
+
9
+ `lead` 必须附用户指定主导的 ref,并经正式审批。`promise` 仅最后 lead 署名的会话可写;通用 `module_file_append` 不允许写新旧账本名。读取用 action: list,检索与原文回取用 `module_search`/`module_open`;默认不读取其他历史会话。
8
10
 
9
11
  没有 ref 的 fact,三个月后读到只能选择相信或不信——两条都不对。
@@ -14,6 +14,8 @@ dirs:
14
14
  files:
15
15
  - from: assets/templates/agents-template.md
16
16
  to: data/AGENTS.md
17
+ - from: assets/templates/self-template.md
18
+ to: data/SELF.src.md
17
19
  checks:
18
20
  - path: data/02-soul.jsonl
19
21
  kind: jsonl
@@ -2,5 +2,8 @@
2
2
 
3
3
  - 用户数据只写本模块的 `data/`;`assets/` 只读。
4
4
  - 账本 `data/02-soul.jsonl` 只追加,不修改、不删除、不重排。
5
+ - 账本通过 `soul_ledger` 读写,真实作者与时间由宿主绑定;主导变更由用户指定并审批。
6
+ - `data/SELF.src.md` 是用户骨架;`data/.soul/SELF.md` 是可重建快照,实际会话身份在每步动态加入。
7
+ - 检索仅访问模块声明的书房来源和授权会话;维护默认不唤醒模型。
5
8
  - 未结事项先记账本,再在回复里收口;不要用「已记录」代替实际写入。
6
9
  - 本文件由模块清单装配生成,已存在时不覆盖;它不是工作区指令文件。
@@ -0,0 +1,19 @@
1
+ # SELF · 书房自我层
2
+
3
+ ## 我是谁
4
+
5
+ 我在用户授权的范围内协作,身份以当前运行会话为准。
6
+ 是否承担主导责任,以账本最后一条 lead 的真实署名为准;未经用户指定,不自称主导,不代写承诺。
7
+
8
+ ## 硬线
9
+
10
+ - 未经授权不扩展范围;涉及不可逆操作先说明具体结果,由用户决定。
11
+ - 凭据与私密内容不进入常驻上下文,不复述已发现的凭据。
12
+ - 账本只追加;原文优先,摘要和索引只是回取入口。
13
+ - 有证据再宣称完成;未知、缺失、失败和成功分别说明。
14
+
15
+ ## 门
16
+
17
+ - 事实、未结与承诺:soul_ledger;主导变更需要用户指定并审批。
18
+ - 寻找已授权资料:module_search;按返回 reference 用 module_open 核对原文。
19
+ - 用户可编辑本骨架;动态会话身份由运行时加入,维护快照不替用户编造身份。
@@ -1,11 +1,11 @@
1
1
  # 灵魂架构(推送层 + 判据 + 按需条目 + 状态规则)
2
- # 工具面由本项目通用能力提供:module_file_read/append 读写模块私有文件,module_manifest 执行 assets/manifest.yml,module_variables 读写状态;不提供 soul 专属工具。
2
+ # 工具面复用本项目能力:soul_ledger 写账本,module_search/open 回取,module_file_read/append 处理其它私有文件。
3
3
  # 正文放 assets/,用 templateFile 引用;运行源是本模块,soul 仓库是作者稿。
4
4
  id: soul
5
5
  name: 灵魂架构(判据与推送)
6
6
  version: 1.0.0
7
7
  engineCompat: ">=0.7.2"
8
- description: 灵魂架构模块(资产 + 规则):常驻四条判据与子代理硬线,按需注入五层/ECHO/VITAL/账本,压缩后与每 12 轮各提醒一次;工具由项目内置引擎提供,本模块分发规则、资产与装配清单。原项目:https://github.com/cyanwell/dsh-agent-soul
8
+ description: 灵魂架构完整核心:判据、结构化账本、授权检索、动态 SELF、上下文溯源、生成恢复与默认不唤醒的维护心跳;能力按 Agent 运行时装配,不依赖预设改装。原项目:https://github.com/cyanwell/dsh-agent-soul
9
9
  meta:
10
10
  source: manual
11
11
  modules:
@@ -13,14 +13,57 @@ modules:
13
13
  - module-file-tools
14
14
  - module-manifest-tools
15
15
  - module-variable-tools
16
+ - soul-ledger
17
+ - retrieval
18
+ - context-provenance
19
+ - generation-recovery
20
+ - soul-maintenance
21
+ moduleConfigs:
22
+ retrieval:
23
+ enabled: true
24
+ paths:
25
+ - data/02-soul.jsonl
26
+ - data/SELF.src.md
27
+ - data/AGENTS.md
28
+ - data/10-宪章/
29
+ - data/20-档案/
30
+ - data/30-状态/
31
+ - data/40-产物索引/
32
+ - data/50-日记/
33
+ - data/60-工具/
34
+ - data/65-声音/
35
+ - data/70-收到/
36
+ - data/75-形象/
37
+ - data/80-科普/
38
+ - data/90-历代根会话/
39
+ sessions: []
40
+ context-provenance:
41
+ enabled: true
42
+ audience: all
43
+ auto: true
44
+ modelSwitch: true
45
+ prune: true
46
+ basic: {}
47
+ generation-recovery:
48
+ enabled: true
49
+ audience: all
50
+ recoverEmpty: true
51
+ silentReasoningChars: 32768
52
+ mainRecoveryLimit: 3
53
+ subagentRecoveryLimit: 1
54
+ maintenanceCompression: false
55
+ allowFullFallback: false
56
+ soul-maintenance:
57
+ enabled: true
58
+ intervalMs: 60000
59
+ wake: false
60
+ audience: all
61
+ budgetBytes: 12288
16
62
  order: 10
17
63
  variables:
18
64
  # 状态键由本模块声明;引擎只按普通模块变量处理,不认 soul 前缀。
19
65
  plan_step: ''
20
66
  plan_at: ''
21
- check_verdict: ''
22
- check_at: ''
23
- check_failed: '0'
24
67
  scaffold_done: ''
25
68
  scaffold_root: data
26
69
  ledger_seq: '0'
@@ -45,6 +88,21 @@ rules:
45
88
  contextName: agent:soul-core
46
89
  templateFile: ./assets/criteria.md
47
90
 
91
+ - id: soul-self
92
+ name: SELF(每步动态身份)
93
+ enabled: true
94
+ layer: runtime-context
95
+ then:
96
+ - id: inject
97
+ kind: inject-text
98
+ config:
99
+ strategy: placeholder
100
+ fill: soul-self
101
+ layer: runtime-context
102
+ order: 133
103
+ params:
104
+ contextName: agent:soul-self
105
+
48
106
  - id: soul-core-sub
49
107
  name: 子代理硬线
50
108
  enabled: true
@@ -268,10 +326,8 @@ rules:
268
326
  enabled: true
269
327
  layer: system-section
270
328
  if:
271
- variable:
272
- key: check_failed
273
- op: gt
274
- value: '0'
329
+ manifest:
330
+ ok: false
275
331
  then:
276
332
  - id: inject
277
333
  kind: inject-text
@@ -281,10 +337,10 @@ rules:
281
337
  strategy: static
282
338
  order: 247
283
339
  text: |-
284
- 上一轮自检有失败项:先 module_manifest(moduleId: soul)action=check 重新核对,
285
- 把结论写进 check_verdict(ok/fail)、check_at(时间)与 check_failed(失败数),
340
+ 清单检查当前有未通过项(由引擎按装配事实求值,不需要手写变量):
341
+ 先 module_manifest(moduleId: soul)action=check 看全部明细,
286
342
  再说清是哪一条、证据是什么、下一步改哪个文件或哪条规则;
287
- 不要用「已修复」代替重新检查,也不要把失败项藏进总结。
343
+ 修完要重新 check,不要用「已修复」代替重新检查,也不要把失败项藏进总结。
288
344
 
289
345
  - id: soul-ledger-open
290
346
  name: 未结账本提醒
@@ -307,5 +363,7 @@ rules:
307
363
  role: user
308
364
  text: |-
309
365
  账本还有未结事项:回复里逐条收口,或说清为什么先放着。
310
- 需要追加时用 module_file_append(moduleId: soul,path: data/02-soul.jsonl,entry: {...}),
366
+ 先用 soul_ledger(moduleId: soul,action: list)核对原始未结记录;
367
+ 需要追加时用 soul_ledger(moduleId: soul,action: append,type: fact/shelved/promise,概要: 一句话,ref: 出处),
368
+ 作者和时间由宿主提供,promise 只允许最后 lead 署名的主导会话;lead 需用户指定并经审批。
311
369
  只往后加,不改旧行;收口后把 ledger_open 减到 0。
@@ -69,6 +69,6 @@ rules:
69
69
  fill: tool-catalog
70
70
  position: after-all
71
71
  dedupe: session
72
- text: 常驻工具:{{RESIDENT_TOOLS}}。缺少所需工具时,先用 {{DISCOVERY_TOOL}} 搜索并解锁。
72
+ text: 常驻工具:{{RESIDENT_TOOLS}}。缺少所需工具时,先用 {{DISCOVERY_TOOL}} 搜索;要用某个工具,先以 {"toolNames":["<工具名>"]} 解锁——解锁从下一次请求起生效,之后才可调用。
73
73
  params:
74
74
  action: narrow-tools
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-plugin-prompt-tool",
3
- "version": "3.0.2",
3
+ "version": "3.1.0",
4
4
  "description": "DSH 插件:提示词工具,规范模型的思维链与回答内容,提供 Web UI 编辑 module.yml 与 AGENTS.md,并按 skills 目录注册可开关技能。",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -46,6 +46,6 @@ then:
46
46
  fill: tool-catalog
47
47
  position: after-all
48
48
  dedupe: session
49
- text: 常驻工具:{{RESIDENT_TOOLS}}。缺少所需工具时,先用 {{DISCOVERY_TOOL}} 搜索并解锁。
49
+ text: 常驻工具:{{RESIDENT_TOOLS}}。缺少所需工具时,先用 {{DISCOVERY_TOOL}} 搜索;要用某个工具,先以 {"toolNames":["<工具名>"]} 解锁——解锁从下一次请求起生效,之后才可调用。
50
50
  params:
51
51
  action: narrow-tools