@lmzhen/dsh-evolution-core 0.28.0 → 0.29.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
CHANGED
|
@@ -7057,7 +7057,7 @@ function renderLongRunTable() {
|
|
|
7057
7057
|
* `client` probes run in the browser half, where the host has no view of the seats.
|
|
7058
7058
|
* @module @lmzhen/dsh-evolution-core
|
|
7059
7059
|
*/
|
|
7060
|
-
/** The
|
|
7060
|
+
/** The 26 probes, in service-name order (the guard checks this list against the tree). */
|
|
7061
7061
|
const PLATFORM_SERVICE_PROBES = Object.freeze([
|
|
7062
7062
|
{
|
|
7063
7063
|
service: "agents",
|
|
@@ -7104,6 +7104,11 @@ const PLATFORM_SERVICE_PROBES = Object.freeze([
|
|
|
7104
7104
|
feature: "the memory-budget divergence section of this report",
|
|
7105
7105
|
side: "host"
|
|
7106
7106
|
},
|
|
7107
|
+
{
|
|
7108
|
+
service: "evolutionMerge",
|
|
7109
|
+
feature: "the merge command and its read-only panel routes",
|
|
7110
|
+
side: "host"
|
|
7111
|
+
},
|
|
7107
7112
|
{
|
|
7108
7113
|
service: "evolutionPolicy",
|
|
7109
7114
|
feature: "the policy snapshot that shadows row knobs",
|
|
@@ -11881,6 +11886,12 @@ var SkillLibrary = class {
|
|
|
11881
11886
|
* @returns the expired entry names ([] when the backend has no mtime probe,
|
|
11882
11887
|
* because an unknown age must never read as expired).
|
|
11883
11888
|
*/
|
|
11889
|
+
/** Names currently in .archive, for target occupancy; unknown listing is null. */
|
|
11890
|
+
async archivedNames() {
|
|
11891
|
+
const listed = await probeList(this.io, join(this.root, ".archive"));
|
|
11892
|
+
if (isUnknown(listed)) return null;
|
|
11893
|
+
return isPresent(listed) ? listed.value.slice() : [];
|
|
11894
|
+
}
|
|
11884
11895
|
async expiredArchives() {
|
|
11885
11896
|
const archiveRoot = join(this.root, ".archive");
|
|
11886
11897
|
const listed = await probeList(this.io, archiveRoot);
|
|
@@ -14031,6 +14042,17 @@ const PARAM_EXPOSURE = Object.freeze([
|
|
|
14031
14042
|
docAnchor: "PARAMETERS.md#merge",
|
|
14032
14043
|
summary: "Wall-clock budget of one pair round (a stuck child guard).",
|
|
14033
14044
|
why: "internal"
|
|
14045
|
+
},
|
|
14046
|
+
{
|
|
14047
|
+
id: "mergeModelsRoot",
|
|
14048
|
+
group: "merge",
|
|
14049
|
+
tier: "E2",
|
|
14050
|
+
authority: "cordis",
|
|
14051
|
+
owner: "evolution-merge",
|
|
14052
|
+
applies: "none",
|
|
14053
|
+
docAnchor: "PARAMETERS.md#merge",
|
|
14054
|
+
summary: "Local model root containing the int8 and pca64 model directories; empty falls back to SKILL_MERGE_MODELS_ROOT. No auto provisioning.",
|
|
14055
|
+
why: "path"
|
|
14034
14056
|
}
|
|
14035
14057
|
]);
|
|
14036
14058
|
/** The settings namespace each OWNER PACKAGE registers (design §7.2).
|
package/lib/types/params.js
CHANGED
|
@@ -208,6 +208,7 @@ export const PARAM_EXPOSURE = Object.freeze([
|
|
|
208
208
|
{ id: 'mergeSkippedTtlDays', group: 'merge', tier: 'E3', authority: 'cordis', owner: 'evolution-merge', applies: 'live', docAnchor: 'PARAMETERS.md#merge', summary: 'Days a skipped pair stays out of screening; 0 means it never expires.', label: '无需合并保留天数', hint: '判定无需合并的对,多少天内不再参与筛选;0 表示一直保留。', control: 'number', unit: '天', values: '', card: 'evolution-merge' },
|
|
209
209
|
{ id: 'mergeRunTimeoutMinutes', group: 'merge', tier: 'E3', authority: 'cordis', owner: 'evolution-merge', applies: 'live', docAnchor: 'PARAMETERS.md#merge', summary: 'Wall-clock budget of one merge run; 0 means no limit.', label: '单次运行上限', hint: '一次合并运行最多持续多少分钟;0 表示不设上限。', control: 'number', unit: '分钟', values: '', card: 'evolution-merge' },
|
|
210
210
|
{ id: 'mergePairTimeoutMinutes', group: 'merge', tier: 'E2', authority: 'cordis', owner: 'evolution-merge', applies: 'none', docAnchor: 'PARAMETERS.md#merge', summary: 'Wall-clock budget of one pair round (a stuck child guard).', why: 'internal' },
|
|
211
|
+
{ id: 'mergeModelsRoot', group: 'merge', tier: 'E2', authority: 'cordis', owner: 'evolution-merge', applies: 'none', docAnchor: 'PARAMETERS.md#merge', summary: 'Local model root containing the int8 and pca64 model directories; empty falls back to SKILL_MERGE_MODELS_ROOT. No auto provisioning.', why: 'path' },
|
|
211
212
|
]);
|
|
212
213
|
/** The settings namespace each OWNER PACKAGE registers (design §7.2).
|
|
213
214
|
*
|
|
@@ -20,7 +20,7 @@ export interface PlatformServiceProbe {
|
|
|
20
20
|
/** Where the probe runs. */
|
|
21
21
|
readonly side: 'host' | 'client';
|
|
22
22
|
}
|
|
23
|
-
/** The
|
|
23
|
+
/** The 26 probes, in service-name order (the guard checks this list against the tree). */
|
|
24
24
|
export declare const PLATFORM_SERVICE_PROBES: readonly PlatformServiceProbe[];
|
|
25
25
|
/**
|
|
26
26
|
* The HOST-side probes that do not resolve in this runtime — what `/evolution doctor` prints as
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* `client` probes run in the browser half, where the host has no view of the seats.
|
|
12
12
|
* @module @lmzhen/dsh-evolution-core
|
|
13
13
|
*/
|
|
14
|
-
/** The
|
|
14
|
+
/** The 26 probes, in service-name order (the guard checks this list against the tree). */
|
|
15
15
|
export const PLATFORM_SERVICE_PROBES = Object.freeze([
|
|
16
16
|
{ service: 'agents', feature: 'review and curator subagent wake-ups', side: 'host' },
|
|
17
17
|
{ service: 'approval', feature: 'the platform approval policy the approval row shadows', side: 'host' },
|
|
@@ -22,6 +22,7 @@ export const PLATFORM_SERVICE_PROBES = Object.freeze([
|
|
|
22
22
|
{ service: 'evolutionIo', feature: 'every durable read and write (the IO seam)', side: 'host' },
|
|
23
23
|
{ service: 'hmr', feature: 'the preset install read-merge-write commit (the platform HMR lock serializes it)', side: 'host' },
|
|
24
24
|
{ service: 'evolutionMemoryBudget', feature: 'the memory-budget divergence section of this report', side: 'host' },
|
|
25
|
+
{ service: 'evolutionMerge', feature: 'the merge command and its read-only panel routes', side: 'host' },
|
|
25
26
|
{ service: 'evolutionPolicy', feature: 'the policy snapshot that shadows row knobs', side: 'host' },
|
|
26
27
|
{ service: 'evolutionReplay', feature: '/evolution replay', side: 'host' },
|
|
27
28
|
{ service: 'evolutionState', feature: 'the state facade behind activity and replay', side: 'host' },
|
|
@@ -667,6 +667,8 @@ export declare class SkillLibrary {
|
|
|
667
667
|
* @returns the expired entry names ([] when the backend has no mtime probe,
|
|
668
668
|
* because an unknown age must never read as expired).
|
|
669
669
|
*/
|
|
670
|
+
/** Names currently in .archive, for target occupancy; unknown listing is null. */
|
|
671
|
+
archivedNames(): Promise<string[] | null>;
|
|
670
672
|
expiredArchives(): Promise<string[] | null>;
|
|
671
673
|
/** V4 (design §16.6): support-file char policy, resolved at the call site. */
|
|
672
674
|
supportFileCharPolicy(): 'report' | 'enforce';
|
package/lib/types/skill-store.js
CHANGED
|
@@ -3094,6 +3094,13 @@ export class SkillLibrary {
|
|
|
3094
3094
|
* @returns the expired entry names ([] when the backend has no mtime probe,
|
|
3095
3095
|
* because an unknown age must never read as expired).
|
|
3096
3096
|
*/
|
|
3097
|
+
/** Names currently in .archive, for target occupancy; unknown listing is null. */
|
|
3098
|
+
async archivedNames() {
|
|
3099
|
+
const listed = await probeList(this.io, join(this.root, '.archive'));
|
|
3100
|
+
if (isUnknown(listed))
|
|
3101
|
+
return null;
|
|
3102
|
+
return isPresent(listed) ? listed.value.slice() : [];
|
|
3103
|
+
}
|
|
3097
3104
|
async expiredArchives() {
|
|
3098
3105
|
const archiveRoot = join(this.root, '.archive');
|
|
3099
3106
|
// Three-state read (N14), the same helper every other listing uses: a
|
package/package.json
CHANGED