@lmzhen/dsh-evolution-all 0.3.52 → 0.3.54

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 CHANGED
@@ -1,39 +1,39 @@
1
1
  # dsh-evolution-all
2
2
 
3
- One-command aggregate entry for the `@lmzhen/dsh-evolution` plugin family.
3
+ **DEFAULT install** — full-functionality evolution bundle for the
4
+ `@lmzhen/dsh-evolution` plugin family.
4
5
 
5
6
  ```bash
6
- dsh plugin --profile web add @lmzhen/dsh-evolution-all
7
+ dsh plugin --profile web add @lmzhen/dsh-evolution-all@<ver>
7
8
  ```
8
9
 
9
- Installs the complete family through one package:
10
+ Installing this bundle mounts everything at **profile-root** level in one step:
10
11
 
11
- - `dsh-evolution-host` — infrastructure and control plane (review, curator,
12
- approval, audit, observability, threat checks; its bundle patch carries the
13
- profile composition rows).
14
- - `dsh-tool-memory` / `dsh-tool-skill-manage` / `dsh-evolution-skill-catalog` —
15
- the model-facing tool packages (mounted by the Evolution agent preset).
12
+ - **Host automation** — review, curator, approval, threat checks, memory/skill
13
+ storage, observability (its `cordis.patch.yml` carries the infra rows).
14
+ - **Model tools** — `memory`, `skill_manage`, `session_search` and the skill
15
+ catalog, plus the SKILLS/MEMORY guidance injection, active in **every
16
+ session**. No agent preset step, no session choice.
16
17
 
17
- The package is deliberately passive: no composition rows of its own.
18
+ ## Package selection = the shrink path
18
19
 
19
- ## V10-08 (H-08): what `plugin add` does and does not do
20
+ | Bundle | Row set | Notes |
21
+ |---|---|---|
22
+ | `@lmzhen/dsh-evolution-all` | infra + 4 model tools | **DEFAULT** — most complete first |
23
+ | `@lmzhen/dsh-evolution-host` | infra only | Same automation, no model tools (a profile can run evolution without exposing `memory`/`skill_manage`) |
24
+ | `@lmzhen/dsh-evolution-preset` | ≡ all row set | one-click **compatibility** form, kept for legacy |
20
25
 
21
- Installing this package mounts **only the host bundle**. The model-facing tool
22
- rows (`memory`, `skill_manage`, the skill catalog) live in the Evolution agent
23
- preset delta — and **no mechanism registers that preset for you**. Until you
24
- make one of the two moves below, sessions see the host control plane only: no
25
- memory tool, no skill write tool, no skill catalog.
26
+ **These are ALTERNATIVE install targets.** Mounting two of them (e.g. `all` +
27
+ `host`) fails loud at startup (`invariants: already registered`) — install
28
+ exactly one. Removing the model tools = uninstall `all`, install `host`.
26
29
 
27
- After installing, do one of:
30
+ ## Advanced: per-session tools (layered)
28
31
 
29
- 1. **Layered install (recommended)** — run
30
- `install-layered --mode agent`
31
- to generate the Evolution agent preset from the runtime `standard`
32
- composition, then select it in the session switcher.
33
- 2. **Manual preset** — run `/evolution preset install` in a session to compose
34
- the runtime standard + delta into `~/.dsh/.agent-presets/evolution`, restart
35
- the session switcher, and select the **Evolution** preset for the sessions
36
- that should expose the self-evolution tools.
32
+ If you want model tools only in *selected* sessions, use the layered path
33
+ instead of `all`: install `@lmzhen/dsh-evolution-host`, then
34
+ `/evolution preset install` (or `install-layered --mode agent`) to generate
35
+ the Evolution agent preset, and pick it per session. **`all` and the layered
36
+ preset are also exclusive** — mounting both double-mounts the model rows.
37
37
 
38
- For fine-grained installs (host only, or host + selected tools), install the
39
- packages individually — see the family [README](../README.md).
38
+ For fine-grained control (e.g. a custom profile overlay), see the family
39
+ [README](../README.md).
@@ -0,0 +1,141 @@
1
+ # Full-functionality evolution bundle (DEFAULT install target).
2
+ #
3
+ # This layer = evolution-host's entire infrastructure plane ∪ the four
4
+ # model-facing tool rows (tool-memory / tool-skill-manage / tool-session-query
5
+ # / evolution-skill-catalog), all mounted at PROFILE-ROOT level: installing
6
+ # @lmzhen/dsh-evolution-all is the default "most complete first" path — every
7
+ # session gets the automation AND the memory/skill tools AND the
8
+ # SKILLS/MEMORY guidance injection, with no agent-preset step.
9
+ #
10
+ # THREE-WAY DRIFT GUARD (bundle-mutual-exclusion.spec):
11
+ # - every infra row block below must stay byte-identical to
12
+ # evolution-host/cordis.patch.yml (same id/name/config/disabled);
13
+ # - the four model rows must stay byte-identical to
14
+ # evolution-preset/cordis.patch.yml's model rows;
15
+ # - the row names must all resolve inside this package's dependency closure.
16
+ # MUTUAL EXCLUSION: all / host / one-click preset are ALTERNATIVE install
17
+ # targets — mounting two of them triple-mounts the infra rows and fails loud
18
+ # at startup (invariants: already registered). `all` is likewise exclusive
19
+ # with the layered Evolution agent preset (the preset scope's model rows would
20
+ # double-mount the tools). Single install only.
21
+ - insert:
22
+ # ── control plane ───────────────────────────────────────────────────────
23
+ - id: evolution-policy
24
+ name: '@lmzhen/dsh-evolution-policy'
25
+
26
+ # ── IO seam: one registry, one node:fs provider ─────────────────────────
27
+ - id: evolution-io
28
+ name: '@lmzhen/dsh-evolution-io'
29
+ - id: evolution-io-node
30
+ name: '@lmzhen/dsh-evolution-io-node'
31
+
32
+ # ── durable state: storage-domain KV first, portable JSON fallback ──────
33
+ - id: evolution-state-storage
34
+ name: '@lmzhen/dsh-evolution-state-storage'
35
+ - id: evolution-state-domain
36
+ name: '@lmzhen/dsh-evolution-state-domain'
37
+ # The storage-domain provider is opt-in. It is disabled by default so a
38
+ # profile without the host storage-domain facility boots deterministically
39
+ # and evolution-state-json remains the active portable backend. Enable it
40
+ # explicitly in a profile overlay only when storage-domain is mounted.
41
+ disabled: true
42
+ - id: evolution-state-json
43
+ name: '@lmzhen/dsh-evolution-state-json'
44
+ - id: evolution-state
45
+ name: '@lmzhen/dsh-evolution-state'
46
+
47
+ # ── memory seam: registry, provider, model-facing tool ───────────────────
48
+ - id: memory
49
+ name: '@lmzhen/dsh-memory'
50
+ - id: memory-files
51
+ name: '@lmzhen/dsh-memory-files'
52
+ - id: tool-memory
53
+ name: '@lmzhen/dsh-tool-memory'
54
+
55
+ # ── skills: usage telemetry, model-facing management tools ───────────────
56
+ - id: skill-usage
57
+ name: '@lmzhen/dsh-skill-usage'
58
+ - id: tool-skill-manage
59
+ name: '@lmzhen/dsh-tool-skill-manage'
60
+ - id: tool-session-query
61
+ name: '@deepseek-ai/dsh-tool-session-query'
62
+ - id: evolution-skill-catalog
63
+ name: '@lmzhen/dsh-evolution-skill-catalog'
64
+
65
+ # ── write admission: staged approval (off by default) + threat guard ────
66
+ - id: evolution-approval
67
+ name: '@lmzhen/dsh-evolution-approval'
68
+ config:
69
+ enabled: false
70
+ stageForeground: true
71
+ # D-9 (rc.51): `evolution-capability` is no longer part of the host bundle
72
+ # — staged, non-executing Creator-mode adapter with no live consumer; keep
73
+ # the host mount minimal and let deployments opt in by adding the row.
74
+ - id: evolution-threat
75
+ name: '@lmzhen/dsh-evolution-threat'
76
+
77
+ # ── review / curator / observability / human controls ───────────────────
78
+ - id: evolution-review
79
+ name: '@lmzhen/dsh-evolution-review'
80
+ config:
81
+ # The DSH tool catalog exposes the plain `skill` tool only — the
82
+ # `skill_search`/`skill_load` discovery pair does not exist here, so
83
+ # listing it would be dead configuration. Allow `skill` so review
84
+ # subagents can load skills under the Anchored Standard preset family.
85
+ reviewToolAllow: [skill]
86
+ - id: evolution-curator
87
+ name: '@lmzhen/dsh-evolution-curator'
88
+ - id: evolution-commands
89
+ name: '@lmzhen/dsh-evolution-commands'
90
+ - id: evolution-maintenance-tools
91
+ name: '@lmzhen/dsh-evolution-maintenance/tools'
92
+ - id: evolution-activity
93
+ name: '@lmzhen/dsh-evolution-activity'
94
+ - id: evolution-feedback
95
+ name: '@lmzhen/dsh-evolution-feedback'
96
+ - id: evolution-learning-graph
97
+ name: '@lmzhen/dsh-evolution-learning-graph'
98
+ - id: evolution-replay
99
+ name: '@lmzhen/dsh-evolution-replay'
100
+
101
+ # ── cross-session recall: enable the native session-query index ─────────────
102
+ # `tool-session-query` (above) exposes `session_search`; this overlay
103
+ # enables the backing SQLite full-text index so that search actually works.
104
+ # It is a configuration OVERRIDE of the base `session-query-sqlite` row (never
105
+ # an insert — base already provides it), so it must sit OUTSIDE the `- insert:`
106
+ # block above. Both fields are parameterized via environment variables (dsh
107
+ # `!!js` runtime evaluation), and any profile cordis.patch.yml overlay may still
108
+ # override them later. `openAt` defaults to `startup` so the index is ready for
109
+ # cross-session recall; set `DSH_EVOLUTION_SESSION_QUERY=never` to disable, or
110
+ # `first-search` to build it lazily. A durable `path` (not `:memory:`) lets the
111
+ # index survive restarts. Note: `config` values replace the base entry's config
112
+ # wholesale, so both path and openAt are set here.
113
+ - id: session-query-sqlite
114
+ config:
115
+ # P2-12 (V10-15): `??` only catches null/undefined, so a set-but-EMPTY
116
+ # variable kept the empty string and `resolve('')` dropped the SQLite
117
+ # index into the process CWD. The three-part form trims the value first;
118
+ # only a non-empty path overrides the durable default.
119
+ path: !!js (process.env.DSH_EVOLUTION_SESSION_QUERY_PATH || '').trim() || dshHomePath('evolution', 'session-query.db')
120
+ # P2-13 (V10-15): whitelist normalization — an arbitrary invalid value used
121
+ # to reach the platform z.union schema and blow up the whole profile at
122
+ # startup with an error far from the root cause. Unknown/empty values fall
123
+ # back to 'startup'. (Quoted scalar: the ternary's `: ` would otherwise
124
+ # break YAML plain-scalar parsing — see the upstream `!!js "..."` forms.)
125
+ openAt: !!js "['startup', 'first-search', 'never'].includes(process.env.DSH_EVOLUTION_SESSION_QUERY) ? process.env.DSH_EVOLUTION_SESSION_QUERY : 'startup'"
126
+
127
+ # ── Hermes 60-char catalog rule: platform interface, deployment default ──────
128
+ # Upstream tool-skill exposes `catalogDescriptionMaxLength` (the 500 constant is
129
+ # only the schema default); the Hermes authoring standard is 60 and the index
130
+ # truncates at the configured value.
131
+ # REACH (P1-2 / V10-14, corrected): this override is a PROFILE-ROOT row, so it
132
+ # covers sessions mounted WITHOUT an agent preset only. Sessions running under
133
+ # an agent preset read the preset scope's own `tool-skill` row, which no
134
+ # profile patch can touch — for those, the preset composer injects the same cap
135
+ # at generation time (V10-14 → 0.3.53), and the one-click preset patch carries
136
+ # the identical root-level override.
137
+ # Base `tool-skill` row carries no other config today, so the whole-config
138
+ # replacement is safe; if upstream adds fields there, copy them.
139
+ - id: tool-skill
140
+ config:
141
+ catalogDescriptionMaxLength: 60
@@ -1,24 +1,29 @@
1
1
  /**
2
- * @lmzhen/dsh-evolution-all — aggregate entry package.
2
+ * @lmzhen/dsh-evolution-all — full-functionality evolution bundle
3
+ * (DEFAULT install target, 0.3.54).
3
4
  *
4
- * Deliberately passive: no composition rows of its own. Its substance is the
5
- * dependency closure — `evolution-host` (infrastructure + control plane), the
6
- * three model-tool packages (`tool-memory`, `tool-skill-manage`,
7
- * `evolution-skill-catalog`) and `evolution-agent-preset` (the delta preset
8
- * composition the installed preset is generated from; V6-52, 0.3.37) — so
9
- * `dsh plugin add @lmzhen/dsh-evolution-all` installs every family PACKAGE in
10
- * one command.
5
+ * This package carries its own `dsh.bundle.patch` (`cordis.patch.yml`) whose
6
+ * row set is the evolution-host infrastructure plane ∪ the four model-facing
7
+ * tool rows (`tool-memory`, `tool-skill-manage`, `tool-session-query`,
8
+ * `evolution-skill-catalog`), all mounted at PROFILE-ROOT level:
9
+ * `dsh plugin add @lmzhen/dsh-evolution-all` is the "most complete first"
10
+ * install — every session gets the background automation AND the memory /
11
+ * skill tools AND the SKILLS/MEMORY guidance injection, with no agent-preset
12
+ * step and no session choice.
11
13
  *
12
- * H-08: "all packages installed" is NOT "model tools live in
13
- * sessions". Only the host bundle's rows mount automatically; the model-facing
14
- * tool rows are carried by the Evolution agent preset, and NOTHING registers
15
- * that preset for you. After installing this package you must do one of:
16
- * • run the layered installer (`install-layered --mode agent`) to generate
17
- * the Evolution agent preset from the runtime standard, or
18
- * • produce/select the Evolution preset manually (e.g. `/evolution preset
19
- * install`, then pick it in the session switcher).
20
- * Until then sessions see only the host bundle — no `memory`, no `skill_manage`,
21
- * no skill catalog. This module carries no runtime API.
14
+ * Package-selection is the shrink path: `@lmzhen/dsh-evolution-host` keeps the
15
+ * same infra rows minus model tools (a profile can still run automation
16
+ * without exposing `memory`/`skill_manage` to every session).
17
+ *
18
+ * 0.3.54 contract changes over the passive-aggregate era (H-08):
19
+ * • all is now a BUNDLE (row set), not a dependency-only aggregate — the old
20
+ * "one command installs packages but mounts only infra" behavior is gone;
21
+ * • all / host / one-click preset are ALTERNATIVE install targets (mounting
22
+ * two fails loud at startup: invariants "already registered");
23
+ * • all is ALSO exclusive with the layered Evolution agent preset (the
24
+ * preset scope's model rows would double-mount the tools); use layered =
25
+ * host + `/evolution preset install` if per-session tool choice is wanted.
26
+ * This module carries no runtime API beyond the invariant.
22
27
  * @module @lmzhen/dsh-evolution-all
23
28
  */
24
29
  export {};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@lmzhen/dsh-evolution-all",
3
- "description": "One-command aggregate entry for the dsh-evolution plugin family (host + model tools) (community build)",
4
- "version": "0.3.52",
3
+ "description": "Full-functionality evolution bundle — DEFAULT install: host automation + model tools, all profile-root (community build)",
4
+ "version": "0.3.54",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -13,6 +13,11 @@
13
13
  "type": "module",
14
14
  "main": "lib/index.js",
15
15
  "types": "lib/types/index.d.ts",
16
+ "dsh": {
17
+ "bundle": {
18
+ "patch": "./cordis.patch.yml"
19
+ }
20
+ },
16
21
  "exports": {
17
22
  ".": {
18
23
  "types": "./lib/types/index.d.ts",
@@ -26,15 +31,17 @@
26
31
  },
27
32
  "files": [
28
33
  "lib/*.js",
29
- "lib/types/**/*.d.ts"
34
+ "lib/types/**/*.d.ts",
35
+ "cordis.patch.yml"
30
36
  ],
31
37
  "license": "MIT",
32
38
  "dependencies": {
33
- "@lmzhen/dsh-evolution-host": "^0.3.52",
34
- "@lmzhen/dsh-tool-memory": "^0.3.52",
35
- "@lmzhen/dsh-tool-skill-manage": "^0.3.52",
36
- "@lmzhen/dsh-evolution-skill-catalog": "^0.3.52",
37
- "@lmzhen/dsh-evolution-agent-preset": "^0.3.52"
39
+ "@deepseek-ai/dsh-tool-session-query": "^0.1.1-rc.2",
40
+ "@lmzhen/dsh-evolution-host": "^0.3.54",
41
+ "@lmzhen/dsh-tool-memory": "^0.3.54",
42
+ "@lmzhen/dsh-tool-skill-manage": "^0.3.54",
43
+ "@lmzhen/dsh-evolution-skill-catalog": "^0.3.54",
44
+ "@lmzhen/dsh-evolution-agent-preset": "^0.3.54"
38
45
  },
39
46
  "peerDependencies": {
40
47
  "@deepseek-ai/cordis": "^4.0.1",