@lmzhen/dsh-evolution-settings-ui 0.27.3 → 0.28.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/client.js CHANGED
@@ -28,6 +28,12 @@ window.__ModuleLoader__.load({
28
28
  health: "/api/dsh-evolution/skill-history/health"
29
29
  },
30
30
  "skill-health": { rows: "/api/dsh-evolution/skill-health/rows" },
31
+ merge: {
32
+ view: "/api/dsh-evolution/merge/view",
33
+ rows: "/api/dsh-evolution/merge/rows",
34
+ run: "/api/dsh-evolution/merge/run",
35
+ runs: "/api/dsh-evolution/merge/runs"
36
+ },
31
37
  diagnostics: { view: "/api/dsh-evolution/diagnostics" }
32
38
  };
33
39
  //#endregion
@@ -331,6 +337,48 @@ window.__ModuleLoader__.load({
331
337
  }
332
338
  ]
333
339
  },
340
+ {
341
+ namespace: "evolution-merge",
342
+ seatKey: "evolution-merge",
343
+ fields: [
344
+ {
345
+ id: "mergeApproval",
346
+ group: "merge",
347
+ doc: "Pause after round 1 and put the pair in the pending queue instead of authoring round 2 automatically.",
348
+ label: "合并审批",
349
+ hint: "开启后,第一轮判定完先停下、进入待批准清单;关闭则直接进入第二轮合并。",
350
+ control: "switch",
351
+ unit: "",
352
+ values: [],
353
+ valueLabels: [],
354
+ atLeast: ""
355
+ },
356
+ {
357
+ id: "mergeSkippedTtlDays",
358
+ group: "merge",
359
+ doc: "Days a skipped pair stays out of screening; 0 means it never expires.",
360
+ label: "无需合并保留天数",
361
+ hint: "判定无需合并的对,多少天内不再参与筛选;0 表示一直保留。",
362
+ control: "number",
363
+ unit: "天",
364
+ values: [],
365
+ valueLabels: [],
366
+ atLeast: ""
367
+ },
368
+ {
369
+ id: "mergeRunTimeoutMinutes",
370
+ group: "merge",
371
+ doc: "Wall-clock budget of one merge run; 0 means no limit.",
372
+ label: "单次运行上限",
373
+ hint: "一次合并运行最多持续多少分钟;0 表示不设上限。",
374
+ control: "number",
375
+ unit: "分钟",
376
+ values: [],
377
+ valueLabels: [],
378
+ atLeast: ""
379
+ }
380
+ ]
381
+ },
334
382
  {
335
383
  namespace: "evolution-review",
336
384
  seatKey: "evolution-review",
@@ -642,6 +690,7 @@ window.__ModuleLoader__.load({
642
690
  "evolution-approval",
643
691
  "evolution-commands",
644
692
  "evolution-curator",
693
+ "evolution-merge",
645
694
  "evolution-review",
646
695
  "memory-files",
647
696
  "tool-memory",
@@ -1211,6 +1260,7 @@ window.__ModuleLoader__.load({
1211
1260
  approval: { command: "/evolution pending … /evolution approve <id> … /evolution reject <id> … /evolution release <id>" },
1212
1261
  "skill-history": { command: "/evolution restore <name> [v](查看:/evolution skills history <name>)" },
1213
1262
  "skill-health": { command: "/evolution skills refresh(健康行:/evolution doctor)" },
1263
+ merge: { command: "/evolution merge status / pending / approve <id> / report" },
1214
1264
  diagnostics: {
1215
1265
  command: "/evolution doctor",
1216
1266
  platformCli: "dsh --json /evolution doctor"
@@ -1265,6 +1315,7 @@ window.__ModuleLoader__.load({
1265
1315
  cardSkills: "技能写入规则",
1266
1316
  cardApproval: "写入审批",
1267
1317
  cardCommands: "维护扫描",
1318
+ cardMerge: "技能自动合并",
1268
1319
  approvalTitle: "待批写入",
1269
1320
  approvalLoading: "正在读取待批项…",
1270
1321
  approvalEmpty: "没有待批的写入",
@@ -1348,6 +1399,7 @@ window.__ModuleLoader__.load({
1348
1399
  cardSkills: "Skill write rules",
1349
1400
  cardApproval: "Write approval",
1350
1401
  cardCommands: "Maintenance scans",
1402
+ cardMerge: "Skill auto-merge",
1351
1403
  approvalTitle: "Writes awaiting approval",
1352
1404
  approvalLoading: "reading the pending window…",
1353
1405
  approvalEmpty: "nothing is waiting for a decision",
@@ -1408,7 +1460,8 @@ window.__ModuleLoader__.load({
1408
1460
  "evolution-curator": "cardCurator",
1409
1461
  "tool-skill-manage": "cardSkills",
1410
1462
  "evolution-approval": "cardApproval",
1411
- "evolution-commands": "cardCommands"
1463
+ "evolution-commands": "cardCommands",
1464
+ "evolution-merge": "cardMerge"
1412
1465
  });
1413
1466
  /**
1414
1467
  * Resolve one message without the locale seat (tests and the fallback path).
@@ -2065,7 +2118,7 @@ window.__ModuleLoader__.load({
2065
2118
  * @returns the section element.
2066
2119
  */
2067
2120
  function SettingsSection(face) {
2068
- return (0, react.createElement)("div", { className: "evolution-params" }, (0, react.createElement)("h2", { className: "evolution-params-title" }, face.t("title")), (0, react.createElement)("p", { className: "evolution-params-subtitle" }, face.t("subtitle")), (0, react.createElement)("p", { className: "evolution-params-about" }, "0.27.3 · Web settings cards for the evolution family's parameter namespaces"), (0, react.createElement)("div", {
2121
+ return (0, react.createElement)("div", { className: "evolution-params" }, (0, react.createElement)("h2", { className: "evolution-params-title" }, face.t("title")), (0, react.createElement)("p", { className: "evolution-params-subtitle" }, face.t("subtitle")), (0, react.createElement)("p", { className: "evolution-params-about" }, "0.28.0 · Web settings cards for the evolution family's parameter namespaces"), (0, react.createElement)("div", {
2069
2122
  key: PENDING_CARD_KEY,
2070
2123
  className: "evolution-params-group"
2071
2124
  }, face.renderSlot(CARD_SLOT, {}, { entryKey: PENDING_CARD_KEY })), (0, react.createElement)("div", {
@@ -4,5 +4,5 @@ import type { FallbackHint } from './contracts.generated.ts';
4
4
  * COMMAND_FALLBACKS (the ONE home). When the platform's connection carrier is absent (E-325) the
5
5
  * panels render this hint instead of a bare HTTP failure — same use case, command face.
6
6
  */
7
- export declare const FALLBACKS: Readonly<Record<'approval' | 'skill-history' | 'skill-health' | 'diagnostics', FallbackHint>>;
7
+ export declare const FALLBACKS: Readonly<Record<'approval' | 'skill-history' | 'skill-health' | 'merge' | 'diagnostics', FallbackHint>>;
8
8
  //# sourceMappingURL=fallbacks.generated.d.ts.map
@@ -5,7 +5,7 @@
5
5
  * description, so the settings surface can state both without a hand-written copy.
6
6
  */
7
7
  /** The family version this surface belongs to. */
8
- export declare const FAMILY_VERSION = "0.27.3";
8
+ export declare const FAMILY_VERSION = "0.28.0";
9
9
  /** What this surface is for, in one line. */
10
10
  export declare const PACKAGE_PURPOSE = "Web settings cards for the evolution family's parameter namespaces";
11
11
  //# sourceMappingURL=generated-about.d.ts.map
@@ -45,6 +45,7 @@ export declare const zh: {
45
45
  readonly cardSkills: "技能写入规则";
46
46
  readonly cardApproval: "写入审批";
47
47
  readonly cardCommands: "维护扫描";
48
+ readonly cardMerge: "技能自动合并";
48
49
  readonly approvalTitle: "待批写入";
49
50
  readonly approvalLoading: "正在读取待批项…";
50
51
  readonly approvalEmpty: "没有待批的写入";
@@ -1,5 +1,5 @@
1
1
  /** One host data-plane surface the browser half can call. */
2
- export type SurfaceId = 'approval' | 'skill-history' | 'skill-health' | 'diagnostics';
2
+ export type SurfaceId = 'approval' | 'skill-history' | 'skill-health' | 'merge' | 'diagnostics';
3
3
  /**
4
4
  * Every family host path, generated from evolution-core's HOST_ROUTES (the ONE declaration).
5
5
  * A browser half cannot import the host package at runtime (client bundles keep @deepseek-ai/*
@@ -24,6 +24,12 @@ export declare const ROUTES: {
24
24
  readonly 'skill-health': {
25
25
  readonly rows: "/api/dsh-evolution/skill-health/rows";
26
26
  };
27
+ readonly merge: {
28
+ readonly view: "/api/dsh-evolution/merge/view";
29
+ readonly rows: "/api/dsh-evolution/merge/rows";
30
+ readonly run: "/api/dsh-evolution/merge/run";
31
+ readonly runs: "/api/dsh-evolution/merge/runs";
32
+ };
27
33
  readonly diagnostics: {
28
34
  readonly view: "/api/dsh-evolution/diagnostics";
29
35
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@lmzhen/dsh-evolution-settings-ui",
3
3
  "description": "Web settings cards for the evolution family's parameter namespaces (community build)",
4
- "version": "0.27.3",
4
+ "version": "0.28.0",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },