@lmzhen/dsh-evolution-curator 0.3.57 → 0.3.59
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 +5 -1
- package/lib/index.js +3 -2
- package/lib/types/index.d.ts +5 -0
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -22,7 +22,11 @@ Independent of request-prefix construction. This package does not alter the asse
|
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
- LLM nomination pass is advisory and disabled by default; deterministic lifecycle remains authoritative.
|
|
25
|
-
- Consolidation is
|
|
25
|
+
- Consolidation is a REAL merger path: the LLM nomination (when enabled / via `recommend()`) proposes
|
|
26
|
+
merge groups, the control plane gates them and applies the mutation — merged source bodies are appended
|
|
27
|
+
verbatim rather than rewritten into a synthesized skill. The one-click `/evolution consolidate
|
|
28
|
+
<target> <source...>` remains the direct manual path (P2-8, v11: the earlier "no LLM pass proposes
|
|
29
|
+
merge groups" wording contradicted the tested nomination chain).
|
|
26
30
|
|
|
27
31
|
## Recovery and consolidation
|
|
28
32
|
|
package/lib/index.js
CHANGED
|
@@ -3,7 +3,7 @@ import { randomUUID } from "node:crypto";
|
|
|
3
3
|
import { join } from "node:path";
|
|
4
4
|
import { BlockAssembler, createUserMessage } from "@deepseek-ai/dsh-llm";
|
|
5
5
|
import z from "@deepseek-ai/schemastery";
|
|
6
|
-
import { CURATOR_DRY_RUN_BANNER, CURATOR_PROMPT, DEFAULT_ARCHIVE_AFTER_DAYS, DEFAULT_CURATOR_INTERVAL_HOURS, DEFAULT_HEALTH_THRESHOLDS, DEFAULT_MIN_IDLE_HOURS, DEFAULT_STALE_AFTER_DAYS, EvolutionGateSet, SKILL_NAME_RE, SkillLibrary, buildCuratorRunReport, clampedNumber, computeDedupGroups, computeLifecycleTransitions, computePrefixClusters, computeQualityScores, computeScopeView, emptyRecord, evolutionHome, evolutionIoAdapter, foldCuratorFields, loadSuppressedNames, loadUsage, markerEntryName, mutateUsage, parseCuratorNominations, parseFrontmatter, relatedSkillNames, renderCuratorReportMarkdown, updateSuppressedNames, usageObserved } from "@lmzhen/dsh-evolution-core";
|
|
6
|
+
import { CURATOR_DRY_RUN_BANNER, CURATOR_PROMPT, DEFAULT_ARCHIVE_AFTER_DAYS, DEFAULT_CURATOR_INTERVAL_HOURS, DEFAULT_HEALTH_THRESHOLDS, DEFAULT_MIN_IDLE_HOURS, DEFAULT_STALE_AFTER_DAYS, EvolutionGateSet, SKILL_NAME_RE, SkillLibrary, buildCuratorRunReport, clampedNumber, computeDedupGroups, computeLifecycleTransitions, computePrefixClusters, computeQualityScores, computeScopeView, emptyRecord, evolutionHome, evolutionIoAdapter, foldCuratorFields, loadSuppressedNames, loadUsage, markerEntryName, mutateUsage, parseCuratorNominations, parseFrontmatter, relatedSkillNames, renderCuratorReportMarkdown, resolveSkillsRoot, updateSuppressedNames, usageObserved } from "@lmzhen/dsh-evolution-core";
|
|
7
7
|
//#region lib/types/index.js
|
|
8
8
|
/**
|
|
9
9
|
* Deterministic skill lifecycle curator with interval gate and archive.
|
|
@@ -24,6 +24,7 @@ function gateConsolidations(consolidations, gates) {
|
|
|
24
24
|
var EvolutionCurator = class extends Service {
|
|
25
25
|
static inject = ["evolutionIo"];
|
|
26
26
|
static Config = z.object({
|
|
27
|
+
root: z.string().default(""),
|
|
27
28
|
enabled: z.boolean().default(true),
|
|
28
29
|
intervalHours: z.number().min(1).default(DEFAULT_CURATOR_INTERVAL_HOURS),
|
|
29
30
|
staleAfterDays: z.number().min(1).default(DEFAULT_STALE_AFTER_DAYS),
|
|
@@ -75,7 +76,7 @@ var EvolutionCurator = class extends Service {
|
|
|
75
76
|
constructor(ctx, config = {}) {
|
|
76
77
|
super(ctx, "evolutionCurator");
|
|
77
78
|
this.io = evolutionIoAdapter(() => ctx.evolutionIo.provider());
|
|
78
|
-
this.skills = new SkillLibrary(
|
|
79
|
+
this.skills = new SkillLibrary(resolveSkillsRoot({ root: config.root }), this.io, void 0, (event) => {
|
|
79
80
|
this.ctx.emit("evolution/skill-mutated", event);
|
|
80
81
|
});
|
|
81
82
|
this.enabled = config.enabled ?? true;
|
package/lib/types/index.d.ts
CHANGED
|
@@ -17,6 +17,11 @@ export interface Config {
|
|
|
17
17
|
intervalHours?: number;
|
|
18
18
|
staleAfterDays?: number;
|
|
19
19
|
archiveAfterDays?: number;
|
|
20
|
+
/** Skill-tree root for curator scope/snapshot/archive (D2, v11) — a custom
|
|
21
|
+
* root deployment (review/tool-skill-manage write another tree) must point
|
|
22
|
+
* the curator at the SAME tree or lifecycle decisions land on the default
|
|
23
|
+
* tree and never see the deployed skills. Empty uses skillsRoot(). */
|
|
24
|
+
root?: string;
|
|
20
25
|
/** Spend one LLM review pass on stale candidates before the deterministic archive step. */
|
|
21
26
|
llmReview?: boolean;
|
|
22
27
|
curatorProvider?: string;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lmzhen/dsh-evolution-curator",
|
|
3
3
|
"description": "Deterministic skill lifecycle and recovery (community build)",
|
|
4
|
-
"version": "0.3.
|
|
4
|
+
"version": "0.3.59",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -31,20 +31,20 @@
|
|
|
31
31
|
"license": "MIT",
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"@deepseek-ai/schemastery": "^3.18.1",
|
|
34
|
-
"@lmzhen/dsh-evolution-core": "^0.3.
|
|
34
|
+
"@lmzhen/dsh-evolution-core": "^0.3.59"
|
|
35
35
|
},
|
|
36
36
|
"peerDependencies": {
|
|
37
37
|
"@deepseek-ai/cordis": "^4.0.1",
|
|
38
38
|
"@deepseek-ai/dsh-invariants": "^0.1.1-rc.2",
|
|
39
39
|
"@deepseek-ai/dsh-llm": "^0.1.1-rc.2",
|
|
40
|
-
"@lmzhen/dsh-evolution-io": "^0.3.
|
|
41
|
-
"@lmzhen/dsh-evolution-state": "^0.3.
|
|
40
|
+
"@lmzhen/dsh-evolution-io": "^0.3.59",
|
|
41
|
+
"@lmzhen/dsh-evolution-state": "^0.3.59"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@deepseek-ai/dsh-invariants": "^0.1.1-rc.2",
|
|
45
45
|
"@deepseek-ai/dsh-llm": "^0.1.1-rc.2",
|
|
46
|
-
"@lmzhen/dsh-evolution-core": "^0.3.
|
|
47
|
-
"@lmzhen/dsh-evolution-io": "^0.3.
|
|
48
|
-
"@lmzhen/dsh-evolution-state": "^0.3.
|
|
46
|
+
"@lmzhen/dsh-evolution-core": "^0.3.59",
|
|
47
|
+
"@lmzhen/dsh-evolution-io": "^0.3.59",
|
|
48
|
+
"@lmzhen/dsh-evolution-state": "^0.3.59"
|
|
49
49
|
}
|
|
50
50
|
}
|