@lmzhen/dsh-evolution-core 0.6.1 → 0.7.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 +192 -32
- package/lib/types/params.d.ts +19 -0
- package/package.json +1 -1
package/lib/index.js
CHANGED
|
@@ -8923,7 +8923,12 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
8923
8923
|
owner: "evolution-review",
|
|
8924
8924
|
applies: "live",
|
|
8925
8925
|
docAnchor: "PARAMETERS.md#review",
|
|
8926
|
-
summary: "Activity units between skill-review injections."
|
|
8926
|
+
summary: "Activity units between skill-review injections.",
|
|
8927
|
+
label: "技能审查间隔",
|
|
8928
|
+
hint: "每多少活动单位触发一次技能审查注入。",
|
|
8929
|
+
control: "number",
|
|
8930
|
+
unit: "次",
|
|
8931
|
+
values: ""
|
|
8927
8932
|
},
|
|
8928
8933
|
{
|
|
8929
8934
|
id: "reviewMemoryInterval",
|
|
@@ -8933,7 +8938,12 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
8933
8938
|
owner: "evolution-review",
|
|
8934
8939
|
applies: "live",
|
|
8935
8940
|
docAnchor: "PARAMETERS.md#review",
|
|
8936
|
-
summary: "Activity units between memory-review injections."
|
|
8941
|
+
summary: "Activity units between memory-review injections.",
|
|
8942
|
+
label: "记忆审查间隔",
|
|
8943
|
+
hint: "每多少活动单位触发一次记忆审查注入。",
|
|
8944
|
+
control: "number",
|
|
8945
|
+
unit: "次",
|
|
8946
|
+
values: ""
|
|
8937
8947
|
},
|
|
8938
8948
|
{
|
|
8939
8949
|
id: "skillReviewTrigger",
|
|
@@ -8943,7 +8953,12 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
8943
8953
|
owner: "evolution-review",
|
|
8944
8954
|
applies: "live",
|
|
8945
8955
|
docAnchor: "PARAMETERS.md#review",
|
|
8946
|
-
summary: "Which channel may inject a skill review (cadence, completion, both)."
|
|
8956
|
+
summary: "Which channel may inject a skill review (cadence, completion, both).",
|
|
8957
|
+
label: "审查触发通道",
|
|
8958
|
+
hint: "哪个通道可以注入技能审查:cadence=按间隔、completion=按完成、both=两者。",
|
|
8959
|
+
control: "select",
|
|
8960
|
+
unit: "",
|
|
8961
|
+
values: "cadence|completion|both"
|
|
8947
8962
|
},
|
|
8948
8963
|
{
|
|
8949
8964
|
id: "skillReviewCompletionMinToolCalls",
|
|
@@ -8953,7 +8968,12 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
8953
8968
|
owner: "evolution-review",
|
|
8954
8969
|
applies: "live",
|
|
8955
8970
|
docAnchor: "PARAMETERS.md#review",
|
|
8956
|
-
summary: "Tool calls a task needs before the completion channel injects."
|
|
8971
|
+
summary: "Tool calls a task needs before the completion channel injects.",
|
|
8972
|
+
label: "完成通道最少工具调用",
|
|
8973
|
+
hint: "走完成通道时,任务至少经过多少次工具调用才注入。",
|
|
8974
|
+
control: "number",
|
|
8975
|
+
unit: "次",
|
|
8976
|
+
values: ""
|
|
8957
8977
|
},
|
|
8958
8978
|
{
|
|
8959
8979
|
id: "reviewEnabled",
|
|
@@ -8963,7 +8983,12 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
8963
8983
|
owner: "evolution-review",
|
|
8964
8984
|
applies: "live",
|
|
8965
8985
|
docAnchor: "PARAMETERS.md#review",
|
|
8966
|
-
summary: "Master switch for the review plugin."
|
|
8986
|
+
summary: "Master switch for the review plugin.",
|
|
8987
|
+
label: "启用审查插件",
|
|
8988
|
+
hint: "审查插件的总开关。",
|
|
8989
|
+
control: "switch",
|
|
8990
|
+
unit: "",
|
|
8991
|
+
values: ""
|
|
8967
8992
|
},
|
|
8968
8993
|
{
|
|
8969
8994
|
id: "reviewMode",
|
|
@@ -8973,7 +8998,12 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
8973
8998
|
owner: "evolution-review",
|
|
8974
8999
|
applies: "live",
|
|
8975
9000
|
docAnchor: "PARAMETERS.md#review",
|
|
8976
|
-
summary: "Run the review in the parent session (inject) or on a subagent."
|
|
9001
|
+
summary: "Run the review in the parent session (inject) or on a subagent.",
|
|
9002
|
+
label: "审查运行方式",
|
|
9003
|
+
hint: "inject=在父会话内注入,subagent=交给子代理运行。",
|
|
9004
|
+
control: "select",
|
|
9005
|
+
unit: "",
|
|
9006
|
+
values: "subagent|inject"
|
|
8977
9007
|
},
|
|
8978
9008
|
{
|
|
8979
9009
|
id: "reviewWakeInject",
|
|
@@ -8983,7 +9013,12 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
8983
9013
|
owner: "evolution-review",
|
|
8984
9014
|
applies: "live",
|
|
8985
9015
|
docAnchor: "PARAMETERS.md#review",
|
|
8986
|
-
summary: "Deliver the deferred review as a waking follow-up message."
|
|
9016
|
+
summary: "Deliver the deferred review as a waking follow-up message.",
|
|
9017
|
+
label: "审查后续唤醒注入",
|
|
9018
|
+
hint: "把延后的审查作为唤醒消息投递。",
|
|
9019
|
+
control: "switch",
|
|
9020
|
+
unit: "",
|
|
9021
|
+
values: ""
|
|
8987
9022
|
},
|
|
8988
9023
|
{
|
|
8989
9024
|
id: "reviewProvider",
|
|
@@ -9053,7 +9088,12 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
9053
9088
|
owner: "tool-skill-manage",
|
|
9054
9089
|
applies: "live",
|
|
9055
9090
|
docAnchor: "PARAMETERS.md#write-caps",
|
|
9056
|
-
summary: "Character cap on a SKILL.md body (tighten-only)."
|
|
9091
|
+
summary: "Character cap on a SKILL.md body (tighten-only).",
|
|
9092
|
+
label: "SKILL.md 正文字符上限",
|
|
9093
|
+
hint: "SKILL.md 正文的字符上限(只许收紧)。",
|
|
9094
|
+
control: "number",
|
|
9095
|
+
unit: "字符",
|
|
9096
|
+
values: ""
|
|
9057
9097
|
},
|
|
9058
9098
|
{
|
|
9059
9099
|
id: "maxSkillFileBytes",
|
|
@@ -9063,7 +9103,12 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
9063
9103
|
owner: "tool-skill-manage",
|
|
9064
9104
|
applies: "live",
|
|
9065
9105
|
docAnchor: "PARAMETERS.md#write-caps",
|
|
9066
|
-
summary: "Byte cap on one support file (tighten-only)."
|
|
9106
|
+
summary: "Byte cap on one support file (tighten-only).",
|
|
9107
|
+
label: "支持文件字节上限",
|
|
9108
|
+
hint: "单个支持文件的字节上限(只许收紧)。",
|
|
9109
|
+
control: "number",
|
|
9110
|
+
unit: "字节",
|
|
9111
|
+
values: ""
|
|
9067
9112
|
},
|
|
9068
9113
|
{
|
|
9069
9114
|
id: "maxSkillNameLength",
|
|
@@ -9073,7 +9118,12 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
9073
9118
|
owner: "tool-skill-manage",
|
|
9074
9119
|
applies: "live",
|
|
9075
9120
|
docAnchor: "PARAMETERS.md#write-caps",
|
|
9076
|
-
summary: "Character cap on a skill name (tighten-only)."
|
|
9121
|
+
summary: "Character cap on a skill name (tighten-only).",
|
|
9122
|
+
label: "技能名字符上限",
|
|
9123
|
+
hint: "技能名的字符上限(只许收紧)。",
|
|
9124
|
+
control: "number",
|
|
9125
|
+
unit: "字符",
|
|
9126
|
+
values: ""
|
|
9077
9127
|
},
|
|
9078
9128
|
{
|
|
9079
9129
|
id: "maxDescriptionLength",
|
|
@@ -9083,7 +9133,12 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
9083
9133
|
owner: "tool-skill-manage",
|
|
9084
9134
|
applies: "live",
|
|
9085
9135
|
docAnchor: "PARAMETERS.md#write-caps",
|
|
9086
|
-
summary: "Character cap on a skill description (tighten-only)."
|
|
9136
|
+
summary: "Character cap on a skill description (tighten-only).",
|
|
9137
|
+
label: "技能描述字符上限",
|
|
9138
|
+
hint: "技能描述的字符上限(只许收紧)。",
|
|
9139
|
+
control: "number",
|
|
9140
|
+
unit: "字符",
|
|
9141
|
+
values: ""
|
|
9087
9142
|
},
|
|
9088
9143
|
{
|
|
9089
9144
|
id: "descriptionStrict",
|
|
@@ -9093,7 +9148,12 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
9093
9148
|
owner: "tool-skill-manage",
|
|
9094
9149
|
applies: "live",
|
|
9095
9150
|
docAnchor: "PARAMETERS.md#write-caps",
|
|
9096
|
-
summary: "Refuse a description over the authoring bar instead of advising."
|
|
9151
|
+
summary: "Refuse a description over the authoring bar instead of advising.",
|
|
9152
|
+
label: "描述严格档",
|
|
9153
|
+
hint: "描述超过写作门槛时拒绝写入,而不是只提示。",
|
|
9154
|
+
control: "switch",
|
|
9155
|
+
unit: "",
|
|
9156
|
+
values: ""
|
|
9097
9157
|
},
|
|
9098
9158
|
{
|
|
9099
9159
|
id: "strictCrossSource",
|
|
@@ -9103,7 +9163,12 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
9103
9163
|
owner: "tool-skill-manage",
|
|
9104
9164
|
applies: "live",
|
|
9105
9165
|
docAnchor: "PARAMETERS.md#write-caps",
|
|
9106
|
-
summary: "Refuse writes whose catalog entry resolves outside the family."
|
|
9166
|
+
summary: "Refuse writes whose catalog entry resolves outside the family.",
|
|
9167
|
+
label: "跨源严格档",
|
|
9168
|
+
hint: "目录项解析到家族之外时拒绝写入。",
|
|
9169
|
+
control: "switch",
|
|
9170
|
+
unit: "",
|
|
9171
|
+
values: ""
|
|
9107
9172
|
},
|
|
9108
9173
|
{
|
|
9109
9174
|
id: "citationPolicy",
|
|
@@ -9113,7 +9178,12 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
9113
9178
|
owner: "tool-skill-manage",
|
|
9114
9179
|
applies: "live",
|
|
9115
9180
|
docAnchor: "PARAMETERS.md#write-caps",
|
|
9116
|
-
summary: "Refuse a move that would leave a dangling reference, or verify it."
|
|
9181
|
+
summary: "Refuse a move that would leave a dangling reference, or verify it.",
|
|
9182
|
+
label: "引用校验档",
|
|
9183
|
+
hint: "移动或合并时对引用的处置:verify=校验、refuse=直接拒绝。",
|
|
9184
|
+
control: "select",
|
|
9185
|
+
unit: "",
|
|
9186
|
+
values: "verify|refuse"
|
|
9117
9187
|
},
|
|
9118
9188
|
{
|
|
9119
9189
|
id: "referenceRewrite",
|
|
@@ -9143,7 +9213,12 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
9143
9213
|
owner: "tool-skill-manage",
|
|
9144
9214
|
applies: "live",
|
|
9145
9215
|
docAnchor: "PARAMETERS.md#write-caps",
|
|
9146
|
-
summary: "Warn about an oversize support file, or refuse the write."
|
|
9216
|
+
summary: "Warn about an oversize support file, or refuse the write.",
|
|
9217
|
+
label: "支持文件超限档",
|
|
9218
|
+
hint: "支持文件超出字符上限时:report=只报告、enforce=拒写。",
|
|
9219
|
+
control: "select",
|
|
9220
|
+
unit: "",
|
|
9221
|
+
values: "report|enforce"
|
|
9147
9222
|
},
|
|
9148
9223
|
{
|
|
9149
9224
|
id: "memoryChars",
|
|
@@ -9153,7 +9228,12 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
9153
9228
|
owner: "memory-files",
|
|
9154
9229
|
applies: "live",
|
|
9155
9230
|
docAnchor: "PARAMETERS.md#memory",
|
|
9156
|
-
summary: "Character budget the memory store enforces for MEMORY.md."
|
|
9231
|
+
summary: "Character budget the memory store enforces for MEMORY.md.",
|
|
9232
|
+
label: "MEMORY.md 字符预算",
|
|
9233
|
+
hint: "memory 存储对 MEMORY.md 的字符上限。",
|
|
9234
|
+
control: "number",
|
|
9235
|
+
unit: "字符",
|
|
9236
|
+
values: ""
|
|
9157
9237
|
},
|
|
9158
9238
|
{
|
|
9159
9239
|
id: "userChars",
|
|
@@ -9163,7 +9243,12 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
9163
9243
|
owner: "memory-files",
|
|
9164
9244
|
applies: "live",
|
|
9165
9245
|
docAnchor: "PARAMETERS.md#memory",
|
|
9166
|
-
summary: "Character budget the memory store enforces for USER.md."
|
|
9246
|
+
summary: "Character budget the memory store enforces for USER.md.",
|
|
9247
|
+
label: "USER.md 字符预算",
|
|
9248
|
+
hint: "memory 存储对 USER.md 的字符上限。",
|
|
9249
|
+
control: "number",
|
|
9250
|
+
unit: "字符",
|
|
9251
|
+
values: ""
|
|
9167
9252
|
},
|
|
9168
9253
|
{
|
|
9169
9254
|
id: "memoryEnabled",
|
|
@@ -9183,7 +9268,12 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
9183
9268
|
owner: "tool-memory",
|
|
9184
9269
|
applies: "live",
|
|
9185
9270
|
docAnchor: "PARAMETERS.md#memory",
|
|
9186
|
-
summary: "Characters of one memory entry shown in a tool result preview."
|
|
9271
|
+
summary: "Characters of one memory entry shown in a tool result preview.",
|
|
9272
|
+
label: "条目预览字符数",
|
|
9273
|
+
hint: "单条记忆预览保留多少字符。",
|
|
9274
|
+
control: "number",
|
|
9275
|
+
unit: "字符",
|
|
9276
|
+
values: ""
|
|
9187
9277
|
},
|
|
9188
9278
|
{
|
|
9189
9279
|
id: "addDatePrefix",
|
|
@@ -9193,7 +9283,12 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
9193
9283
|
owner: "memory-files",
|
|
9194
9284
|
applies: "live",
|
|
9195
9285
|
docAnchor: "PARAMETERS.md#memory",
|
|
9196
|
-
summary: "Prefix stored memory entries with their date heading."
|
|
9286
|
+
summary: "Prefix stored memory entries with their date heading.",
|
|
9287
|
+
label: "记忆条目加日期前缀",
|
|
9288
|
+
hint: "写入记忆时为条目加上日期标题。",
|
|
9289
|
+
control: "switch",
|
|
9290
|
+
unit: "",
|
|
9291
|
+
values: ""
|
|
9197
9292
|
},
|
|
9198
9293
|
{
|
|
9199
9294
|
id: "maxConsolidationFailures",
|
|
@@ -9203,7 +9298,12 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
9203
9298
|
owner: "memory-files",
|
|
9204
9299
|
applies: "live",
|
|
9205
9300
|
docAnchor: "PARAMETERS.md#memory",
|
|
9206
|
-
summary: "Consolidation failures one turn tolerates before the tool gives up."
|
|
9301
|
+
summary: "Consolidation failures one turn tolerates before the tool gives up.",
|
|
9302
|
+
label: "合并失败容忍次数",
|
|
9303
|
+
hint: "一轮内合并失败多少次后工具放弃。",
|
|
9304
|
+
control: "number",
|
|
9305
|
+
unit: "次",
|
|
9306
|
+
values: ""
|
|
9207
9307
|
},
|
|
9208
9308
|
{
|
|
9209
9309
|
id: "curatorIntervalHours",
|
|
@@ -9213,7 +9313,12 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
9213
9313
|
owner: "evolution-curator",
|
|
9214
9314
|
applies: "live",
|
|
9215
9315
|
docAnchor: "PARAMETERS.md#curator",
|
|
9216
|
-
summary: "Minimum hours between deterministic curation passes."
|
|
9316
|
+
summary: "Minimum hours between deterministic curation passes.",
|
|
9317
|
+
label: "策展间隔",
|
|
9318
|
+
hint: "两次确定性策展之间至少间隔多少小时。",
|
|
9319
|
+
control: "number",
|
|
9320
|
+
unit: "小时",
|
|
9321
|
+
values: ""
|
|
9217
9322
|
},
|
|
9218
9323
|
{
|
|
9219
9324
|
id: "staleAfterDays",
|
|
@@ -9223,7 +9328,12 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
9223
9328
|
owner: "evolution-curator",
|
|
9224
9329
|
applies: "live",
|
|
9225
9330
|
docAnchor: "PARAMETERS.md#curator",
|
|
9226
|
-
summary: "Inactive days before a skill counts as stale."
|
|
9331
|
+
summary: "Inactive days before a skill counts as stale.",
|
|
9332
|
+
label: "判为陈旧的天数",
|
|
9333
|
+
hint: "技能多少天没被使用即算陈旧。",
|
|
9334
|
+
control: "number",
|
|
9335
|
+
unit: "天",
|
|
9336
|
+
values: ""
|
|
9227
9337
|
},
|
|
9228
9338
|
{
|
|
9229
9339
|
id: "archiveAfterDays",
|
|
@@ -9233,7 +9343,12 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
9233
9343
|
owner: "evolution-curator",
|
|
9234
9344
|
applies: "live",
|
|
9235
9345
|
docAnchor: "PARAMETERS.md#curator",
|
|
9236
|
-
summary: "Inactive days before a stale skill is archived (must be >= staleAfterDays)."
|
|
9346
|
+
summary: "Inactive days before a stale skill is archived (must be >= staleAfterDays).",
|
|
9347
|
+
label: "归档天数",
|
|
9348
|
+
hint: "陈旧技能再过多少天归档(须 ≥ 判为陈旧的天数)。",
|
|
9349
|
+
control: "number",
|
|
9350
|
+
unit: "天",
|
|
9351
|
+
values: ""
|
|
9237
9352
|
},
|
|
9238
9353
|
{
|
|
9239
9354
|
id: "qualityWarnStaleAfterDays",
|
|
@@ -9243,7 +9358,12 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
9243
9358
|
owner: "evolution-curator",
|
|
9244
9359
|
applies: "live",
|
|
9245
9360
|
docAnchor: "PARAMETERS.md#curator",
|
|
9246
|
-
summary: "Age at which a low quality score starts warning."
|
|
9361
|
+
summary: "Age at which a low quality score starts warning.",
|
|
9362
|
+
label: "低质量告警天数",
|
|
9363
|
+
hint: "质量分偏低时从多少天开始告警。",
|
|
9364
|
+
control: "number",
|
|
9365
|
+
unit: "天",
|
|
9366
|
+
values: ""
|
|
9247
9367
|
},
|
|
9248
9368
|
{
|
|
9249
9369
|
id: "minIdleHours",
|
|
@@ -9253,7 +9373,12 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
9253
9373
|
owner: "evolution-curator",
|
|
9254
9374
|
applies: "live",
|
|
9255
9375
|
docAnchor: "PARAMETERS.md#curator",
|
|
9256
|
-
summary: "Idle hours required before an automatic curation pass runs."
|
|
9376
|
+
summary: "Idle hours required before an automatic curation pass runs.",
|
|
9377
|
+
label: "空闲门槛",
|
|
9378
|
+
hint: "至少空闲多少小时才跑自动策展。",
|
|
9379
|
+
control: "number",
|
|
9380
|
+
unit: "小时",
|
|
9381
|
+
values: ""
|
|
9257
9382
|
},
|
|
9258
9383
|
{
|
|
9259
9384
|
id: "minIdleFailOpen",
|
|
@@ -9263,7 +9388,12 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
9263
9388
|
owner: "evolution-curator",
|
|
9264
9389
|
applies: "live",
|
|
9265
9390
|
docAnchor: "PARAMETERS.md#curator",
|
|
9266
|
-
summary: "Let the idle gate open when the activity probe is unavailable."
|
|
9391
|
+
summary: "Let the idle gate open when the activity probe is unavailable.",
|
|
9392
|
+
label: "空闲探针失败时放行",
|
|
9393
|
+
hint: "活动探针不可用时,是否让空闲门槛直接放行。",
|
|
9394
|
+
control: "switch",
|
|
9395
|
+
unit: "",
|
|
9396
|
+
values: ""
|
|
9267
9397
|
},
|
|
9268
9398
|
{
|
|
9269
9399
|
id: "llmReview",
|
|
@@ -9273,7 +9403,12 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
9273
9403
|
owner: "evolution-curator",
|
|
9274
9404
|
applies: "live",
|
|
9275
9405
|
docAnchor: "PARAMETERS.md#curator",
|
|
9276
|
-
summary: "Enable the LLM nomination pass on top of the deterministic lifecycle."
|
|
9406
|
+
summary: "Enable the LLM nomination pass on top of the deterministic lifecycle.",
|
|
9407
|
+
label: "启用 LLM 提名",
|
|
9408
|
+
hint: "在确定性生命周期之上再跑一遍 LLM 提名。",
|
|
9409
|
+
control: "switch",
|
|
9410
|
+
unit: "",
|
|
9411
|
+
values: ""
|
|
9277
9412
|
},
|
|
9278
9413
|
{
|
|
9279
9414
|
id: "curatorReviewMaxTokens",
|
|
@@ -9283,7 +9418,12 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
9283
9418
|
owner: "evolution-curator",
|
|
9284
9419
|
applies: "live",
|
|
9285
9420
|
docAnchor: "PARAMETERS.md#curator",
|
|
9286
|
-
summary: "Token budget of the curator LLM review."
|
|
9421
|
+
summary: "Token budget of the curator LLM review.",
|
|
9422
|
+
label: "策展 LLM token 预算",
|
|
9423
|
+
hint: "策展 LLM 审查可用的 token 预算。",
|
|
9424
|
+
control: "number",
|
|
9425
|
+
unit: "token",
|
|
9426
|
+
values: ""
|
|
9287
9427
|
},
|
|
9288
9428
|
{
|
|
9289
9429
|
id: "curatorReviewTimeoutMs",
|
|
@@ -9293,7 +9433,12 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
9293
9433
|
owner: "evolution-curator",
|
|
9294
9434
|
applies: "live",
|
|
9295
9435
|
docAnchor: "PARAMETERS.md#curator",
|
|
9296
|
-
summary: "Wall-clock bound of the curator LLM review."
|
|
9436
|
+
summary: "Wall-clock bound of the curator LLM review.",
|
|
9437
|
+
label: "策展 LLM 超时",
|
|
9438
|
+
hint: "策展 LLM 审查的墙钟上限。",
|
|
9439
|
+
control: "number",
|
|
9440
|
+
unit: "毫秒",
|
|
9441
|
+
values: ""
|
|
9297
9442
|
},
|
|
9298
9443
|
{
|
|
9299
9444
|
id: "healthSoftBodyChars",
|
|
@@ -9303,7 +9448,12 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
9303
9448
|
owner: "evolution-curator",
|
|
9304
9449
|
applies: "live",
|
|
9305
9450
|
docAnchor: "PARAMETERS.md#curator",
|
|
9306
|
-
summary: "Body character line the health view judges against."
|
|
9451
|
+
summary: "Body character line the health view judges against.",
|
|
9452
|
+
label: "正文软带",
|
|
9453
|
+
hint: "健康视图判定正文长度的软带。",
|
|
9454
|
+
control: "number",
|
|
9455
|
+
unit: "字符",
|
|
9456
|
+
values: ""
|
|
9307
9457
|
},
|
|
9308
9458
|
{
|
|
9309
9459
|
id: "healthStampDensityPerKb",
|
|
@@ -9313,7 +9463,12 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
9313
9463
|
owner: "evolution-curator",
|
|
9314
9464
|
applies: "live",
|
|
9315
9465
|
docAnchor: "PARAMETERS.md#curator",
|
|
9316
|
-
summary: "Stamp density per KB that flags log-like content in a body."
|
|
9466
|
+
summary: "Stamp density per KB that flags log-like content in a body.",
|
|
9467
|
+
label: "标记密度阈值",
|
|
9468
|
+
hint: "每 KB 出现多少个时间标记就算「像日志」。",
|
|
9469
|
+
control: "number",
|
|
9470
|
+
unit: "处/KB",
|
|
9471
|
+
values: ""
|
|
9317
9472
|
},
|
|
9318
9473
|
{
|
|
9319
9474
|
id: "healthChurnMinPatches",
|
|
@@ -9323,7 +9478,12 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
9323
9478
|
owner: "evolution-curator",
|
|
9324
9479
|
applies: "live",
|
|
9325
9480
|
docAnchor: "PARAMETERS.md#curator",
|
|
9326
|
-
summary: "Patches without a read that flag a write-ghost skill."
|
|
9481
|
+
summary: "Patches without a read that flag a write-ghost skill.",
|
|
9482
|
+
label: "空写判定补丁数",
|
|
9483
|
+
hint: "多少次改动都没有任何读取,即判为「写幽灵」。",
|
|
9484
|
+
control: "number",
|
|
9485
|
+
unit: "处",
|
|
9486
|
+
values: ""
|
|
9327
9487
|
},
|
|
9328
9488
|
{
|
|
9329
9489
|
id: "evolution-curator.enabled",
|
package/lib/types/params.d.ts
CHANGED
|
@@ -60,6 +60,15 @@ export type ParamAuthority = 'code' | 'cordis' | 'install';
|
|
|
60
60
|
* `applies` is the SETTINGS-side timing: 'none' means the parameter is not
|
|
61
61
|
* writable through the user layer (a cordis.yml change still follows the
|
|
62
62
|
* deployment's patch-reload policy).
|
|
63
|
+
*
|
|
64
|
+
* UI METADATA (0.7.0): every E3 row carries the optional tail
|
|
65
|
+
* `label, hint, control, unit, values` — in that order, directly after
|
|
66
|
+
* `summary`, still one entry per line. E3 is the only tier the settings cards
|
|
67
|
+
* render, so the card's Chinese name, help text, control kind, unit suffix and
|
|
68
|
+
* value domain come from THIS registry and nowhere else; the browser half is
|
|
69
|
+
* generated from this text (`gen-param-client-view.mjs`). Non-E3 rows must NOT
|
|
70
|
+
* carry the tail (there is no UI surface for them), and `control: 'select'`
|
|
71
|
+
* requires a non-empty pipe-joined `values`.
|
|
63
72
|
*/
|
|
64
73
|
export interface ParamExposure {
|
|
65
74
|
id: string;
|
|
@@ -70,6 +79,16 @@ export interface ParamExposure {
|
|
|
70
79
|
applies: 'live' | 'restart' | 'none';
|
|
71
80
|
docAnchor: string;
|
|
72
81
|
summary: string;
|
|
82
|
+
/** Card label (Chinese, short). Required on E3 rows. */
|
|
83
|
+
label?: string;
|
|
84
|
+
/** Card help text (Chinese, one sentence). Required on E3 rows. */
|
|
85
|
+
hint?: string;
|
|
86
|
+
/** Which control the card renders for this field. Required on E3 rows. */
|
|
87
|
+
control?: 'number' | 'switch' | 'select' | 'text';
|
|
88
|
+
/** Unit suffix shown next to a number (empty when it carries none). */
|
|
89
|
+
unit?: string;
|
|
90
|
+
/** Pipe-joined allowed values; non-empty exactly when control is 'select'. */
|
|
91
|
+
values?: string;
|
|
73
92
|
}
|
|
74
93
|
/**
|
|
75
94
|
* The parameter registry. G1/S1.1 seeds it with the review group (G-C); the
|
package/package.json
CHANGED