dsh-plugin-prompt-tool 3.0.1 → 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.
- package/README.md +17 -1
- package/engine/actions/catalog.mjs +2 -1
- package/engine/actions/index.mjs +5 -3
- package/engine/actions/shared.mjs +26 -12
- package/engine/actions/tool-visibility.mjs +31 -14
- package/engine/compositions/source/local/context-provenance.yml +9 -0
- package/engine/compositions/source/local/generation-recovery.yml +10 -0
- package/engine/compositions/source/local/retrieval.yml +7 -0
- package/engine/compositions/source/local/soul-ledger.yml +3 -0
- package/engine/compositions/source/local/soul-maintenance.yml +9 -0
- package/engine/conditions/examples.mjs +1 -0
- package/engine/conditions/index.mjs +7 -0
- package/engine/conditions/manifest.mjs +28 -0
- package/engine/context-idle-compaction.mjs +58 -0
- package/engine/context-provenance.d.mts +7 -0
- package/engine/context-provenance.mjs +156 -0
- package/engine/context-pruner.mjs +64 -0
- package/engine/context-routing.mjs +45 -0
- package/engine/context-summary.mjs +80 -0
- package/engine/fillers.mjs +37 -4
- package/engine/generation-recovery-coordinator.mjs +40 -0
- package/engine/generation-recovery-maintenance.mjs +18 -0
- package/engine/generation-recovery.mjs +153 -0
- package/engine/host-package.mjs +13 -0
- package/engine/layers.d.mts +4 -0
- package/engine/layers.mjs +57 -20
- package/engine/present-as.mjs +2 -2
- package/engine/retrieval-reference.d.mts +5 -0
- package/engine/retrieval-reference.mjs +26 -0
- package/engine/retrieval.mjs +17 -0
- package/engine/rule-engine.mjs +1 -0
- package/engine/rule-runtime.d.mts +8 -1
- package/engine/rule-runtime.mjs +18 -10
- package/engine/rule-spec.mjs +4 -2
- package/engine/schema.mjs +1 -1
- package/engine/service-names.d.mts +5 -0
- package/engine/service-names.mjs +5 -0
- package/engine/soul-ledger.mjs +8 -0
- package/engine/soul-maintenance.mjs +20 -0
- package/lib/client.js +16 -6
- package/lib/client.js.map +1 -1
- package/lib/index.mjs +1953 -246
- package/modules/soul/assets/ledger.md +4 -2
- package/modules/soul/assets/manifest.yml +2 -0
- package/modules/soul/assets/reference/00-layers.md +27 -27
- package/modules/soul/assets/reference/02-echo.md +161 -161
- package/modules/soul/assets/reference/05-doctor.md +67 -67
- package/modules/soul/assets/reference/10-echo-anatomy.md +109 -109
- package/modules/soul/assets/reference/ECHO-/346/235/203/345/250/201/345/217/243/345/276/204.md +202 -202
- package/modules/soul/assets/reference/ECHO/345/205/255/345/261/202/344/270/216mnemon/345/215/217/345/220/214/350/257/264/346/230/216/344/271/246.md +229 -229
- package/modules/soul/assets/templates/agents-template.md +3 -0
- package/modules/soul/assets/templates/self-template.md +19 -0
- package/modules/soul/module.yml +71 -13
- package/modules/tool-surface/module.yml +8 -5
- package/package.json +1 -1
- package/skills/dsh-module/reference.md +2 -2
- package/templates/80-tool-surface.yml +8 -7
|
@@ -7,12 +7,15 @@
|
|
|
7
7
|
# 常驻集只在这里写一次;首轮提示由普通注入动作组合。
|
|
8
8
|
#
|
|
9
9
|
# 解锁的生效时机:声明在每个 model step 前重算,解锁在下一步的模型请求里已经可见。
|
|
10
|
-
# `requireMatch: true`
|
|
11
|
-
#
|
|
10
|
+
# `requireMatch: true` 是刻意的,但判据是「名单与装配面整体错位」:常驻名单里的名字
|
|
11
|
+
# **一个都不在**当前装配面时才放弃裁剪、暴露完整目录;只缺一两个(提供方被替换或关闭)
|
|
12
|
+
# 仍照常收窄,缺项只留一条诊断。解锁名不参与这个判定。
|
|
12
13
|
#
|
|
13
14
|
# 工具名必须与**实际装配名**一致:本项目 harness 是 `pwsh`、`edit` + `write`;
|
|
14
15
|
# `bash` 由平台各自提供——Windows 是本模块声明的 `tool-git-bash` 行(Git Bash,`bash -c`),
|
|
15
|
-
# POSIX 是官方持久 bash
|
|
16
|
+
# POSIX 是官方持久 bash。替换提供方(如 dsh-ops 的 `ops_bash`)属于部署事实,不写进随包名单:
|
|
17
|
+
# 加在部署层模块副本(`$DSH_HOME/.prompt-tool/modules/tool-surface/module.yml`)的 allow 即可;
|
|
18
|
+
# 没装该插件的部署里这个名字不存在,不产生任何影响。
|
|
16
19
|
#
|
|
17
20
|
# 停用即回滚:本模块在 config.yml 的 enabled 里删掉即可,重启后工具面完全恢复。
|
|
18
21
|
|
|
@@ -49,7 +52,7 @@ rules:
|
|
|
49
52
|
- skill_search
|
|
50
53
|
- skill_load
|
|
51
54
|
- tool_search
|
|
52
|
-
# 平台各自的 bash
|
|
55
|
+
# 平台各自的 bash 名;替换提供方(如 ops_bash)由部署层名单登记,随包名单只写官方名。
|
|
53
56
|
- bash
|
|
54
57
|
discovery: { kind: tools }
|
|
55
58
|
requireMatch: true
|
|
@@ -66,6 +69,6 @@ rules:
|
|
|
66
69
|
fill: tool-catalog
|
|
67
70
|
position: after-all
|
|
68
71
|
dedupe: session
|
|
69
|
-
text: 常驻工具:{{RESIDENT_TOOLS}}。缺少所需工具时,先用 {{DISCOVERY_TOOL}}
|
|
72
|
+
text: 常驻工具:{{RESIDENT_TOOLS}}。缺少所需工具时,先用 {{DISCOVERY_TOOL}} 搜索;要用某个工具,先以 {"toolNames":["<工具名>"]} 解锁——解锁从下一次请求起生效,之后才可调用。
|
|
70
73
|
params:
|
|
71
74
|
action: narrow-tools
|
package/package.json
CHANGED
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
|---|---|---|---|
|
|
43
43
|
| `inject-text` | 由 config.layer 决定(**六层可注入**,agent-request/llm-stream/tool-pipeline 只作展示归属) | layer、strategy(static/placeholder/context-activation)、position、dedupe、mergeMode、role、order、text/texts、params、templateFile、configKind | 空正文不生成投递;变量赋值模板另按显式求值事务处理 |
|
|
44
44
|
| `assembly` | `system-prompt/assemble` 下游 | `target.sections`(`add`/`remove` **或** `keep`)、`target.contexts`(`add`/`remove` **或** `clear`,二者互斥——并存编译期拒绝);`target.tools` 已移除 | 返回未改动的装配 |
|
|
45
|
-
| `tool-visibility` | system-prompt/assemble 下游 | allow 与/或 deny(先保留再剔除)、requireMatch(仅 allow
|
|
45
|
+
| `tool-visibility` | system-prompt/assemble 下游 | allow 与/或 deny(先保留再剔除)、requireMatch(仅 allow;名单全缺才放宽)、discovery({ kind };tool/key 可选,只作断言);受众归 scope,提示归普通注入动作 | 呈现面失败保留原装配;执行闸失败留痕,不静默放行 |
|
|
46
46
|
| `tool-gate` | tools/pre-execute | decision(allow/deny/ask)、reason;工具名归 names 条件 | 一律放行——裁决 bug 不卡死调用 |
|
|
47
47
|
| `tool-result` | tools/post-execute | action(accept/replace/block)、text(仅 replace/block);工具名归 names 条件 | 一律接受——结果处理 bug 不把调用变成失败 |
|
|
48
48
|
| `append-context` | tools/post-execute | text;续跑用 inject-text 的 turn-stop 层 | 保持原结果 |
|
|
@@ -86,7 +86,7 @@ rules:
|
|
|
86
86
|
requireMatch: true
|
|
87
87
|
```
|
|
88
88
|
|
|
89
|
-
声明 discovery 的模块必须在 modules 里列出对应适配器行(tools → tool-search),缺行在装配准备期失败。discovery 在首次装配时按 agent 解析适配器,并从持久 tool/call 与 PTC tool/ptc-dispatch 参数回收解锁名(只做加法、跨压缩保留);工具由适配器行注册,discovery.tool/key 可选、只作断言。提示用同规则普通 inject-text 组合 count(user-message,max: 1)与 session 去重,采用 strategy: placeholder、fill: tool-catalog、params: { action: narrow }。只读 RESIDENT_TOOLS 是引用动作 allow 去 deny
|
|
89
|
+
声明 discovery 的模块必须在 modules 里列出对应适配器行(tools → tool-search),缺行在装配准备期失败。discovery 在首次装配时按 agent 解析适配器,并从持久 tool/call 与 PTC tool/ptc-dispatch 参数回收解锁名(只做加法、跨压缩保留);工具由适配器行注册,discovery.tool/key 可选、只作断言。提示用同规则普通 inject-text 组合 count(user-message,max: 1)与 session 去重,采用 strategy: placeholder、fill: tool-catalog、params: { action: narrow }。只读 RESIDENT_TOOLS 是引用动作 allow 去 deny、再按当前可见面过滤后的逗号名单(观测不到工具面时回落声明名单;观测到工具面但一个常驻名都不在时跳过提示),DISCOVERY_TOOL 是当前 Agent 的发现适配器工具名;模块 text 控制提示正文,保留自动名单而不复制声明。requireMatch 只在名单里的名字**一个都不存在**时放弃裁剪、暴露完整目录(fail-open);缺一两个提供方只是少一个常驻工具,收窄照常生效,替换提供方(如 dsh-ops 的 ops_bash)写进部署层名单。解锁名不参与放宽判定。allow 的执行面由 guard 兜底,不调用 restrict——restrict 的 allow 只收继承面名字,而全局 schemas 视图会漏预设/祖先层工具,局部 allow 反而会把它们裁掉;deny 才用 restrict + guard。PTC 下 tools 数组只有保留传输 `run_code`,实际可见面是 `tools:sdk` 正文;`run_code` 不写进 allow 也保留,且不参与 requireMatch,因此原生收窄声明可以直接与 PTC 共存。
|
|
90
90
|
|
|
91
91
|
tool-catalog 引用目标必须有 allow;仅支持普通只读插值,`templateEvaluation: true` 拒绝。未知动作引用保存前拒绝,发现适配器不可用则跳过提示并告警。
|
|
92
92
|
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
# `tool-visibility` 声明常驻集、目录与 SDK 正文的呈现、执行闸和发现来源。
|
|
4
4
|
# 首轮提示由同规则的普通注入动作组合;常驻名单只写一次。
|
|
5
5
|
#
|
|
6
|
-
# 本模板只带规则、不带 `modules`
|
|
7
|
-
# `requireMatch`
|
|
8
|
-
#
|
|
9
|
-
#
|
|
6
|
+
# 本模板只带规则、不带 `modules` 声明:用模板建模块时要自己把提供方行带进装配。
|
|
7
|
+
# `requireMatch` 只在名单**全部**缺失时放弃裁剪;缺一两个提供方只是少一个常驻工具,
|
|
8
|
+
# 收窄照常生效(提供方被替换或关闭不是声明错位)。替换提供方的名字写进 allow:
|
|
9
|
+
# 随包模板只写官方名,未安装替换插件的部署里该名字不存在,不产生任何影响。
|
|
10
10
|
#
|
|
11
11
|
# 发现适配器由 `tool-search` 行提供(模块必须列该行);解锁名从持久 `tool/call` 参数回收,
|
|
12
12
|
# 因此下一步请求即可见,压缩遮蔽后仍然保留。
|
|
@@ -27,10 +27,11 @@ then:
|
|
|
27
27
|
- skill_search
|
|
28
28
|
- skill_load
|
|
29
29
|
- tool_search
|
|
30
|
-
# 平台各自的 bash
|
|
30
|
+
# 平台各自的 bash 名;替换提供方(如 ops_bash)登记在部署层名单里。
|
|
31
31
|
- bash
|
|
32
32
|
discovery: { kind: tools }
|
|
33
|
-
#
|
|
33
|
+
# 名单里的名字一个都不存在时才放弃裁剪、暴露完整目录(fail-open);
|
|
34
|
+
# 部分缺失不触发放宽——提供方被替换或关闭是正常部署差异。
|
|
34
35
|
requireMatch: true
|
|
35
36
|
- if:
|
|
36
37
|
count:
|
|
@@ -45,6 +46,6 @@ then:
|
|
|
45
46
|
fill: tool-catalog
|
|
46
47
|
position: after-all
|
|
47
48
|
dedupe: session
|
|
48
|
-
text: 常驻工具:{{RESIDENT_TOOLS}}。缺少所需工具时,先用 {{DISCOVERY_TOOL}}
|
|
49
|
+
text: 常驻工具:{{RESIDENT_TOOLS}}。缺少所需工具时,先用 {{DISCOVERY_TOOL}} 搜索;要用某个工具,先以 {"toolNames":["<工具名>"]} 解锁——解锁从下一次请求起生效,之后才可调用。
|
|
49
50
|
params:
|
|
50
51
|
action: narrow-tools
|