@lmzhen/dsh-evolution-core 0.20.0 → 0.22.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/lib/index.js +356 -147
- package/lib/types/index.d.ts +1 -0
- package/lib/types/live.d.ts +78 -0
- package/lib/types/numeric.d.ts +0 -20
- package/lib/types/params.d.ts +18 -1
- package/lib/types/write-inventory.d.ts +16 -0
- package/package.json +1 -1
- package/persisted-write-inventory.json +175 -136
package/lib/index.js
CHANGED
|
@@ -3485,35 +3485,6 @@ function clampedNumber(value, fallback, opts) {
|
|
|
3485
3485
|
if (max !== void 0 && value > max) return fallback;
|
|
3486
3486
|
return value;
|
|
3487
3487
|
}
|
|
3488
|
-
/**
|
|
3489
|
-
* Clamp one numeric knob and warn ONCE per key.
|
|
3490
|
-
*
|
|
3491
|
-
* S2.9 (T3-10): `evolution-review` and `evolution-curator` each carried their own copy of this
|
|
3492
|
-
* helper — their own once-per-key set and their own message — so the two settings readers of ONE
|
|
3493
|
-
* policy row could drift apart. The logic lives here; each caller passes its own sink (and its own
|
|
3494
|
-
* package prefix). A live field is read at every use, so the warning cannot be per-read.
|
|
3495
|
-
*
|
|
3496
|
-
* @param warned - the keys this caller already warned about.
|
|
3497
|
-
* @param warn - the warning sink (each package prefixes its own name).
|
|
3498
|
-
* @param name - the config key, for the warning.
|
|
3499
|
-
* @param value - the value as supplied, or its volatile reference.
|
|
3500
|
-
* @param fallback - the package default a corrected value falls back to.
|
|
3501
|
-
* @param min - the smallest value the engine can act on.
|
|
3502
|
-
* @param max - the largest value the carrier can hold, when bounded.
|
|
3503
|
-
* @returns the value the engine may use.
|
|
3504
|
-
*/
|
|
3505
|
-
function clampOnce(warned, warn, name, value, fallback, min, max) {
|
|
3506
|
-
const current = typeof value === "object" ? value.get() : value;
|
|
3507
|
-
const result = clampedNumber(current, fallback, max === void 0 ? { min } : {
|
|
3508
|
-
min,
|
|
3509
|
-
max
|
|
3510
|
-
});
|
|
3511
|
-
if (current !== void 0 && result !== current && !warned.has(name)) {
|
|
3512
|
-
warned.add(name);
|
|
3513
|
-
warn(`${name} provided an invalid value; falling back to the default`);
|
|
3514
|
-
}
|
|
3515
|
-
return result;
|
|
3516
|
-
}
|
|
3517
3488
|
//#endregion
|
|
3518
3489
|
//#region lib/types/threats.js
|
|
3519
3490
|
/**
|
|
@@ -6697,10 +6668,24 @@ const SERIALIZATIONS = [
|
|
|
6697
6668
|
];
|
|
6698
6669
|
/** Parse + validate the table. A malformed table throws at import: a table the
|
|
6699
6670
|
* gate cannot read must never degrade into "no declared write sites". */
|
|
6700
|
-
function
|
|
6701
|
-
if (
|
|
6671
|
+
function parseTable(raw) {
|
|
6672
|
+
if (raw === null || typeof raw !== "object" || Array.isArray(raw)) throw new Error("evolution-core: persisted-write-inventory.json must be an object with { symbols, sites }");
|
|
6673
|
+
const table = raw;
|
|
6674
|
+
if (table.symbols === null || typeof table.symbols !== "object" || Array.isArray(table.symbols)) throw new Error("evolution-core: persisted-write-inventory.json needs a symbols legend (the roots every path is written against)");
|
|
6675
|
+
for (const [symbol, entry] of Object.entries(table.symbols)) {
|
|
6676
|
+
const problems = [];
|
|
6677
|
+
if (!symbol.startsWith("<") || !symbol.endsWith(">")) problems.push("symbol name (must be <name>)");
|
|
6678
|
+
if (entry === null || typeof entry !== "object") problems.push("entry");
|
|
6679
|
+
else {
|
|
6680
|
+
const symbolEntry = entry;
|
|
6681
|
+
if (typeof symbolEntry.resolver !== "string" || symbolEntry.resolver === "") problems.push("resolver");
|
|
6682
|
+
if (symbolEntry.segments !== void 0 && (!Array.isArray(symbolEntry.segments) || symbolEntry.segments.some((segment) => typeof segment !== "string"))) problems.push("segments");
|
|
6683
|
+
}
|
|
6684
|
+
if (problems.length > 0) throw new Error(`evolution-core: persisted-write-inventory.json symbol ${symbol} is malformed (missing/invalid: ${problems.join(", ")})`);
|
|
6685
|
+
}
|
|
6686
|
+
if (!Array.isArray(table.sites)) throw new Error("evolution-core: persisted-write-inventory.json needs a sites array");
|
|
6702
6687
|
const sites = [];
|
|
6703
|
-
for (const [index, entry] of
|
|
6688
|
+
for (const [index, entry] of table.sites.entries()) {
|
|
6704
6689
|
const site = entry;
|
|
6705
6690
|
const problems = [];
|
|
6706
6691
|
if (typeof site.id !== "string" || site.id === "") problems.push("id");
|
|
@@ -6723,7 +6708,10 @@ function parseSites(raw) {
|
|
|
6723
6708
|
});
|
|
6724
6709
|
}
|
|
6725
6710
|
if (new Set(sites.map((site) => site.id)).size !== sites.length) throw new Error("evolution-core: persisted-write-inventory.json declares duplicate site ids");
|
|
6726
|
-
return
|
|
6711
|
+
return {
|
|
6712
|
+
symbols: table.symbols,
|
|
6713
|
+
sites
|
|
6714
|
+
};
|
|
6727
6715
|
}
|
|
6728
6716
|
/** Instance keys held by writer services — the single source shared by the
|
|
6729
6717
|
* claim site and the inventory row that declares it (rule N20 checks the row's
|
|
@@ -6732,6 +6720,7 @@ const INSTANCE_KEYS = {
|
|
|
6732
6720
|
/** The per-home curator: report writing + the retention sweep. */
|
|
6733
6721
|
curator: "evolution-curator" };
|
|
6734
6722
|
let cachedSites;
|
|
6723
|
+
let cachedSymbols;
|
|
6735
6724
|
/**
|
|
6736
6725
|
* The declared persisted write sites, in file order.
|
|
6737
6726
|
*
|
|
@@ -6755,8 +6744,17 @@ function persistedWriteSites() {
|
|
|
6755
6744
|
const cause = error instanceof Error ? error.message : String(error);
|
|
6756
6745
|
throw new Error(`evolution-core: persisted-write-inventory.json is unreadable (${cause}) — the package asset is missing or was not shipped; the write-inventory rules cannot be evaluated without it`);
|
|
6757
6746
|
}
|
|
6758
|
-
|
|
6759
|
-
|
|
6747
|
+
const table = parseTable(JSON.parse(raw));
|
|
6748
|
+
cachedSites = table.sites;
|
|
6749
|
+
cachedSymbols = table.symbols;
|
|
6750
|
+
return table.sites;
|
|
6751
|
+
}
|
|
6752
|
+
/** The inventory's symbol legend — the roots every declared path is written against, with the
|
|
6753
|
+
* segments the gate checks against the resolver's source.
|
|
6754
|
+
* @internal no production caller — the gates read the JSON asset directly. */
|
|
6755
|
+
function writePathSymbols() {
|
|
6756
|
+
persistedWriteSites();
|
|
6757
|
+
return cachedSymbols ?? {};
|
|
6760
6758
|
}
|
|
6761
6759
|
/** Sites serialized by the per-home instance claim, with their instance keys.
|
|
6762
6760
|
* @internal S2.4 (PLAN 2026-09-16): no production caller — the arch guard
|
|
@@ -11860,7 +11858,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
11860
11858
|
hint: "每累计多少次工具调用检查一次技能:一轮按该轮工具调用数累加(一轮没有工具调用也算 1 次),本轮本身用到技能则只算 1 次。",
|
|
11861
11859
|
control: "number",
|
|
11862
11860
|
unit: "次",
|
|
11863
|
-
values: ""
|
|
11861
|
+
values: "",
|
|
11862
|
+
card: "evolution-review"
|
|
11864
11863
|
},
|
|
11865
11864
|
{
|
|
11866
11865
|
id: "reviewMemoryInterval",
|
|
@@ -11875,7 +11874,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
11875
11874
|
hint: "每累计多少次工具调用检查一次记忆:一轮按该轮工具调用数累加(一轮没有工具调用也算 1 次),本轮本身用到记忆则只算 1 次。",
|
|
11876
11875
|
control: "number",
|
|
11877
11876
|
unit: "次",
|
|
11878
|
-
values: ""
|
|
11877
|
+
values: "",
|
|
11878
|
+
card: "evolution-review"
|
|
11879
11879
|
},
|
|
11880
11880
|
{
|
|
11881
11881
|
id: "skillReviewTrigger",
|
|
@@ -11891,7 +11891,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
11891
11891
|
control: "select",
|
|
11892
11892
|
unit: "",
|
|
11893
11893
|
values: "cadence|completion|both",
|
|
11894
|
-
valueLabels: "按间隔|按任务完成|两者"
|
|
11894
|
+
valueLabels: "按间隔|按任务完成|两者",
|
|
11895
|
+
card: "evolution-review"
|
|
11895
11896
|
},
|
|
11896
11897
|
{
|
|
11897
11898
|
id: "skillReviewCompletionMinToolCalls",
|
|
@@ -11906,7 +11907,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
11906
11907
|
hint: "选「按任务完成」时,任务至少用了几次工具才检查。",
|
|
11907
11908
|
control: "number",
|
|
11908
11909
|
unit: "次",
|
|
11909
|
-
values: ""
|
|
11910
|
+
values: "",
|
|
11911
|
+
card: "evolution-review"
|
|
11910
11912
|
},
|
|
11911
11913
|
{
|
|
11912
11914
|
id: "reviewEnabled",
|
|
@@ -11921,7 +11923,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
11921
11923
|
hint: "关闭后不再自动回顾会话。",
|
|
11922
11924
|
control: "switch",
|
|
11923
11925
|
unit: "",
|
|
11924
|
-
values: ""
|
|
11926
|
+
values: "",
|
|
11927
|
+
card: "evolution-review"
|
|
11925
11928
|
},
|
|
11926
11929
|
{
|
|
11927
11930
|
id: "reviewMode",
|
|
@@ -11937,7 +11940,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
11937
11940
|
control: "select",
|
|
11938
11941
|
unit: "",
|
|
11939
11942
|
values: "subagent|inject",
|
|
11940
|
-
valueLabels: "交给子代理|在当前会话里"
|
|
11943
|
+
valueLabels: "交给子代理|在当前会话里",
|
|
11944
|
+
card: "evolution-review"
|
|
11941
11945
|
},
|
|
11942
11946
|
{
|
|
11943
11947
|
id: "reviewWakeInject",
|
|
@@ -11952,7 +11956,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
11952
11956
|
hint: "会话空闲时,把延后的检查结果作为一条提醒发给你。",
|
|
11953
11957
|
control: "switch",
|
|
11954
11958
|
unit: "",
|
|
11955
|
-
values: ""
|
|
11959
|
+
values: "",
|
|
11960
|
+
card: "evolution-review"
|
|
11956
11961
|
},
|
|
11957
11962
|
{
|
|
11958
11963
|
id: "reviewProvider",
|
|
@@ -11962,7 +11967,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
11962
11967
|
owner: "evolution-review",
|
|
11963
11968
|
applies: "none",
|
|
11964
11969
|
docAnchor: "PARAMETERS.md#review",
|
|
11965
|
-
summary: "LLM provider for review subagents (deployment identity)."
|
|
11970
|
+
summary: "LLM provider for review subagents (deployment identity).",
|
|
11971
|
+
why: "identity"
|
|
11966
11972
|
},
|
|
11967
11973
|
{
|
|
11968
11974
|
id: "reviewTimeoutMs",
|
|
@@ -11972,7 +11978,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
11972
11978
|
owner: "evolution-review",
|
|
11973
11979
|
applies: "none",
|
|
11974
11980
|
docAnchor: "PARAMETERS.md#review",
|
|
11975
|
-
summary: "Bound on one review subagent run and its write leg."
|
|
11981
|
+
summary: "Bound on one review subagent run and its write leg.",
|
|
11982
|
+
why: "internal"
|
|
11976
11983
|
},
|
|
11977
11984
|
{
|
|
11978
11985
|
id: "reviewContextMessages",
|
|
@@ -11982,7 +11989,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
11982
11989
|
owner: "evolution-review",
|
|
11983
11990
|
applies: "none",
|
|
11984
11991
|
docAnchor: "PARAMETERS.md#review",
|
|
11985
|
-
summary: "Messages of context handed to a review subagent."
|
|
11992
|
+
summary: "Messages of context handed to a review subagent.",
|
|
11993
|
+
why: "internal"
|
|
11986
11994
|
},
|
|
11987
11995
|
{
|
|
11988
11996
|
id: "reviewMessageChars",
|
|
@@ -11992,7 +12000,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
11992
12000
|
owner: "evolution-review",
|
|
11993
12001
|
applies: "none",
|
|
11994
12002
|
docAnchor: "PARAMETERS.md#review",
|
|
11995
|
-
summary: "Per-message character budget of the review context."
|
|
12003
|
+
summary: "Per-message character budget of the review context.",
|
|
12004
|
+
why: "internal"
|
|
11996
12005
|
},
|
|
11997
12006
|
{
|
|
11998
12007
|
id: "reviewMaxDepth",
|
|
@@ -12002,7 +12011,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12002
12011
|
owner: "evolution-review",
|
|
12003
12012
|
applies: "none",
|
|
12004
12013
|
docAnchor: "PARAMETERS.md#review",
|
|
12005
|
-
summary: "Absolute delegation-depth cap of the review subagent."
|
|
12014
|
+
summary: "Absolute delegation-depth cap of the review subagent.",
|
|
12015
|
+
why: "internal"
|
|
12006
12016
|
},
|
|
12007
12017
|
{
|
|
12008
12018
|
id: "reviewToolAllow",
|
|
@@ -12012,7 +12022,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12012
12022
|
owner: "evolution-review",
|
|
12013
12023
|
applies: "none",
|
|
12014
12024
|
docAnchor: "PARAMETERS.md#review",
|
|
12015
|
-
summary: "Tools the review subagent may use (safety surface)."
|
|
12025
|
+
summary: "Tools the review subagent may use (safety surface).",
|
|
12026
|
+
why: "security"
|
|
12016
12027
|
},
|
|
12017
12028
|
{
|
|
12018
12029
|
id: "skillContentChars",
|
|
@@ -12027,7 +12038,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12027
12038
|
hint: "技能 Markdown 正文最多多少字符(只能调小)。",
|
|
12028
12039
|
control: "number",
|
|
12029
12040
|
unit: "字符",
|
|
12030
|
-
values: ""
|
|
12041
|
+
values: "",
|
|
12042
|
+
card: "tool-skill-manage"
|
|
12031
12043
|
},
|
|
12032
12044
|
{
|
|
12033
12045
|
id: "maxSkillFileBytes",
|
|
@@ -12042,7 +12054,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12042
12054
|
hint: "技能附带文件单个最大多少字节(只能调小)。",
|
|
12043
12055
|
control: "number",
|
|
12044
12056
|
unit: "字节",
|
|
12045
|
-
values: ""
|
|
12057
|
+
values: "",
|
|
12058
|
+
card: "tool-skill-manage"
|
|
12046
12059
|
},
|
|
12047
12060
|
{
|
|
12048
12061
|
id: "maxSkillNameLength",
|
|
@@ -12057,7 +12070,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12057
12070
|
hint: "技能名最多多少字符(只能调小)。",
|
|
12058
12071
|
control: "number",
|
|
12059
12072
|
unit: "字符",
|
|
12060
|
-
values: ""
|
|
12073
|
+
values: "",
|
|
12074
|
+
card: "tool-skill-manage"
|
|
12061
12075
|
},
|
|
12062
12076
|
{
|
|
12063
12077
|
id: "maxDescriptionLength",
|
|
@@ -12072,7 +12086,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12072
12086
|
hint: "技能描述最多多少字符(只能调小)。",
|
|
12073
12087
|
control: "number",
|
|
12074
12088
|
unit: "字符",
|
|
12075
|
-
values: ""
|
|
12089
|
+
values: "",
|
|
12090
|
+
card: "tool-skill-manage"
|
|
12076
12091
|
},
|
|
12077
12092
|
{
|
|
12078
12093
|
id: "descriptionStrict",
|
|
@@ -12087,7 +12102,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12087
12102
|
hint: "描述不符合要求时直接拒绝写入(默认只提醒)。",
|
|
12088
12103
|
control: "switch",
|
|
12089
12104
|
unit: "",
|
|
12090
|
-
values: ""
|
|
12105
|
+
values: "",
|
|
12106
|
+
card: "tool-skill-manage"
|
|
12091
12107
|
},
|
|
12092
12108
|
{
|
|
12093
12109
|
id: "strictCrossSource",
|
|
@@ -12102,7 +12118,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12102
12118
|
hint: "技能引用了本插件之外的文件时拒绝写入。",
|
|
12103
12119
|
control: "switch",
|
|
12104
12120
|
unit: "",
|
|
12105
|
-
values: ""
|
|
12121
|
+
values: "",
|
|
12122
|
+
card: "tool-skill-manage"
|
|
12106
12123
|
},
|
|
12107
12124
|
{
|
|
12108
12125
|
id: "citationPolicy",
|
|
@@ -12118,7 +12135,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12118
12135
|
control: "select",
|
|
12119
12136
|
unit: "",
|
|
12120
12137
|
values: "verify|refuse",
|
|
12121
|
-
valueLabels: "先检查|直接拒绝"
|
|
12138
|
+
valueLabels: "先检查|直接拒绝",
|
|
12139
|
+
card: "tool-skill-manage"
|
|
12122
12140
|
},
|
|
12123
12141
|
{
|
|
12124
12142
|
id: "referenceRewrite",
|
|
@@ -12128,7 +12146,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12128
12146
|
owner: "tool-skill-manage",
|
|
12129
12147
|
applies: "none",
|
|
12130
12148
|
docAnchor: "PARAMETERS.md#write-caps",
|
|
12131
|
-
summary: "Re-home support files and rewrite references during a merge (plan or apply)."
|
|
12149
|
+
summary: "Re-home support files and rewrite references during a merge (plan or apply).",
|
|
12150
|
+
why: "internal"
|
|
12132
12151
|
},
|
|
12133
12152
|
{
|
|
12134
12153
|
id: "archiveRetention",
|
|
@@ -12138,7 +12157,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12138
12157
|
owner: "tool-skill-manage",
|
|
12139
12158
|
applies: "none",
|
|
12140
12159
|
docAnchor: "PARAMETERS.md#write-caps",
|
|
12141
|
-
summary: "Report expired archives, or prune them."
|
|
12160
|
+
summary: "Report expired archives, or prune them.",
|
|
12161
|
+
why: "internal"
|
|
12142
12162
|
},
|
|
12143
12163
|
{
|
|
12144
12164
|
id: "skillVersionKeep",
|
|
@@ -12148,7 +12168,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12148
12168
|
owner: "tool-skill-manage",
|
|
12149
12169
|
applies: "none",
|
|
12150
12170
|
docAnchor: "PARAMETERS.md#write-caps",
|
|
12151
|
-
summary: "Content versions retained per skill; older ones leave the index. Their stored blobs stay on disk — no automatic sweep exists yet, so a long-lived library grows by the distinct bodies it has written."
|
|
12171
|
+
summary: "Content versions retained per skill; older ones leave the index. Their stored blobs stay on disk — no automatic sweep exists yet, so a long-lived library grows by the distinct bodies it has written.",
|
|
12172
|
+
why: "internal"
|
|
12152
12173
|
},
|
|
12153
12174
|
{
|
|
12154
12175
|
id: "supportFileCharPolicy",
|
|
@@ -12164,7 +12185,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12164
12185
|
control: "select",
|
|
12165
12186
|
unit: "",
|
|
12166
12187
|
values: "report|enforce",
|
|
12167
|
-
valueLabels: "只提醒|拒绝写入"
|
|
12188
|
+
valueLabels: "只提醒|拒绝写入",
|
|
12189
|
+
card: "tool-skill-manage"
|
|
12168
12190
|
},
|
|
12169
12191
|
{
|
|
12170
12192
|
id: "skillWriteConfirm",
|
|
@@ -12180,7 +12202,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12180
12202
|
control: "select",
|
|
12181
12203
|
unit: "",
|
|
12182
12204
|
values: "auto|ask|timeout",
|
|
12183
|
-
valueLabels: "不弹窗直接写入|一直等待回答|超时自动取消"
|
|
12205
|
+
valueLabels: "不弹窗直接写入|一直等待回答|超时自动取消",
|
|
12206
|
+
card: "tool-skill-manage"
|
|
12184
12207
|
},
|
|
12185
12208
|
{
|
|
12186
12209
|
id: "skillWriteConfirmTimeoutSeconds",
|
|
@@ -12195,7 +12218,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12195
12218
|
hint: "选「超时自动取消」时,等多少秒没人回答就取消这次写入。",
|
|
12196
12219
|
control: "number",
|
|
12197
12220
|
unit: "秒",
|
|
12198
|
-
values: ""
|
|
12221
|
+
values: "",
|
|
12222
|
+
card: "tool-skill-manage"
|
|
12199
12223
|
},
|
|
12200
12224
|
{
|
|
12201
12225
|
id: "memoryChars",
|
|
@@ -12210,7 +12234,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12210
12234
|
hint: "长期记忆文件(MEMORY.md)最多多少字符。",
|
|
12211
12235
|
control: "number",
|
|
12212
12236
|
unit: "字符",
|
|
12213
|
-
values: ""
|
|
12237
|
+
values: "",
|
|
12238
|
+
card: "memory-files"
|
|
12214
12239
|
},
|
|
12215
12240
|
{
|
|
12216
12241
|
id: "userChars",
|
|
@@ -12225,7 +12250,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12225
12250
|
hint: "用户画像文件(USER.md)最多多少字符。",
|
|
12226
12251
|
control: "number",
|
|
12227
12252
|
unit: "字符",
|
|
12228
|
-
values: ""
|
|
12253
|
+
values: "",
|
|
12254
|
+
card: "memory-files"
|
|
12229
12255
|
},
|
|
12230
12256
|
{
|
|
12231
12257
|
id: "memoryEnabled",
|
|
@@ -12235,7 +12261,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12235
12261
|
owner: "tool-memory",
|
|
12236
12262
|
applies: "none",
|
|
12237
12263
|
docAnchor: "PARAMETERS.md#memory",
|
|
12238
|
-
summary: "Register the memory tool and its prompt section at all (deployment switch)."
|
|
12264
|
+
summary: "Register the memory tool and its prompt section at all (deployment switch).",
|
|
12265
|
+
why: "deployment"
|
|
12239
12266
|
},
|
|
12240
12267
|
{
|
|
12241
12268
|
id: "entryPreviewChars",
|
|
@@ -12250,7 +12277,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12250
12277
|
hint: "列表里每条记忆最多显示多少字符。",
|
|
12251
12278
|
control: "number",
|
|
12252
12279
|
unit: "字符",
|
|
12253
|
-
values: ""
|
|
12280
|
+
values: "",
|
|
12281
|
+
card: "tool-memory"
|
|
12254
12282
|
},
|
|
12255
12283
|
{
|
|
12256
12284
|
id: "addDatePrefix",
|
|
@@ -12265,7 +12293,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12265
12293
|
hint: "写入时在条目开头加上日期。",
|
|
12266
12294
|
control: "switch",
|
|
12267
12295
|
unit: "",
|
|
12268
|
-
values: ""
|
|
12296
|
+
values: "",
|
|
12297
|
+
card: "memory-files"
|
|
12269
12298
|
},
|
|
12270
12299
|
{
|
|
12271
12300
|
id: "maxConsolidationFailures",
|
|
@@ -12280,7 +12309,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12280
12309
|
hint: "合并记忆连续失败多少次后停止。",
|
|
12281
12310
|
control: "number",
|
|
12282
12311
|
unit: "次",
|
|
12283
|
-
values: ""
|
|
12312
|
+
values: "",
|
|
12313
|
+
card: "memory-files"
|
|
12284
12314
|
},
|
|
12285
12315
|
{
|
|
12286
12316
|
id: "curatorIntervalHours",
|
|
@@ -12295,7 +12325,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12295
12325
|
hint: "两次自动整理之间至少间隔多少小时。",
|
|
12296
12326
|
control: "number",
|
|
12297
12327
|
unit: "小时",
|
|
12298
|
-
values: ""
|
|
12328
|
+
values: "",
|
|
12329
|
+
card: "evolution-curator"
|
|
12299
12330
|
},
|
|
12300
12331
|
{
|
|
12301
12332
|
id: "staleAfterDays",
|
|
@@ -12310,7 +12341,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12310
12341
|
hint: "技能连续多少天没被用到就算过时。",
|
|
12311
12342
|
control: "number",
|
|
12312
12343
|
unit: "天",
|
|
12313
|
-
values: ""
|
|
12344
|
+
values: "",
|
|
12345
|
+
card: "evolution-curator"
|
|
12314
12346
|
},
|
|
12315
12347
|
{
|
|
12316
12348
|
id: "archiveAfterDays",
|
|
@@ -12325,22 +12357,19 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12325
12357
|
hint: "过时技能再过多少天移入归档(不能小于上一项)。",
|
|
12326
12358
|
control: "number",
|
|
12327
12359
|
unit: "天",
|
|
12328
|
-
values: ""
|
|
12360
|
+
values: "",
|
|
12361
|
+
card: "evolution-curator"
|
|
12329
12362
|
},
|
|
12330
12363
|
{
|
|
12331
12364
|
id: "qualityWarnStaleAfterDays",
|
|
12332
12365
|
group: "curator",
|
|
12333
|
-
tier: "
|
|
12366
|
+
tier: "E2",
|
|
12334
12367
|
authority: "cordis",
|
|
12335
12368
|
owner: "evolution-curator",
|
|
12336
|
-
applies: "
|
|
12369
|
+
applies: "none",
|
|
12337
12370
|
docAnchor: "PARAMETERS.md#curator",
|
|
12338
|
-
summary: "Age at which a low quality score starts warning.",
|
|
12339
|
-
|
|
12340
|
-
hint: "质量评分偏低时,从多少天开始提醒。",
|
|
12341
|
-
control: "number",
|
|
12342
|
-
unit: "天",
|
|
12343
|
-
values: ""
|
|
12371
|
+
summary: "Age at which a low quality score starts warning (the pair of evolution-feedback.qualityWarnThreshold; both live on the deployment face so one bar is not half user-set).",
|
|
12372
|
+
why: "internal"
|
|
12344
12373
|
},
|
|
12345
12374
|
{
|
|
12346
12375
|
id: "minIdleHours",
|
|
@@ -12355,7 +12384,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12355
12384
|
hint: "你至少多少小时没用,才运行自动整理。",
|
|
12356
12385
|
control: "number",
|
|
12357
12386
|
unit: "小时",
|
|
12358
|
-
values: ""
|
|
12387
|
+
values: "",
|
|
12388
|
+
card: "evolution-curator"
|
|
12359
12389
|
},
|
|
12360
12390
|
{
|
|
12361
12391
|
id: "minIdleFailOpen",
|
|
@@ -12370,7 +12400,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12370
12400
|
hint: "无法判断你是否空闲时,仍然运行自动整理。",
|
|
12371
12401
|
control: "switch",
|
|
12372
12402
|
unit: "",
|
|
12373
|
-
values: ""
|
|
12403
|
+
values: "",
|
|
12404
|
+
card: "evolution-curator"
|
|
12374
12405
|
},
|
|
12375
12406
|
{
|
|
12376
12407
|
id: "llmReview",
|
|
@@ -12385,7 +12416,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12385
12416
|
hint: "在固定规则之外,再用模型挑一遍候选项。",
|
|
12386
12417
|
control: "switch",
|
|
12387
12418
|
unit: "",
|
|
12388
|
-
values: ""
|
|
12419
|
+
values: "",
|
|
12420
|
+
card: "evolution-curator"
|
|
12389
12421
|
},
|
|
12390
12422
|
{
|
|
12391
12423
|
id: "curatorReviewMaxTokens",
|
|
@@ -12400,7 +12432,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12400
12432
|
hint: "每次用模型挑选时最多消耗多少 token。",
|
|
12401
12433
|
control: "number",
|
|
12402
12434
|
unit: "token",
|
|
12403
|
-
values: ""
|
|
12435
|
+
values: "",
|
|
12436
|
+
card: "evolution-curator"
|
|
12404
12437
|
},
|
|
12405
12438
|
{
|
|
12406
12439
|
id: "curatorReviewTimeoutMs",
|
|
@@ -12415,7 +12448,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12415
12448
|
hint: "一次模型挑选最长允许运行多久。",
|
|
12416
12449
|
control: "number",
|
|
12417
12450
|
unit: "毫秒",
|
|
12418
|
-
values: ""
|
|
12451
|
+
values: "",
|
|
12452
|
+
card: "evolution-curator"
|
|
12419
12453
|
},
|
|
12420
12454
|
{
|
|
12421
12455
|
id: "healthSoftBodyChars",
|
|
@@ -12430,7 +12464,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12430
12464
|
hint: "技能正文超过多少字符算偏长(只用于健康提示)。",
|
|
12431
12465
|
control: "number",
|
|
12432
12466
|
unit: "字符",
|
|
12433
|
-
values: ""
|
|
12467
|
+
values: "",
|
|
12468
|
+
card: "evolution-curator"
|
|
12434
12469
|
},
|
|
12435
12470
|
{
|
|
12436
12471
|
id: "healthStampDensityPerKb",
|
|
@@ -12445,7 +12480,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12445
12480
|
hint: "每 KB 出现多少个时间标记,就判为「像日志」。",
|
|
12446
12481
|
control: "number",
|
|
12447
12482
|
unit: "处/KB",
|
|
12448
|
-
values: ""
|
|
12483
|
+
values: "",
|
|
12484
|
+
card: "evolution-curator"
|
|
12449
12485
|
},
|
|
12450
12486
|
{
|
|
12451
12487
|
id: "healthChurnMinPatches",
|
|
@@ -12460,7 +12496,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12460
12496
|
hint: "连续多少次改动都没有被读取,就判为「只写不读」。",
|
|
12461
12497
|
control: "number",
|
|
12462
12498
|
unit: "处",
|
|
12463
|
-
values: ""
|
|
12499
|
+
values: "",
|
|
12500
|
+
card: "evolution-curator"
|
|
12464
12501
|
},
|
|
12465
12502
|
{
|
|
12466
12503
|
id: "evolution-curator.enabled",
|
|
@@ -12470,7 +12507,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12470
12507
|
owner: "evolution-curator",
|
|
12471
12508
|
applies: "none",
|
|
12472
12509
|
docAnchor: "PARAMETERS.md#curator",
|
|
12473
|
-
summary: "Mount the curator plugin at all."
|
|
12510
|
+
summary: "Mount the curator plugin at all.",
|
|
12511
|
+
why: "deployment"
|
|
12474
12512
|
},
|
|
12475
12513
|
{
|
|
12476
12514
|
id: "autoStart",
|
|
@@ -12480,7 +12518,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12480
12518
|
owner: "evolution-curator",
|
|
12481
12519
|
applies: "none",
|
|
12482
12520
|
docAnchor: "PARAMETERS.md#curator",
|
|
12483
|
-
summary: "Arm the hourly due-ness tick with the plugin."
|
|
12521
|
+
summary: "Arm the hourly due-ness tick with the plugin — the STARTUP default only; at runtime /evolution curator pause or resume overrides it (the override is persisted in curation state and wins until cleared). Off keeps curation manual.",
|
|
12522
|
+
why: "deployment"
|
|
12484
12523
|
},
|
|
12485
12524
|
{
|
|
12486
12525
|
id: "bootGraceSeconds",
|
|
@@ -12490,7 +12529,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12490
12529
|
owner: "evolution-curator",
|
|
12491
12530
|
applies: "none",
|
|
12492
12531
|
docAnchor: "PARAMETERS.md#curator",
|
|
12493
|
-
summary: "Grace period before the first automatic pass after a restart."
|
|
12532
|
+
summary: "Grace period before the first automatic pass after a restart.",
|
|
12533
|
+
why: "internal"
|
|
12494
12534
|
},
|
|
12495
12535
|
{
|
|
12496
12536
|
id: "curatorProvider",
|
|
@@ -12500,7 +12540,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12500
12540
|
owner: "evolution-curator",
|
|
12501
12541
|
applies: "none",
|
|
12502
12542
|
docAnchor: "PARAMETERS.md#curator",
|
|
12503
|
-
summary: "LLM provider for curator reviews (deployment identity)."
|
|
12543
|
+
summary: "LLM provider for curator reviews (deployment identity).",
|
|
12544
|
+
why: "identity"
|
|
12504
12545
|
},
|
|
12505
12546
|
{
|
|
12506
12547
|
id: "curatorModel",
|
|
@@ -12510,7 +12551,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12510
12551
|
owner: "evolution-curator",
|
|
12511
12552
|
applies: "none",
|
|
12512
12553
|
docAnchor: "PARAMETERS.md#curator",
|
|
12513
|
-
summary: "Model for curator reviews (deployment identity)."
|
|
12554
|
+
summary: "Model for curator reviews (deployment identity).",
|
|
12555
|
+
why: "identity"
|
|
12514
12556
|
},
|
|
12515
12557
|
{
|
|
12516
12558
|
id: "protectedSkillNames",
|
|
@@ -12520,7 +12562,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12520
12562
|
owner: "evolution-curator",
|
|
12521
12563
|
applies: "none",
|
|
12522
12564
|
docAnchor: "PARAMETERS.md#library",
|
|
12523
|
-
summary: "Skills the lifecycle never archives or rewrites."
|
|
12565
|
+
summary: "Skills the lifecycle never archives or rewrites.",
|
|
12566
|
+
why: "deployment"
|
|
12524
12567
|
},
|
|
12525
12568
|
{
|
|
12526
12569
|
id: "manageUnmanaged",
|
|
@@ -12530,7 +12573,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12530
12573
|
owner: "evolution-curator",
|
|
12531
12574
|
applies: "none",
|
|
12532
12575
|
docAnchor: "PARAMETERS.md#library",
|
|
12533
|
-
summary: "Let curation touch skills with no family metadata."
|
|
12576
|
+
summary: "Let curation touch skills with no family metadata.",
|
|
12577
|
+
why: "deployment"
|
|
12534
12578
|
},
|
|
12535
12579
|
{
|
|
12536
12580
|
id: "pruneBuiltins",
|
|
@@ -12540,7 +12584,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12540
12584
|
owner: "evolution-curator",
|
|
12541
12585
|
applies: "none",
|
|
12542
12586
|
docAnchor: "PARAMETERS.md#library",
|
|
12543
|
-
summary: "Let curation nominate bundled skills for pruning."
|
|
12587
|
+
summary: "Let curation nominate bundled skills for pruning.",
|
|
12588
|
+
why: "deployment"
|
|
12544
12589
|
},
|
|
12545
12590
|
{
|
|
12546
12591
|
id: "referencedSkillNames",
|
|
@@ -12550,7 +12595,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12550
12595
|
owner: "evolution-curator",
|
|
12551
12596
|
applies: "none",
|
|
12552
12597
|
docAnchor: "PARAMETERS.md#library",
|
|
12553
|
-
summary: "Names treated as referenced by external docs (never retired)."
|
|
12598
|
+
summary: "Names treated as referenced by external docs (never retired).",
|
|
12599
|
+
why: "deployment"
|
|
12554
12600
|
},
|
|
12555
12601
|
{
|
|
12556
12602
|
id: "includeSkillNames",
|
|
@@ -12560,7 +12606,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12560
12606
|
owner: "evolution-skill-catalog",
|
|
12561
12607
|
applies: "none",
|
|
12562
12608
|
docAnchor: "PARAMETERS.md#library",
|
|
12563
|
-
summary: "Allow-list of skills the catalog exposes."
|
|
12609
|
+
summary: "Allow-list of skills the catalog exposes.",
|
|
12610
|
+
why: "deployment"
|
|
12564
12611
|
},
|
|
12565
12612
|
{
|
|
12566
12613
|
id: "skill-catalog.excludeSkillNames",
|
|
@@ -12570,7 +12617,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12570
12617
|
owner: "evolution-skill-catalog",
|
|
12571
12618
|
applies: "none",
|
|
12572
12619
|
docAnchor: "PARAMETERS.md#library",
|
|
12573
|
-
summary: "Deny-list of skills the catalog hides (row-local name; see the collision note)."
|
|
12620
|
+
summary: "Deny-list of skills the catalog hides (row-local name; see the collision note).",
|
|
12621
|
+
why: "deployment"
|
|
12574
12622
|
},
|
|
12575
12623
|
{
|
|
12576
12624
|
id: "modelInvocable",
|
|
@@ -12580,7 +12628,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12580
12628
|
owner: "evolution-skill-catalog",
|
|
12581
12629
|
applies: "none",
|
|
12582
12630
|
docAnchor: "PARAMETERS.md#library",
|
|
12583
|
-
summary: "Default for whether the model may invoke a catalog skill."
|
|
12631
|
+
summary: "Default for whether the model may invoke a catalog skill.",
|
|
12632
|
+
why: "deployment"
|
|
12584
12633
|
},
|
|
12585
12634
|
{
|
|
12586
12635
|
id: "userInvocable",
|
|
@@ -12590,7 +12639,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12590
12639
|
owner: "evolution-skill-catalog",
|
|
12591
12640
|
applies: "none",
|
|
12592
12641
|
docAnchor: "PARAMETERS.md#library",
|
|
12593
|
-
summary: "Default for whether the user may invoke a catalog skill."
|
|
12642
|
+
summary: "Default for whether the user may invoke a catalog skill.",
|
|
12643
|
+
why: "deployment"
|
|
12594
12644
|
},
|
|
12595
12645
|
{
|
|
12596
12646
|
id: "maxItems",
|
|
@@ -12600,7 +12650,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12600
12650
|
owner: "evolution-activity",
|
|
12601
12651
|
applies: "none",
|
|
12602
12652
|
docAnchor: "PARAMETERS.md#library",
|
|
12603
|
-
summary: "Entries kept in the activity sidecar window."
|
|
12653
|
+
summary: "Entries kept in the activity sidecar window.",
|
|
12654
|
+
why: "internal"
|
|
12604
12655
|
},
|
|
12605
12656
|
{
|
|
12606
12657
|
id: "sessionScoped",
|
|
@@ -12610,7 +12661,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12610
12661
|
owner: "evolution-review",
|
|
12611
12662
|
applies: "none",
|
|
12612
12663
|
docAnchor: "PARAMETERS.md#library",
|
|
12613
|
-
summary: "Act only on sessions carrying the family model tools."
|
|
12664
|
+
summary: "Act only on sessions carrying the family model tools.",
|
|
12665
|
+
why: "deployment"
|
|
12614
12666
|
},
|
|
12615
12667
|
{
|
|
12616
12668
|
id: "skill-usage.sessionScoped",
|
|
@@ -12620,7 +12672,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12620
12672
|
owner: "skill-usage",
|
|
12621
12673
|
applies: "none",
|
|
12622
12674
|
docAnchor: "PARAMETERS.md#library",
|
|
12623
|
-
summary: "Keep the usage sidecar scoped per session (row-local name)."
|
|
12675
|
+
summary: "Keep the usage sidecar scoped per session (row-local name).",
|
|
12676
|
+
why: "deployment"
|
|
12624
12677
|
},
|
|
12625
12678
|
{
|
|
12626
12679
|
id: "evolution-review.root",
|
|
@@ -12630,7 +12683,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12630
12683
|
owner: "evolution-review",
|
|
12631
12684
|
applies: "none",
|
|
12632
12685
|
docAnchor: "PARAMETERS.md#deployment",
|
|
12633
|
-
summary: "Skill-tree root for review-created skills (empty = shared default)."
|
|
12686
|
+
summary: "Skill-tree root for review-created skills (empty = shared default).",
|
|
12687
|
+
why: "path"
|
|
12634
12688
|
},
|
|
12635
12689
|
{
|
|
12636
12690
|
id: "evolution-review.skillsRoot",
|
|
@@ -12640,7 +12694,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12640
12694
|
owner: "evolution-review",
|
|
12641
12695
|
applies: "none",
|
|
12642
12696
|
docAnchor: "PARAMETERS.md#deployment",
|
|
12643
|
-
summary: "Retired alias of root; a value here fails the load (V27 G2.4)."
|
|
12697
|
+
summary: "Retired alias of root; a value here fails the load (V27 G2.4).",
|
|
12698
|
+
why: "path"
|
|
12644
12699
|
},
|
|
12645
12700
|
{
|
|
12646
12701
|
id: "evolution-curator.root",
|
|
@@ -12650,7 +12705,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12650
12705
|
owner: "evolution-curator",
|
|
12651
12706
|
applies: "none",
|
|
12652
12707
|
docAnchor: "PARAMETERS.md#deployment",
|
|
12653
|
-
summary: "Skill-tree root for curator scope, snapshot and archive."
|
|
12708
|
+
summary: "Skill-tree root for curator scope, snapshot and archive.",
|
|
12709
|
+
why: "path"
|
|
12654
12710
|
},
|
|
12655
12711
|
{
|
|
12656
12712
|
id: "evolution-commands.root",
|
|
@@ -12660,7 +12716,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12660
12716
|
owner: "evolution-commands",
|
|
12661
12717
|
applies: "none",
|
|
12662
12718
|
docAnchor: "PARAMETERS.md#deployment",
|
|
12663
|
-
summary: "Skill-tree root the command surface writes through."
|
|
12719
|
+
summary: "Skill-tree root the command surface writes through.",
|
|
12720
|
+
why: "path"
|
|
12664
12721
|
},
|
|
12665
12722
|
{
|
|
12666
12723
|
id: "evolution-commands.skillsRoot",
|
|
@@ -12670,7 +12727,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12670
12727
|
owner: "evolution-commands",
|
|
12671
12728
|
applies: "none",
|
|
12672
12729
|
docAnchor: "PARAMETERS.md#deployment",
|
|
12673
|
-
summary: "Retired alias of the commands root; a value here fails the load."
|
|
12730
|
+
summary: "Retired alias of the commands root; a value here fails the load.",
|
|
12731
|
+
why: "path"
|
|
12674
12732
|
},
|
|
12675
12733
|
{
|
|
12676
12734
|
id: "evolution-maintenance.root",
|
|
@@ -12680,7 +12738,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12680
12738
|
owner: "evolution-maintenance",
|
|
12681
12739
|
applies: "none",
|
|
12682
12740
|
docAnchor: "PARAMETERS.md#deployment",
|
|
12683
|
-
summary: "Skill-tree root the maintenance probe scans."
|
|
12741
|
+
summary: "Skill-tree root the maintenance probe scans.",
|
|
12742
|
+
why: "path"
|
|
12684
12743
|
},
|
|
12685
12744
|
{
|
|
12686
12745
|
id: "evolution-maintenance.skillsRoot",
|
|
@@ -12690,7 +12749,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12690
12749
|
owner: "evolution-maintenance",
|
|
12691
12750
|
applies: "none",
|
|
12692
12751
|
docAnchor: "PARAMETERS.md#deployment",
|
|
12693
|
-
summary: "Accepted skill-root spelling for the maintenance row."
|
|
12752
|
+
summary: "Accepted skill-root spelling for the maintenance row.",
|
|
12753
|
+
why: "path"
|
|
12694
12754
|
},
|
|
12695
12755
|
{
|
|
12696
12756
|
id: "evolution-skill-catalog.root",
|
|
@@ -12700,7 +12760,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12700
12760
|
owner: "evolution-skill-catalog",
|
|
12701
12761
|
applies: "none",
|
|
12702
12762
|
docAnchor: "PARAMETERS.md#deployment",
|
|
12703
|
-
summary: "Skill-tree root the catalog lists."
|
|
12763
|
+
summary: "Skill-tree root the catalog lists.",
|
|
12764
|
+
why: "path"
|
|
12704
12765
|
},
|
|
12705
12766
|
{
|
|
12706
12767
|
id: "evolution-learning-graph.root",
|
|
@@ -12710,7 +12771,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12710
12771
|
owner: "evolution-learning-graph",
|
|
12711
12772
|
applies: "none",
|
|
12712
12773
|
docAnchor: "PARAMETERS.md#deployment",
|
|
12713
|
-
summary: "Skill-tree root the learning graph reads."
|
|
12774
|
+
summary: "Skill-tree root the learning graph reads.",
|
|
12775
|
+
why: "path"
|
|
12714
12776
|
},
|
|
12715
12777
|
{
|
|
12716
12778
|
id: "skill-usage.root",
|
|
@@ -12720,7 +12782,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12720
12782
|
owner: "skill-usage",
|
|
12721
12783
|
applies: "none",
|
|
12722
12784
|
docAnchor: "PARAMETERS.md#deployment",
|
|
12723
|
-
summary: "Skill-tree root the usage store observes."
|
|
12785
|
+
summary: "Skill-tree root the usage store observes.",
|
|
12786
|
+
why: "path"
|
|
12724
12787
|
},
|
|
12725
12788
|
{
|
|
12726
12789
|
id: "skill-usage.eventsHome",
|
|
@@ -12730,7 +12793,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12730
12793
|
owner: "skill-usage",
|
|
12731
12794
|
applies: "none",
|
|
12732
12795
|
docAnchor: "PARAMETERS.md#deployment",
|
|
12733
|
-
summary: "Directory holding the family event log the usage store reads."
|
|
12796
|
+
summary: "Directory holding the family event log the usage store reads.",
|
|
12797
|
+
why: "path"
|
|
12734
12798
|
},
|
|
12735
12799
|
{
|
|
12736
12800
|
id: "evolution-state-json.root",
|
|
@@ -12740,7 +12804,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12740
12804
|
owner: "evolution-state-json",
|
|
12741
12805
|
applies: "none",
|
|
12742
12806
|
docAnchor: "PARAMETERS.md#deployment",
|
|
12743
|
-
summary: "Directory holding the JSON state store."
|
|
12807
|
+
summary: "Directory holding the JSON state store.",
|
|
12808
|
+
why: "path"
|
|
12744
12809
|
},
|
|
12745
12810
|
{
|
|
12746
12811
|
id: "memory-files.root",
|
|
@@ -12750,7 +12815,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12750
12815
|
owner: "memory-files",
|
|
12751
12816
|
applies: "none",
|
|
12752
12817
|
docAnchor: "PARAMETERS.md#deployment",
|
|
12753
|
-
summary: "Directory holding MEMORY.md and USER.md (empty = $DSH_HOME/memories)."
|
|
12818
|
+
summary: "Directory holding MEMORY.md and USER.md (empty = $DSH_HOME/memories).",
|
|
12819
|
+
why: "path"
|
|
12754
12820
|
},
|
|
12755
12821
|
{
|
|
12756
12822
|
id: "evolution-feedback.path",
|
|
@@ -12760,7 +12826,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12760
12826
|
owner: "evolution-feedback",
|
|
12761
12827
|
applies: "none",
|
|
12762
12828
|
docAnchor: "PARAMETERS.md#deployment",
|
|
12763
|
-
summary: "Event log the feedback scorer reads (empty = family events file)."
|
|
12829
|
+
summary: "Event log the feedback scorer reads (empty = family events file).",
|
|
12830
|
+
why: "path"
|
|
12764
12831
|
},
|
|
12765
12832
|
{
|
|
12766
12833
|
id: "evolution-state.provider",
|
|
@@ -12770,7 +12837,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12770
12837
|
owner: "evolution-state",
|
|
12771
12838
|
applies: "none",
|
|
12772
12839
|
docAnchor: "PARAMETERS.md#deployment",
|
|
12773
|
-
summary: "Registered state-store provider name."
|
|
12840
|
+
summary: "Registered state-store provider name.",
|
|
12841
|
+
why: "identity"
|
|
12774
12842
|
},
|
|
12775
12843
|
{
|
|
12776
12844
|
id: "memory.provider",
|
|
@@ -12780,7 +12848,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12780
12848
|
owner: "memory",
|
|
12781
12849
|
applies: "none",
|
|
12782
12850
|
docAnchor: "PARAMETERS.md#deployment",
|
|
12783
|
-
summary: "Registered memory provider name."
|
|
12851
|
+
summary: "Registered memory provider name.",
|
|
12852
|
+
why: "identity"
|
|
12784
12853
|
},
|
|
12785
12854
|
{
|
|
12786
12855
|
id: "memory-files.providerName",
|
|
@@ -12790,7 +12859,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12790
12859
|
owner: "memory-files",
|
|
12791
12860
|
applies: "none",
|
|
12792
12861
|
docAnchor: "PARAMETERS.md#deployment",
|
|
12793
|
-
summary: "Name this package registers as the memory provider."
|
|
12862
|
+
summary: "Name this package registers as the memory provider.",
|
|
12863
|
+
why: "identity"
|
|
12794
12864
|
},
|
|
12795
12865
|
{
|
|
12796
12866
|
id: "memoryReviewModel",
|
|
@@ -12800,7 +12870,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12800
12870
|
owner: "evolution-review",
|
|
12801
12871
|
applies: "none",
|
|
12802
12872
|
docAnchor: "PARAMETERS.md#deployment",
|
|
12803
|
-
summary: "Model for the memory review channel (deployment identity)."
|
|
12873
|
+
summary: "Model for the memory review channel (deployment identity).",
|
|
12874
|
+
why: "identity"
|
|
12804
12875
|
},
|
|
12805
12876
|
{
|
|
12806
12877
|
id: "skillReviewModel",
|
|
@@ -12810,7 +12881,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12810
12881
|
owner: "evolution-review",
|
|
12811
12882
|
applies: "none",
|
|
12812
12883
|
docAnchor: "PARAMETERS.md#deployment",
|
|
12813
|
-
summary: "Model for the skill review channel (deployment identity)."
|
|
12884
|
+
summary: "Model for the skill review channel (deployment identity).",
|
|
12885
|
+
why: "identity"
|
|
12814
12886
|
},
|
|
12815
12887
|
{
|
|
12816
12888
|
id: "maxOpsPerPlan",
|
|
@@ -12820,7 +12892,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12820
12892
|
owner: "evolution-plan-validator",
|
|
12821
12893
|
applies: "none",
|
|
12822
12894
|
docAnchor: "PARAMETERS.md#deployment",
|
|
12823
|
-
summary: "Operation cap one staged plan may carry."
|
|
12895
|
+
summary: "Operation cap one staged plan may carry.",
|
|
12896
|
+
why: "internal"
|
|
12824
12897
|
},
|
|
12825
12898
|
{
|
|
12826
12899
|
id: "substantiveMinToolCalls",
|
|
@@ -12830,7 +12903,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12830
12903
|
owner: "evolution-review",
|
|
12831
12904
|
applies: "none",
|
|
12832
12905
|
docAnchor: "PARAMETERS.md#deployment",
|
|
12833
|
-
summary: "Tool calls that make a turn count as substantive."
|
|
12906
|
+
summary: "Tool calls that make a turn count as substantive.",
|
|
12907
|
+
why: "internal"
|
|
12834
12908
|
},
|
|
12835
12909
|
{
|
|
12836
12910
|
id: "substantiveMinUserChars",
|
|
@@ -12840,7 +12914,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12840
12914
|
owner: "evolution-review",
|
|
12841
12915
|
applies: "none",
|
|
12842
12916
|
docAnchor: "PARAMETERS.md#deployment",
|
|
12843
|
-
summary: "User characters that make a turn count as substantive."
|
|
12917
|
+
summary: "User characters that make a turn count as substantive.",
|
|
12918
|
+
why: "internal"
|
|
12844
12919
|
},
|
|
12845
12920
|
{
|
|
12846
12921
|
id: "substantiveMinAgentChars",
|
|
@@ -12850,7 +12925,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12850
12925
|
owner: "evolution-review",
|
|
12851
12926
|
applies: "none",
|
|
12852
12927
|
docAnchor: "PARAMETERS.md#deployment",
|
|
12853
|
-
summary: "Assistant characters that make a turn count as substantive."
|
|
12928
|
+
summary: "Assistant characters that make a turn count as substantive.",
|
|
12929
|
+
why: "internal"
|
|
12854
12930
|
},
|
|
12855
12931
|
{
|
|
12856
12932
|
id: "threatExemptLabels",
|
|
@@ -12860,7 +12936,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12860
12936
|
owner: "evolution-threat",
|
|
12861
12937
|
applies: "none",
|
|
12862
12938
|
docAnchor: "PARAMETERS.md#deployment",
|
|
12863
|
-
summary: "Threat labels the deployment declares benign (safety surface, never user-writable)."
|
|
12939
|
+
summary: "Threat labels the deployment declares benign (safety surface, never user-writable).",
|
|
12940
|
+
why: "security"
|
|
12864
12941
|
},
|
|
12865
12942
|
{
|
|
12866
12943
|
id: "evolution-threat.enabled",
|
|
@@ -12870,7 +12947,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12870
12947
|
owner: "evolution-threat",
|
|
12871
12948
|
applies: "none",
|
|
12872
12949
|
docAnchor: "PARAMETERS.md#deployment",
|
|
12873
|
-
summary: "Mount the write-time threat guard at all."
|
|
12950
|
+
summary: "Mount the write-time threat guard at all.",
|
|
12951
|
+
why: "security"
|
|
12874
12952
|
},
|
|
12875
12953
|
{
|
|
12876
12954
|
id: "evolution-threat.maxScanChars",
|
|
@@ -12880,7 +12958,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12880
12958
|
owner: "evolution-threat",
|
|
12881
12959
|
applies: "none",
|
|
12882
12960
|
docAnchor: "PARAMETERS.md#deployment",
|
|
12883
|
-
summary: "Scan window size of the threat guard."
|
|
12961
|
+
summary: "Scan window size of the threat guard.",
|
|
12962
|
+
why: "security"
|
|
12884
12963
|
},
|
|
12885
12964
|
{
|
|
12886
12965
|
id: "evolution-approval.enabled",
|
|
@@ -12890,7 +12969,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12890
12969
|
owner: "evolution-approval",
|
|
12891
12970
|
applies: "none",
|
|
12892
12971
|
docAnchor: "PARAMETERS.md#deployment",
|
|
12893
|
-
summary: "Require approval before a staged write executes."
|
|
12972
|
+
summary: "Require approval before a staged write executes.",
|
|
12973
|
+
why: "security"
|
|
12894
12974
|
},
|
|
12895
12975
|
{
|
|
12896
12976
|
id: "evolution-approval.stageForeground",
|
|
@@ -12900,7 +12980,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12900
12980
|
owner: "evolution-approval",
|
|
12901
12981
|
applies: "none",
|
|
12902
12982
|
docAnchor: "PARAMETERS.md#deployment",
|
|
12903
|
-
summary: "Stage foreground agent writes for approval too."
|
|
12983
|
+
summary: "Stage foreground agent writes for approval too.",
|
|
12984
|
+
why: "security"
|
|
12904
12985
|
},
|
|
12905
12986
|
{
|
|
12906
12987
|
id: "evolution-approval.pendingTtlMs",
|
|
@@ -12915,7 +12996,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12915
12996
|
hint: "一条待批写入最多等多久:超时就按「拒绝」关掉(不会执行,写效果不会落地);0 = 永不过期(默认)。",
|
|
12916
12997
|
control: "number",
|
|
12917
12998
|
unit: "毫秒",
|
|
12918
|
-
values: ""
|
|
12999
|
+
values: "",
|
|
13000
|
+
card: "evolution-approval"
|
|
12919
13001
|
},
|
|
12920
13002
|
{
|
|
12921
13003
|
id: "qualityWarnThreshold",
|
|
@@ -12925,7 +13007,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12925
13007
|
owner: "evolution-feedback",
|
|
12926
13008
|
applies: "none",
|
|
12927
13009
|
docAnchor: "PARAMETERS.md#deployment",
|
|
12928
|
-
summary: "Feedback score below which a skill carries a warning."
|
|
13010
|
+
summary: "Feedback score below which a skill carries a warning.",
|
|
13011
|
+
why: "internal"
|
|
12929
13012
|
},
|
|
12930
13013
|
{
|
|
12931
13014
|
id: "replay.maxPlans",
|
|
@@ -12935,7 +13018,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12935
13018
|
owner: "evolution-replay",
|
|
12936
13019
|
applies: "none",
|
|
12937
13020
|
docAnchor: "PARAMETERS.md#deployment",
|
|
12938
|
-
summary: "Plans compared in one replay report."
|
|
13021
|
+
summary: "Plans compared in one replay report.",
|
|
13022
|
+
why: "internal"
|
|
12939
13023
|
},
|
|
12940
13024
|
{
|
|
12941
13025
|
id: "replay.weights",
|
|
@@ -12945,7 +13029,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12945
13029
|
owner: "evolution-replay",
|
|
12946
13030
|
applies: "none",
|
|
12947
13031
|
docAnchor: "PARAMETERS.md#deployment",
|
|
12948
|
-
summary: "Scoring weights of the replay comparison."
|
|
13032
|
+
summary: "Scoring weights of the replay comparison.",
|
|
13033
|
+
why: "internal"
|
|
12949
13034
|
},
|
|
12950
13035
|
{
|
|
12951
13036
|
id: "evolution-commands.maintainCooldownMs",
|
|
@@ -12955,17 +13040,24 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12955
13040
|
owner: "evolution-commands",
|
|
12956
13041
|
applies: "none",
|
|
12957
13042
|
docAnchor: "PARAMETERS.md#deployment",
|
|
12958
|
-
summary: "Cooldown between maintenance runs from the command surface."
|
|
13043
|
+
summary: "Cooldown between maintenance runs from the command surface.",
|
|
13044
|
+
why: "internal"
|
|
12959
13045
|
},
|
|
12960
13046
|
{
|
|
12961
13047
|
id: "evolution-commands.maintainHandoffOnSettle",
|
|
12962
13048
|
group: "deployment",
|
|
12963
|
-
tier: "
|
|
13049
|
+
tier: "E3",
|
|
12964
13050
|
authority: "cordis",
|
|
12965
13051
|
owner: "evolution-commands",
|
|
12966
|
-
applies: "
|
|
13052
|
+
applies: "live",
|
|
12967
13053
|
docAnchor: "PARAMETERS.md#deployment",
|
|
12968
|
-
summary: "Hand the maintenance report to the model automatically once a scan settles successfully (the same injection as maintain handoff); off by default — enabling it costs one extra model call per successful run."
|
|
13054
|
+
summary: "Hand the maintenance report to the model automatically once a scan settles successfully (the same injection as maintain handoff); off by default — enabling it costs one extra model call per successful run.",
|
|
13055
|
+
label: "扫描完成后自动交接",
|
|
13056
|
+
hint: "维护扫描成功结束后,自动把报告交给模型(等同 maintain handoff);默认关闭,每次成功扫描会多花一次模型调用。",
|
|
13057
|
+
control: "switch",
|
|
13058
|
+
unit: "",
|
|
13059
|
+
values: "",
|
|
13060
|
+
card: "evolution-commands"
|
|
12969
13061
|
},
|
|
12970
13062
|
{
|
|
12971
13063
|
id: "evolution-commands.maintainTimeoutMs",
|
|
@@ -12975,7 +13067,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12975
13067
|
owner: "evolution-commands",
|
|
12976
13068
|
applies: "none",
|
|
12977
13069
|
docAnchor: "PARAMETERS.md#deployment",
|
|
12978
|
-
summary: "Timeout of one maintenance run started from the command surface."
|
|
13070
|
+
summary: "Timeout of one maintenance run started from the command surface.",
|
|
13071
|
+
why: "internal"
|
|
12979
13072
|
},
|
|
12980
13073
|
{
|
|
12981
13074
|
id: "evolution-maintenance.probeTimeoutMs",
|
|
@@ -12985,7 +13078,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12985
13078
|
owner: "evolution-maintenance",
|
|
12986
13079
|
applies: "none",
|
|
12987
13080
|
docAnchor: "PARAMETERS.md#deployment",
|
|
12988
|
-
summary: "Model-facing budget of one maintenance_probe call — a hang guard, not a latency budget."
|
|
13081
|
+
summary: "Model-facing budget of one maintenance_probe call — a hang guard, not a latency budget.",
|
|
13082
|
+
why: "internal"
|
|
12989
13083
|
},
|
|
12990
13084
|
{
|
|
12991
13085
|
id: "skill-usage.supportReadToolNames",
|
|
@@ -12995,7 +13089,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
12995
13089
|
owner: "skill-usage",
|
|
12996
13090
|
applies: "none",
|
|
12997
13091
|
docAnchor: "PARAMETERS.md#deployment",
|
|
12998
|
-
summary: "Tool names whose file reads are attributed to support files."
|
|
13092
|
+
summary: "Tool names whose file reads are attributed to support files.",
|
|
13093
|
+
why: "internal"
|
|
12999
13094
|
},
|
|
13000
13095
|
{
|
|
13001
13096
|
id: "install.mode",
|
|
@@ -13005,7 +13100,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
13005
13100
|
owner: "scripts",
|
|
13006
13101
|
applies: "restart",
|
|
13007
13102
|
docAnchor: "PARAMETERS.md#deployment",
|
|
13008
|
-
summary: "Install target plane (values host / agent / layered / oneclick; the `layered` form uses the generated preset, the others mount the bundle at profile root)."
|
|
13103
|
+
summary: "Install target plane (values host / agent / layered / oneclick; the `layered` form uses the generated preset, the others mount the bundle at profile root).",
|
|
13104
|
+
why: "install"
|
|
13009
13105
|
},
|
|
13010
13106
|
{
|
|
13011
13107
|
id: "install.basePreset",
|
|
@@ -13015,7 +13111,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
13015
13111
|
owner: "scripts",
|
|
13016
13112
|
applies: "restart",
|
|
13017
13113
|
docAnchor: "PARAMETERS.md#deployment",
|
|
13018
|
-
summary: "Agent-preset base the layered install composes from (--base)."
|
|
13114
|
+
summary: "Agent-preset base the layered install composes from (--base).",
|
|
13115
|
+
why: "install"
|
|
13019
13116
|
},
|
|
13020
13117
|
{
|
|
13021
13118
|
id: "install.home",
|
|
@@ -13025,7 +13122,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
13025
13122
|
owner: "scripts",
|
|
13026
13123
|
applies: "restart",
|
|
13027
13124
|
docAnchor: "PARAMETERS.md#deployment",
|
|
13028
|
-
summary: "Harness home the installer writes into (--home)."
|
|
13125
|
+
summary: "Harness home the installer writes into (--home).",
|
|
13126
|
+
why: "install"
|
|
13029
13127
|
},
|
|
13030
13128
|
{
|
|
13031
13129
|
id: "install.presetRowOverrides",
|
|
@@ -13035,7 +13133,8 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
13035
13133
|
owner: "scripts",
|
|
13036
13134
|
applies: "restart",
|
|
13037
13135
|
docAnchor: "PARAMETERS.md#deployment",
|
|
13038
|
-
summary: "Preset row overrides the installer injects (row-overrides.json)."
|
|
13136
|
+
summary: "Preset row overrides the installer injects (row-overrides.json).",
|
|
13137
|
+
why: "install"
|
|
13039
13138
|
}
|
|
13040
13139
|
]);
|
|
13041
13140
|
/** The settings namespace each OWNER PACKAGE registers (design §7.2).
|
|
@@ -13050,7 +13149,9 @@ const PARAM_NAMESPACES = Object.freeze({
|
|
|
13050
13149
|
"memory-files": "evolution-memory",
|
|
13051
13150
|
"tool-memory": "evolution-tool-memory",
|
|
13052
13151
|
"evolution-curator": "evolution-curator",
|
|
13053
|
-
"tool-skill-manage": "evolution-skills"
|
|
13152
|
+
"tool-skill-manage": "evolution-skills",
|
|
13153
|
+
"evolution-approval": "evolution-approval",
|
|
13154
|
+
"evolution-commands": "evolution-commands"
|
|
13054
13155
|
});
|
|
13055
13156
|
/**
|
|
13056
13157
|
* The rows whose settings namespace CHANGED with the platform-line move (G3): the
|
|
@@ -13340,6 +13441,114 @@ async function applyNamespaceMigration(plan, deps) {
|
|
|
13340
13441
|
};
|
|
13341
13442
|
}
|
|
13342
13443
|
//#endregion
|
|
13444
|
+
//#region lib/types/live.js
|
|
13445
|
+
/**
|
|
13446
|
+
* The family's ONE live-config reader.
|
|
13447
|
+
*
|
|
13448
|
+
* A config field reaches a plugin in two shapes: the platform's schema parser turns a
|
|
13449
|
+
* `.volatile()` declaration into a live reference (`{ get() }`, routed through cosmokit's
|
|
13450
|
+
* `createVolatile`), while a hand-built or pre-parse config carries the plain value. Reading a
|
|
13451
|
+
* live reference as if it were a value is SILENT (a boolean compare is simply never true, a
|
|
13452
|
+
* number folds as NaN) — so the two shapes are unwrapped in exactly one place here, and every
|
|
13453
|
+
* reader below goes through it.
|
|
13454
|
+
*
|
|
13455
|
+
* This module owns no policy: clamping semantics stay in `clampedNumber` (numeric.ts), and the
|
|
13456
|
+
* once-per-key warning text/rhythm is the one `clampOnce` has always had (it moved here so the
|
|
13457
|
+
* read happens in one place; callers import it from the package barrel, so the move is invisible).
|
|
13458
|
+
*
|
|
13459
|
+
* @module @lmzhen/dsh-evolution-core
|
|
13460
|
+
*/
|
|
13461
|
+
/**
|
|
13462
|
+
* Unwrap a live reference; return a plain value unchanged. The ONLY place that decides the shape.
|
|
13463
|
+
*
|
|
13464
|
+
* The discriminant is `typeof get === 'function'` rather than a bare `typeof value === 'object'`: a
|
|
13465
|
+
* config field may legitimately carry an object (a policy record), and calling `.get()` on that
|
|
13466
|
+
* used to throw where a plain read was meant.
|
|
13467
|
+
*
|
|
13468
|
+
* @param value - the field as supplied: live reference, plain value, or absent.
|
|
13469
|
+
* @returns the plain value, or `undefined` when the reference/field is absent.
|
|
13470
|
+
*/
|
|
13471
|
+
function unwrapLive(value) {
|
|
13472
|
+
const raw = value;
|
|
13473
|
+
if (typeof raw !== "object" || raw === null) return raw === void 0 ? void 0 : raw;
|
|
13474
|
+
const candidate = raw;
|
|
13475
|
+
return typeof candidate.get === "function" ? candidate.get.call(raw) : raw;
|
|
13476
|
+
}
|
|
13477
|
+
/**
|
|
13478
|
+
* Read a numeric knob (live or plain) and clamp it, warning ONCE per key.
|
|
13479
|
+
*
|
|
13480
|
+
* @param value - the field as supplied: live reference, plain value, or absent.
|
|
13481
|
+
* @param fallback - the package default an invalid value falls back to.
|
|
13482
|
+
* @param opts - bounds plus the optional warning triple.
|
|
13483
|
+
* @returns the value the engine may use.
|
|
13484
|
+
*/
|
|
13485
|
+
function liveNumber(value, fallback, opts = {}) {
|
|
13486
|
+
const current = unwrapLive(value);
|
|
13487
|
+
const { min, max } = opts;
|
|
13488
|
+
const result = clampedNumber(current, fallback, min === void 0 ? max === void 0 ? void 0 : { max } : max === void 0 ? { min } : {
|
|
13489
|
+
min,
|
|
13490
|
+
max
|
|
13491
|
+
});
|
|
13492
|
+
const name = opts.name;
|
|
13493
|
+
if (current !== void 0 && result !== current && name !== void 0 && opts.warn !== void 0) {
|
|
13494
|
+
const warned = opts.warned ?? /* @__PURE__ */ new Set();
|
|
13495
|
+
if (!warned.has(name)) {
|
|
13496
|
+
warned.add(name);
|
|
13497
|
+
opts.warn(`${name} provided an invalid value; falling back to the default`);
|
|
13498
|
+
}
|
|
13499
|
+
}
|
|
13500
|
+
return result;
|
|
13501
|
+
}
|
|
13502
|
+
/**
|
|
13503
|
+
* Clamp one numeric knob and warn ONCE per key — the pre-0.22 signature, kept as a thin adapter so
|
|
13504
|
+
* existing callers migrate one at a time instead of in one commit.
|
|
13505
|
+
*
|
|
13506
|
+
* @param warned - the keys this caller already warned about.
|
|
13507
|
+
* @param warn - the warning sink (each package prefixes its own name).
|
|
13508
|
+
* @param name - the config key, for the warning.
|
|
13509
|
+
* @param value - the value as supplied, or its live reference.
|
|
13510
|
+
* @param fallback - the package default a corrected value falls back to.
|
|
13511
|
+
* @param min - the smallest value the engine can act on.
|
|
13512
|
+
* @param max - the largest value the carrier can hold, when bounded.
|
|
13513
|
+
* @returns the value the engine may use.
|
|
13514
|
+
*/
|
|
13515
|
+
function clampOnce(warned, warn, name, value, fallback, min, max) {
|
|
13516
|
+
return liveNumber(value, fallback, {
|
|
13517
|
+
min,
|
|
13518
|
+
...max === void 0 ? {} : { max },
|
|
13519
|
+
warned,
|
|
13520
|
+
warn,
|
|
13521
|
+
name
|
|
13522
|
+
});
|
|
13523
|
+
}
|
|
13524
|
+
/**
|
|
13525
|
+
* Read a boolean flag (live or plain). Absent ⇒ `fallback` (default `false`).
|
|
13526
|
+
*
|
|
13527
|
+
* The boolean counterpart of {@link liveNumber}: `value === true` is never true for a live
|
|
13528
|
+
* reference, which is the silent failure this reader exists to prevent.
|
|
13529
|
+
*/
|
|
13530
|
+
function liveBool(value, fallback = false) {
|
|
13531
|
+
return unwrapLive(value) ?? fallback;
|
|
13532
|
+
}
|
|
13533
|
+
/**
|
|
13534
|
+
* Read a string (live or plain). Blank/whitespace counts as unset — the same rule `evolutionRoot` uses
|
|
13535
|
+
* for `DSH_HOME`.
|
|
13536
|
+
*/
|
|
13537
|
+
function liveString(value, fallback) {
|
|
13538
|
+
const current = unwrapLive(value)?.trim();
|
|
13539
|
+
return current === void 0 || current.length === 0 ? fallback : current;
|
|
13540
|
+
}
|
|
13541
|
+
/**
|
|
13542
|
+
* Read an enumerated string (live or plain); a value outside `allowed` falls back.
|
|
13543
|
+
*
|
|
13544
|
+
* Used for the mode-like knobs (review mode, trigger, citation policy, write-confirm mode) where a
|
|
13545
|
+
* bare `?? default` would accept a typo the schema never saw.
|
|
13546
|
+
*/
|
|
13547
|
+
function liveEnum(value, allowed, fallback) {
|
|
13548
|
+
const current = unwrapLive(value);
|
|
13549
|
+
return current !== void 0 && allowed.includes(current) ? current : fallback;
|
|
13550
|
+
}
|
|
13551
|
+
//#endregion
|
|
13343
13552
|
//#region lib/types/opt-in.js
|
|
13344
13553
|
/**
|
|
13345
13554
|
* Tool names only a session that mounted the family's MODEL rows can see.
|
|
@@ -13480,4 +13689,4 @@ function foldUntrustedLines(text, limit) {
|
|
|
13480
13689
|
return limit > 0 ? marked.slice(0, limit) : marked;
|
|
13481
13690
|
}
|
|
13482
13691
|
//#endregion
|
|
13483
|
-
export { AGENT_PRESET_PACKAGE, AGENT_PRESET_ROOT_HINT, ALIVE_LOCK_TAKEOVER_MS, AUTHORING_DESCRIPTION_BAR, AUTHORING_SPLIT_LINE_CHARS, BASELINE_ACTION, CITATION_SUPPORT_DIRS, COMBINED_REVIEW_PLAN_PROMPT, COMBINED_REVIEW_PROMPT, COMPLETION_SKILL_REVIEW_PROMPT, CONTENT_SPLIT_HINT, COST_ASCII_TOKEN_HIGH, COST_ASCII_TOKEN_LOW, COST_CJK_TOKEN_HIGH, COST_CJK_TOKEN_LOW, CURATOR_DRY_RUN_BANNER, CURATOR_PROMPT, DEAD_LOCK_TAKEOVER_MS, DEDUP_MAX_PAIR_COMPARISONS, DEDUP_SIMILARITY_THRESHOLD, DEFAULT_ARCHIVE_AFTER_DAYS, DEFAULT_ARCHIVE_RETENTION_POLICY, DEFAULT_CITATION_POLICY, DEFAULT_CITATION_REF_BUDGET, DEFAULT_CONSOLIDATION_FAILURES, DEFAULT_CURATOR_BOOT_GRACE_SECONDS, DEFAULT_CURATOR_INTERVAL_HOURS, DEFAULT_CURATOR_MODEL, DEFAULT_CURATOR_REVIEW_MAX_TOKENS, DEFAULT_HEALTH_THRESHOLDS, DEFAULT_MAX_OPS_PER_PLAN, DEFAULT_MEMORY_CHAR_LIMIT, DEFAULT_MEMORY_REVIEW_MODEL, DEFAULT_MIN_IDLE_HOURS, DEFAULT_MUTATION_CAP, DEFAULT_PROBE_TIMEOUT_MS, DEFAULT_REFERENCE_REWRITE_POLICY, DEFAULT_REVIEW_CONTEXT_MESSAGES, DEFAULT_REVIEW_MEMORY_INTERVAL, DEFAULT_REVIEW_MESSAGE_CHARS, DEFAULT_REVIEW_SKILL_INTERVAL, DEFAULT_REVIEW_TIMEOUT_MS, DEFAULT_RUN_RECORDS, DEFAULT_SKILL_CONTENT_CHARS, DEFAULT_SKILL_LIMITS, DEFAULT_SKILL_REVIEW_COMPLETION_MIN_TOOL_CALLS, DEFAULT_SKILL_REVIEW_MODEL, DEFAULT_SKILL_REVIEW_TRIGGER, DEFAULT_SKILL_VERSION_KEEP, DEFAULT_STALE_AFTER_DAYS, DEFAULT_SUBSTANTIVE_MIN_AGENT_CHARS, DEFAULT_SUBSTANTIVE_MIN_TOOL_CALLS, DEFAULT_SUBSTANTIVE_MIN_USER_CHARS, DEFAULT_SUPPORT_FILE_CHAR_POLICY, DEFAULT_SUPPORT_READ_TOOL_NAMES, DEFAULT_THREAT_MAX_SCAN_CHARS, DEFAULT_USER_CHAR_LIMIT, DISPATCH_EVENT_TYPES, DRIFT_MAX_LINE_CHARS, DRIFT_SIGNALS_VERSION, DRIFT_SIGNAL_NOUNS, DSH_AUTHORING_STANDARDS, EMPTY_LOCK_TAKEOVER_MS, EMPTY_PATCH_SEED, ENTRY_DELIMITER, EVENT_ARCHIVE_PREFIX, EVENT_LOG_RETAIN_ARCHIVES, EVENT_LOG_ROTATE_AT, EVENT_LOG_VERSION, EVOLUTION_ERRORS, EVOLUTION_WRITE_TOOLS, EvolutionGateSet, FAMILY_SESSION_TOOL_NAMES, FORBIDDEN_CONTROL_KEYS, FUZZY_MAX_PATTERN_CHARS, FUZZY_MAX_WORK, HEALTH_STAMP_RE, HISTORY_DIR, HISTORY_INDEX_VERSION, HOOK_LINE_RE, INSTANCE_KEYS, KEEP_LINE_RE, LOCK_BODY_RE, LOCK_SUFFIX, LOCK_TEAR_TAKEOVER_MS, LONG_RUNS, LOW_QUALITY_THRESHOLD, LostWriteLock, MAINTAIN_OUTPUT_INSTRUCTION, MAINTAIN_PROMPT, MAX_DESCRIPTION_LENGTH, MAX_REQUEST_BODY_BYTES, MAX_RESTRUCTURE_MOVES, MAX_SKILL_CONTENT_CHARS, MAX_SKILL_FILE_BYTES, MAX_SKILL_NAME_LENGTH, MAX_SUPPORT_READ_PATHS, MAX_TIMER_DELAY_MS, MEMORY_GUIDANCE_SECTION_ORDER, MEMORY_REVIEW_PROMPT, MIN_STAMP_BODY_CHARS, MUTATIONS_FILE_VERSION, MemoryStore, NAMESPACE_MIGRATIONS, NATIVE_CALL_EVENT, NATIVE_RESULT_EVENT, PARAM_ALIASES, PARAM_EXPOSURE, PARAM_GROUP_LABELS, PARAM_NAMESPACES, PATTERN_OVERLAP, PLATFORM_CATALOG_DESCRIPTION_DEFAULT, PLATFORM_ESTIMATE_CHARS_PER_TOKEN, PLATFORM_SERVICE_PROBES, POLICY_STAGE_DEFAULTS, PROMPT_BUNDLE, PROMPT_BUNDLE_ID, PROMPT_BUNDLE_VERSION, PROTECTED_BUILTIN_SKILLS, PTC_DISPATCH_EVENT, PTC_DISPATCH_START_EVENT, QUALITY_WEIGHTS, READ_REQUIRED_ACTIONS, RESTRUCTURE_TARGET_RE, RETENTION_FEEDBACK_KEEP_RATIO, RETENTION_FEEDBACK_MIN_CHARS, RUNS_SCHEMA_VERSION, SKILLS_GUIDANCE, SKILLS_GUIDANCE_SECTION_ORDER, SKILL_ACTION_REQUIRED_FIELDS, SKILL_NAME_RE, SKILL_REVIEW_PLAN_PROMPT, SKILL_REVIEW_PROMPT, SNAPSHOT_EXTRA_NAME_RE, SUMMARY_DUPLICATE_HINT_THRESHOLD, SUPPORT_DIRS, SUPPRESSED_FILE_VERSION, SkillLibrary, TEXT_DIFF_MAX_CHARS, TEXT_DIFF_MAX_LINES, THREAT_EXEMPTION_HINT, TOKEN_ASCII_WEIGHT, TOKEN_CJK_WEIGHT, ToolDispatchNormalizer, ToolDispatchPayloadError, UNTRUSTED_LINE_BREAK, UNTRUSTED_LINE_MARK, UPSTREAM_LIMIT_CHARS_PER_TOKEN, VERSION_SUMMARY_MAX_CHARS, absentHostServices, advanceReview, affinity, ageCopyKey, allowRowCollisions, anchorVerdict, appendEvolutionEvent, applyCuratorLifecycleFields, applyCuratorMetaFields, applyNamespaceMigration, applyReferenceRewrite, assertDispatchPayload, assertSkillsRootAliasRetired, assessStructureHealth, authoringFeedback, basePresetPlugins, blobPath, bodyCost, buildCuratorRunReport, buildLearnPrompt, bumpPatch, bumpSupportRead, bumpUse, bumpView, callingScope, canonicalWriteId, claimInstance, clampOnce, clampedNumber, classifyNamespaceMigration, clearReviewChannel, collectReadSkillNames, composePresetComposition, composePresetEntry, composePresetInsert, composePresetRow, computeDedupGroups, computeDriftSignals, computeLifecycleTransitions, computePrefixClusters, computeQualityScores, computeScopeView, contentHash, contentRetentionFeedback, countDispatches, createGateSet, daysSinceIso, decideTakeover, declaredReportStamp, describeReferenceRewrite, dispatchKeyOf, dispatchStepOf, displayBodyOf, duplicateHeadings, elapsedSince, emptyRecord, entryTarget, errorText, evaluateThreat, eventsFile, evidenceKindIndex, evolutionActivityProjection, evolutionEventPayloadIssue, evolutionEvidenceProjection, evolutionHome, evolutionIoAdapter, evolutionReadsProjection, evolutionRoot, evolutionSignalsProjection, filterUnreadSkillOps, findDriftSignal, foldCuratorFields, foldToolDispatches, foldTurnEvent, foldTurnEvents, foldUntrustedLines, frontmatterBlock, frontmatterCatalogInvalid, fuzzyPatch, getRecord, historyIndexFile, historyRoot, identity, idleDays, initialTurnFold, installEvolutionProjections, instanceClaimKey, instanceClaimedWriteSites, instanceHolder, isAbsent, isBookkeepingFrame, isCommittedWarning, isDeprecatedParamId, isFileShapedPath, isLoopbackRequest, isMissingPath, isPresent, isProcessAlive, isProgramToolName, isReviewChannelSession, isSkillReadToolName, isSkillToolName, isUnknown, isUnreadWrite, latestActivityAt, latestVersionAt, lifecycleCandidate, listEventArchives, loadMutations, loadRowOverrides, loadSuppressedNames, loadUsage, loadVersionContent, loadVersions, makeSerialQueue, mapProbe, markAgentCreated, markReviewChannel, markerEntryName, memoryRoot, mergePresetRow, missingSupportPointers, mutateUsage, mutationsFile, narrowNameMatches, nearDuplicateSummaries, neutralizePromptVariables, newRunRegistry, newSkillLibrary, nextHistoryIndex, nodeEvolutionIo, normalizeFrontmatter, normalizeUsageRecord, normalizeVersionSummary, observeEvent, orderVersions, overlongLines, paramNamespace, paramRowId, paramSettingsId, parseCuratorNominations, parseEvolutionEvents, parseFrontmatter, parseHistoryIndex, parseLockBody, partitionVersions, payloadText, pendingSelfCleanup, persistedWriteSite, persistedWriteSites, pickWithPolicy, planNamespaceMigration, planReferenceRewrite, planRehoming, policyStageLimits, presetPatchText, presetRowBlock, presetRowBody, presetRowId, probeAbsent, probeList, probeMtime, probePresent, probeReason, probeText, probeUnknown, projectionText, readDispatchSignal, readEvolutionEvents, readEvolutionTimeline, readHistoryIndex, readJsonBody, readJsonObject, readNumberParam, readParam, readingStats, recordMutation, recordVersions, redactSecrets, relatedSkillNames, releaseInstance, removePresetRow, renameWithRetry, renderCuratorReportMarkdown, renderLongRunTable, reportTime, reportsSweepLockTarget, resolveBasePresetPatch, resolveCitations, resolveExecOrigins, resolveOrigins, resolveParamId, resolveRootConfig, resolveSkillsRoot, retainEventArchives, retirementReport, reviewPrompt, runsFile, saveSuppressedNames, saveUsage, scanBodyHooks, scanContentThreats, scanMemoryThreats, scanThreats, scopedProbeReport, sessionAudited, sessionEvidenceIndex, sessionLastEventTime, sessionReadNames, sessionReadSkillNames, sessionSeesFamilyTools, sessionTurnSignals, skillReadNameOf, skillRowCells, skillStateKey, skillsRoot, supportFileReadOf, suppressedFile, sweepReports, sweepReviewChannelSessions, textDiffFacts, tokenLineFor, transactIo, transactTaskGuard, trimPatternBoundaries, unhookedSupportPointers, updateSuppressedNames, usageFile, usageObserved, userSetKeys, validateFrontmatter, validateRestructureTarget, valueOr, verifyPromptBundle, versionActionKind, versionRowCells, versionSummaryPrompt, versionTarget, vocabulary, writeDurableTmp, writeJson, yamlPlainScalarNeedsQuotes };
|
|
13692
|
+
export { AGENT_PRESET_PACKAGE, AGENT_PRESET_ROOT_HINT, ALIVE_LOCK_TAKEOVER_MS, AUTHORING_DESCRIPTION_BAR, AUTHORING_SPLIT_LINE_CHARS, BASELINE_ACTION, CITATION_SUPPORT_DIRS, COMBINED_REVIEW_PLAN_PROMPT, COMBINED_REVIEW_PROMPT, COMPLETION_SKILL_REVIEW_PROMPT, CONTENT_SPLIT_HINT, COST_ASCII_TOKEN_HIGH, COST_ASCII_TOKEN_LOW, COST_CJK_TOKEN_HIGH, COST_CJK_TOKEN_LOW, CURATOR_DRY_RUN_BANNER, CURATOR_PROMPT, DEAD_LOCK_TAKEOVER_MS, DEDUP_MAX_PAIR_COMPARISONS, DEDUP_SIMILARITY_THRESHOLD, DEFAULT_ARCHIVE_AFTER_DAYS, DEFAULT_ARCHIVE_RETENTION_POLICY, DEFAULT_CITATION_POLICY, DEFAULT_CITATION_REF_BUDGET, DEFAULT_CONSOLIDATION_FAILURES, DEFAULT_CURATOR_BOOT_GRACE_SECONDS, DEFAULT_CURATOR_INTERVAL_HOURS, DEFAULT_CURATOR_MODEL, DEFAULT_CURATOR_REVIEW_MAX_TOKENS, DEFAULT_HEALTH_THRESHOLDS, DEFAULT_MAX_OPS_PER_PLAN, DEFAULT_MEMORY_CHAR_LIMIT, DEFAULT_MEMORY_REVIEW_MODEL, DEFAULT_MIN_IDLE_HOURS, DEFAULT_MUTATION_CAP, DEFAULT_PROBE_TIMEOUT_MS, DEFAULT_REFERENCE_REWRITE_POLICY, DEFAULT_REVIEW_CONTEXT_MESSAGES, DEFAULT_REVIEW_MEMORY_INTERVAL, DEFAULT_REVIEW_MESSAGE_CHARS, DEFAULT_REVIEW_SKILL_INTERVAL, DEFAULT_REVIEW_TIMEOUT_MS, DEFAULT_RUN_RECORDS, DEFAULT_SKILL_CONTENT_CHARS, DEFAULT_SKILL_LIMITS, DEFAULT_SKILL_REVIEW_COMPLETION_MIN_TOOL_CALLS, DEFAULT_SKILL_REVIEW_MODEL, DEFAULT_SKILL_REVIEW_TRIGGER, DEFAULT_SKILL_VERSION_KEEP, DEFAULT_STALE_AFTER_DAYS, DEFAULT_SUBSTANTIVE_MIN_AGENT_CHARS, DEFAULT_SUBSTANTIVE_MIN_TOOL_CALLS, DEFAULT_SUBSTANTIVE_MIN_USER_CHARS, DEFAULT_SUPPORT_FILE_CHAR_POLICY, DEFAULT_SUPPORT_READ_TOOL_NAMES, DEFAULT_THREAT_MAX_SCAN_CHARS, DEFAULT_USER_CHAR_LIMIT, DISPATCH_EVENT_TYPES, DRIFT_MAX_LINE_CHARS, DRIFT_SIGNALS_VERSION, DRIFT_SIGNAL_NOUNS, DSH_AUTHORING_STANDARDS, EMPTY_LOCK_TAKEOVER_MS, EMPTY_PATCH_SEED, ENTRY_DELIMITER, EVENT_ARCHIVE_PREFIX, EVENT_LOG_RETAIN_ARCHIVES, EVENT_LOG_ROTATE_AT, EVENT_LOG_VERSION, EVOLUTION_ERRORS, EVOLUTION_WRITE_TOOLS, EvolutionGateSet, FAMILY_SESSION_TOOL_NAMES, FORBIDDEN_CONTROL_KEYS, FUZZY_MAX_PATTERN_CHARS, FUZZY_MAX_WORK, HEALTH_STAMP_RE, HISTORY_DIR, HISTORY_INDEX_VERSION, HOOK_LINE_RE, INSTANCE_KEYS, KEEP_LINE_RE, LOCK_BODY_RE, LOCK_SUFFIX, LOCK_TEAR_TAKEOVER_MS, LONG_RUNS, LOW_QUALITY_THRESHOLD, LostWriteLock, MAINTAIN_OUTPUT_INSTRUCTION, MAINTAIN_PROMPT, MAX_DESCRIPTION_LENGTH, MAX_REQUEST_BODY_BYTES, MAX_RESTRUCTURE_MOVES, MAX_SKILL_CONTENT_CHARS, MAX_SKILL_FILE_BYTES, MAX_SKILL_NAME_LENGTH, MAX_SUPPORT_READ_PATHS, MAX_TIMER_DELAY_MS, MEMORY_GUIDANCE_SECTION_ORDER, MEMORY_REVIEW_PROMPT, MIN_STAMP_BODY_CHARS, MUTATIONS_FILE_VERSION, MemoryStore, NAMESPACE_MIGRATIONS, NATIVE_CALL_EVENT, NATIVE_RESULT_EVENT, PARAM_ALIASES, PARAM_EXPOSURE, PARAM_GROUP_LABELS, PARAM_NAMESPACES, PATTERN_OVERLAP, PLATFORM_CATALOG_DESCRIPTION_DEFAULT, PLATFORM_ESTIMATE_CHARS_PER_TOKEN, PLATFORM_SERVICE_PROBES, POLICY_STAGE_DEFAULTS, PROMPT_BUNDLE, PROMPT_BUNDLE_ID, PROMPT_BUNDLE_VERSION, PROTECTED_BUILTIN_SKILLS, PTC_DISPATCH_EVENT, PTC_DISPATCH_START_EVENT, QUALITY_WEIGHTS, READ_REQUIRED_ACTIONS, RESTRUCTURE_TARGET_RE, RETENTION_FEEDBACK_KEEP_RATIO, RETENTION_FEEDBACK_MIN_CHARS, RUNS_SCHEMA_VERSION, SKILLS_GUIDANCE, SKILLS_GUIDANCE_SECTION_ORDER, SKILL_ACTION_REQUIRED_FIELDS, SKILL_NAME_RE, SKILL_REVIEW_PLAN_PROMPT, SKILL_REVIEW_PROMPT, SNAPSHOT_EXTRA_NAME_RE, SUMMARY_DUPLICATE_HINT_THRESHOLD, SUPPORT_DIRS, SUPPRESSED_FILE_VERSION, SkillLibrary, TEXT_DIFF_MAX_CHARS, TEXT_DIFF_MAX_LINES, THREAT_EXEMPTION_HINT, TOKEN_ASCII_WEIGHT, TOKEN_CJK_WEIGHT, ToolDispatchNormalizer, ToolDispatchPayloadError, UNTRUSTED_LINE_BREAK, UNTRUSTED_LINE_MARK, UPSTREAM_LIMIT_CHARS_PER_TOKEN, VERSION_SUMMARY_MAX_CHARS, absentHostServices, advanceReview, affinity, ageCopyKey, allowRowCollisions, anchorVerdict, appendEvolutionEvent, applyCuratorLifecycleFields, applyCuratorMetaFields, applyNamespaceMigration, applyReferenceRewrite, assertDispatchPayload, assertSkillsRootAliasRetired, assessStructureHealth, authoringFeedback, basePresetPlugins, blobPath, bodyCost, buildCuratorRunReport, buildLearnPrompt, bumpPatch, bumpSupportRead, bumpUse, bumpView, callingScope, canonicalWriteId, claimInstance, clampOnce, clampedNumber, classifyNamespaceMigration, clearReviewChannel, collectReadSkillNames, composePresetComposition, composePresetEntry, composePresetInsert, composePresetRow, computeDedupGroups, computeDriftSignals, computeLifecycleTransitions, computePrefixClusters, computeQualityScores, computeScopeView, contentHash, contentRetentionFeedback, countDispatches, createGateSet, daysSinceIso, decideTakeover, declaredReportStamp, describeReferenceRewrite, dispatchKeyOf, dispatchStepOf, displayBodyOf, duplicateHeadings, elapsedSince, emptyRecord, entryTarget, errorText, evaluateThreat, eventsFile, evidenceKindIndex, evolutionActivityProjection, evolutionEventPayloadIssue, evolutionEvidenceProjection, evolutionHome, evolutionIoAdapter, evolutionReadsProjection, evolutionRoot, evolutionSignalsProjection, filterUnreadSkillOps, findDriftSignal, foldCuratorFields, foldToolDispatches, foldTurnEvent, foldTurnEvents, foldUntrustedLines, frontmatterBlock, frontmatterCatalogInvalid, fuzzyPatch, getRecord, historyIndexFile, historyRoot, identity, idleDays, initialTurnFold, installEvolutionProjections, instanceClaimKey, instanceClaimedWriteSites, instanceHolder, isAbsent, isBookkeepingFrame, isCommittedWarning, isDeprecatedParamId, isFileShapedPath, isLoopbackRequest, isMissingPath, isPresent, isProcessAlive, isProgramToolName, isReviewChannelSession, isSkillReadToolName, isSkillToolName, isUnknown, isUnreadWrite, latestActivityAt, latestVersionAt, lifecycleCandidate, listEventArchives, liveBool, liveEnum, liveNumber, liveString, loadMutations, loadRowOverrides, loadSuppressedNames, loadUsage, loadVersionContent, loadVersions, makeSerialQueue, mapProbe, markAgentCreated, markReviewChannel, markerEntryName, memoryRoot, mergePresetRow, missingSupportPointers, mutateUsage, mutationsFile, narrowNameMatches, nearDuplicateSummaries, neutralizePromptVariables, newRunRegistry, newSkillLibrary, nextHistoryIndex, nodeEvolutionIo, normalizeFrontmatter, normalizeUsageRecord, normalizeVersionSummary, observeEvent, orderVersions, overlongLines, paramNamespace, paramRowId, paramSettingsId, parseCuratorNominations, parseEvolutionEvents, parseFrontmatter, parseHistoryIndex, parseLockBody, partitionVersions, payloadText, pendingSelfCleanup, persistedWriteSite, persistedWriteSites, pickWithPolicy, planNamespaceMigration, planReferenceRewrite, planRehoming, policyStageLimits, presetPatchText, presetRowBlock, presetRowBody, presetRowId, probeAbsent, probeList, probeMtime, probePresent, probeReason, probeText, probeUnknown, projectionText, readDispatchSignal, readEvolutionEvents, readEvolutionTimeline, readHistoryIndex, readJsonBody, readJsonObject, readNumberParam, readParam, readingStats, recordMutation, recordVersions, redactSecrets, relatedSkillNames, releaseInstance, removePresetRow, renameWithRetry, renderCuratorReportMarkdown, renderLongRunTable, reportTime, reportsSweepLockTarget, resolveBasePresetPatch, resolveCitations, resolveExecOrigins, resolveOrigins, resolveParamId, resolveRootConfig, resolveSkillsRoot, retainEventArchives, retirementReport, reviewPrompt, runsFile, saveSuppressedNames, saveUsage, scanBodyHooks, scanContentThreats, scanMemoryThreats, scanThreats, scopedProbeReport, sessionAudited, sessionEvidenceIndex, sessionLastEventTime, sessionReadNames, sessionReadSkillNames, sessionSeesFamilyTools, sessionTurnSignals, skillReadNameOf, skillRowCells, skillStateKey, skillsRoot, supportFileReadOf, suppressedFile, sweepReports, sweepReviewChannelSessions, textDiffFacts, tokenLineFor, transactIo, transactTaskGuard, trimPatternBoundaries, unhookedSupportPointers, unwrapLive, updateSuppressedNames, usageFile, usageObserved, userSetKeys, validateFrontmatter, validateRestructureTarget, valueOr, verifyPromptBundle, versionActionKind, versionRowCells, versionSummaryPrompt, versionTarget, vocabulary, writeDurableTmp, writeJson, writePathSymbols, yamlPlainScalarNeedsQuotes };
|