dsh-life-pack 0.2.5 → 0.2.7

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.
@@ -7,17 +7,27 @@
7
7
  */
8
8
  import * as React from 'react';
9
9
  import type { HealthReport, HealthStatus } from './health-contract.js';
10
+ /** 三档的配色(绿走主题别名;红黄用实色,理由见下)。
11
+ *
12
+ * 红与黄为什么必须落在**不同明度带**上:这两档要一起出现在同一行灯里,用户扫一眼要能分开
13
+ * 「红了(用不了)」与「黄了(能用但要撞上)」。评审连着两轮点「黄灯偏暗与红相近」,所以:
14
+ * · 红=深红(暗、重);
15
+ * · 黄=高饱和的琥珀(亮、跳)——它在白底上的对比度仍然够(`#b45309` 对白 ≈ 4.9:1)。
16
+ * 绿不给底色:它是「正常」,不该和要处理的那两档抢注意力。 */
17
+ export declare const STATUS_COLOR: Readonly<Record<HealthStatus, string>>;
18
+ /** 档位词(灯里那几个字)用的色:红黄要**够深**才读得清,故另取一枚比灯更深的值。 */
19
+ export declare const STATUS_TEXT: Readonly<Record<HealthStatus, string>>;
10
20
  export declare const HEALTH_STYLE: {
11
21
  readonly box: React.CSSProperties;
12
22
  readonly headRow: React.CSSProperties;
13
23
  readonly head: React.CSSProperties;
14
- /** 「体检一次」不挤在标题右端:它单独占一行、与标题同一起始边(视觉复评两轮点「孤立在右上缺层次」)。 */
15
- readonly runRow: React.CSSProperties;
16
- readonly btn: React.CSSProperties;
17
- readonly lightsRow: React.CSSProperties;
18
- readonly light: React.CSSProperties;
19
- readonly lightIdle: React.CSSProperties;
24
+ /** 顶部那一行汇总(票 #732):一行装下「配置体检 + 一句总账 + 体检按钮」,三样都不独占行。
25
+ * 它替掉了原先「标题行 + 单独一行的按钮 + 一排灯按钮 + 两行图例」(同屏实测 153px → 一行)。 */
26
+ readonly summaryRow: React.CSSProperties;
27
+ readonly summaryText: React.CSSProperties;
28
+ /** 各家那张表里的说明行(「还没体检:点上面那个…」那几句)。 */
20
29
  readonly meta: React.CSSProperties;
30
+ readonly btn: React.CSSProperties;
21
31
  readonly error: React.CSSProperties;
22
32
  };
23
33
  /** 「去哪修」那一行的正文:各家交回来的 action 里若已自带「去哪修:」,这里剥掉一层——
@@ -35,25 +45,51 @@ export declare function pathsOf(report: HealthReport): readonly string[];
35
45
  /** 把报文里那一长串路径按公共前缀缩短(只动打印,不动事实)。
36
46
  * 只按**扫得出来的那一段段落点**去缩,不做全串替换:既不误伤长路径,也不会把一段路劈成半截。 */
37
47
  export declare function shortenPathsIn(text: string, prefixes: readonly string[]): string;
38
- /** 一盏灯:一家一名一档(数到几个红黄绿)。点一下把面板切到那家的页签。 */
48
+ /** 一盏灯:一家一名一档(数到几个红黄绿)。落点是那家页签(票 #732:面板不再单开一排灯按钮)。 */
39
49
  export interface HealthLightRow {
40
50
  readonly id: string;
41
51
  readonly title: string;
42
52
  readonly status: HealthStatus | null;
43
53
  readonly counts: Readonly<Record<HealthStatus, number>>;
54
+ /** 这一家交没交体检通道(页签槽 `options.channel`)。false=这家没装/没接上:圆点保持缺席态,不许点。 */
55
+ readonly hasChannel: boolean;
44
56
  }
45
57
  /** 从六份报告数出那一行的灯(每家按最严重那一档上色)。 */
46
58
  export declare function lightsOf(tabs: readonly {
47
59
  readonly id: string;
48
60
  readonly title: string;
61
+ readonly hasChannel?: boolean;
49
62
  }[], reports: Readonly<Record<string, HealthReport | undefined>>): readonly HealthLightRow[];
50
- /** 顶部那行总览:六家一盏灯 + 一个「体检一次」按钮。 */
51
- export declare function HealthOverview(props: {
63
+ /** 一截读数:`红 2`/`黄 3`/`绿`/`—`(缺席没报告)。`status` 为 null 的那些走淡色。 */
64
+ export interface HealthCountSeg {
65
+ readonly status: HealthStatus | null;
66
+ readonly text: string;
67
+ }
68
+ /** 把一份计数拆成**按档分色**的几截。红黄各自一截、各自上色,互不串色;
69
+ * 「黄 3」这一截为什么不能被染成红——见 `countSegments` 的注释(出图复评逮到的真缺陷)。 */
70
+ export declare function countSegsOf(light: HealthLightRow): readonly HealthCountSeg[];
71
+ /** 页签圆点的颜色与语义(票 #732):从「实心/空心=装没装」改成「颜色=体检档位」。 */
72
+ export declare const TAB_DOT: {
73
+ /** 没装(页签槽账本里没有这一家)。 */
74
+ readonly absent: string;
75
+ /** 装了、但还没跑过体检。 */
76
+ readonly unchecked: "var(--dsw-alias-label-secondary, #9a9a9a)";
77
+ };
78
+ /** 页签圆点该用什么色:装了按档位(红黄绿),没装/没跑过走缺席态。 */
79
+ export declare function tabDotColor(light: HealthLightRow): string;
80
+ /** 页签上那枚小数字(票 #732):红黄那几家,家名后带一条计数;全绿与没跑过不带。 */
81
+ export declare const TAB_NOTE_STYLE: React.CSSProperties;
82
+ /** 那枚小数字写什么:只报「要处理」的那两档;一家里红黄都有时先报红那一档(圆点已经按最严重的档上色了)。 */
83
+ export declare function tabNote(light: HealthLightRow): HealthCountSeg | null;
84
+ /** 顶部那一行汇总(票 #732:不再一家一盏灯按钮,一行总账 + 一个体检按钮)。
85
+ *
86
+ * 与页签的分工:这行只答「一共几条要处理」;「哪几家、各几条」由页签的圆点与小数字答;
87
+ * 「具体哪一条坏了、去哪修」由那家页签里的 `HealthTable` 答。 */
88
+ export declare function HealthSummaryLine(props: {
52
89
  readonly lights: readonly HealthLightRow[];
53
90
  readonly running: boolean;
54
91
  readonly error: string | null;
55
92
  readonly onRun: () => void;
56
- readonly onJump: (id: string) => void;
57
93
  }): React.ReactElement;
58
94
  /** 一家那张表:**要处理的**(红黄)一条一块、整行上底带一句话与「去哪修」;
59
95
  * **正常的**(绿)收成一行并列的小字,点得到、扫得完(票面验收第一条:正常的收成一行,有问题的才展开)。 */
@@ -1 +1 @@
1
- {"version":3,"file":"health-view.d.ts","sourceRoot":"","sources":["../src/health-view.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAc,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAuCnF,eAAO,MAAM,YAAY;kBAMlB,KAAK,CAAC,aAAa;sBACyE,KAAK,CAAC,aAAa;mBAC7D,KAAK,CAAC,aAAa;IAC1E,wDAAwD;qBACpB,KAAK,CAAC,aAAa;kBAUlD,KAAK,CAAC,aAAa;wBACoC,KAAK,CAAC,aAAa;oBAY1E,KAAK,CAAC,aAAa;wBAC4B,KAAK,CAAC,aAAa;mBACG,KAAK,CAAC,aAAa;oBACV,KAAK,CAAC,aAAa;CAC9F,CAAC;AAOX;qDACqD;AACrD,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGjD;AAwBD;;;qDAGqD;AACrD,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,CAErE;AAED,8DAA8D;AAC9D,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAU7D;AAQD,oBAAoB;AACpB,wBAAgB,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,CAI/D;AAED;sDACsD;AACtD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAchF;AAED,yCAAyC;AACzC,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;CACzD;AAED,iCAAiC;AACjC,wBAAgB,QAAQ,CACtB,IAAI,EAAE,SAAS;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,EAChE,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC,CAAC,GAC1D,SAAS,cAAc,EAAE,CAU3B;AAWD,iCAAiC;AACjC,wBAAgB,cAAc,CAAC,KAAK,EAAE;IACpC,QAAQ,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC,GAAG,KAAK,CAAC,YAAY,CA0ErB;AAOD;4DAC4D;AAC5D,wBAAgB,WAAW,CAAC,KAAK,EAAE;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;IACxD,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,GAAG,KAAK,CAAC,YAAY,CAyFrB"}
1
+ {"version":3,"file":"health-view.d.ts","sourceRoot":"","sources":["../src/health-view.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAc,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEnF;;;;;;kCAMkC;AAClC,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAI/D,CAAC;AAWF,gDAAgD;AAChD,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAI9D,CAAC;AAYF,eAAO,MAAM,YAAY;kBAMlB,KAAK,CAAC,aAAa;sBACyE,KAAK,CAAC,aAAa;mBAC7D,KAAK,CAAC,aAAa;IAC1E;iEAC6D;yBAMxD,KAAK,CAAC,aAAa;0BAC8G,KAAK,CAAC,aAAa;IACzJ,oCAAoC;mBACsC,KAAK,CAAC,aAAa;kBAWxF,KAAK,CAAC,aAAa;oBAC2D,KAAK,CAAC,aAAa;CAC9F,CAAC;AAOX;qDACqD;AACrD,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGjD;AAwBD;;;qDAGqD;AACrD,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,CAErE;AAED,8DAA8D;AAC9D,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAU7D;AAQD,oBAAoB;AACpB,wBAAgB,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,CAI/D;AAED;sDACsD;AACtD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAchF;AAED,uDAAuD;AACvD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;IACxD,oEAAoE;IACpE,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAED,iCAAiC;AACjC,wBAAgB,QAAQ,CACtB,IAAI,EAAE,SAAS;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,EAAE,EAC/F,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC,CAAC,GAC1D,SAAS,cAAc,EAAE,CAgB3B;AAWD,8DAA8D;AAC9D,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;4DAC4D;AAC5D,wBAAgB,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,cAAc,EAAE,CAQ5E;AA0CD,kDAAkD;AAClD,eAAO,MAAM,OAAO;IAClB,uBAAuB;;IAEvB,kBAAkB;;CAEV,CAAC;AAEX,uCAAuC;AACvC,wBAAgB,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAGzD;AAED,gDAAgD;AAChD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,aAOzB,CAAC;AAEX,0DAA0D;AAC1D,wBAAgB,OAAO,CAAC,KAAK,EAAE,cAAc,GAAG,cAAc,GAAG,IAAI,CAGpE;AAED;;;4CAG4C;AAC5C,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IACvC,QAAQ,CAAC,MAAM,EAAE,SAAS,cAAc,EAAE,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;CAC5B,GAAG,KAAK,CAAC,YAAY,CA0BrB;AAOD;4DAC4D;AAC5D,wBAAgB,WAAW,CAAC,KAAK,EAAE;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;IACxD,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,GAAG,KAAK,CAAC,YAAY,CA+GrB"}
@@ -14,19 +14,21 @@ import { countByStatus, worstStatus } from './health-contract.js';
14
14
  * · 红=深红(暗、重);
15
15
  * · 黄=高饱和的琥珀(亮、跳)——它在白底上的对比度仍然够(`#b45309` 对白 ≈ 4.9:1)。
16
16
  * 绿不给底色:它是「正常」,不该和要处理的那两档抢注意力。 */
17
- const STATUS_COLOR = {
17
+ export const STATUS_COLOR = {
18
18
  red: '#c0392b',
19
19
  yellow: '#e08a00',
20
20
  green: 'var(--dsw-alias-state-success-primary, #4ec9a0)',
21
21
  };
22
22
  /** 整行底色的浅一档:饱和降一档,免得红黄行「刺眼」压过正文(评审第二轮的扣分点)。 */
23
+ /** 红黄两档整行上底的底色。红灯要**明显重于**黄灯:复评实测原先两个底色亮度几乎一样
24
+ * (红 `#FBF3F3` 对黄 `#FCF3E5`,只差蓝通道),最严重那一档反而最淡——红色提到 0.14。 */
23
25
  const STATUS_TINT = {
24
- red: 'rgba(192, 57, 43, 0.06)',
26
+ red: 'rgba(192, 57, 43, 0.14)',
25
27
  yellow: 'rgba(224, 138, 0, 0.10)',
26
28
  green: 'transparent',
27
29
  };
28
30
  /** 档位词(灯里那几个字)用的色:红黄要**够深**才读得清,故另取一枚比灯更深的值。 */
29
- const STATUS_TEXT = {
31
+ export const STATUS_TEXT = {
30
32
  red: '#a5281b',
31
33
  yellow: '#8a5200',
32
34
  green: 'var(--dsw-alias-state-success-primary, #4ec9a0)',
@@ -47,33 +49,28 @@ export const HEALTH_STYLE = {
47
49
  },
48
50
  headRow: { display: 'flex', flexWrap: 'wrap', alignItems: 'center', gap: 8, marginBottom: 4 },
49
51
  head: { fontSize: 13, fontWeight: 700, color: INK },
50
- /** 「体检一次」不挤在标题右端:它单独占一行、与标题同一起始边(视觉复评两轮点「孤立在右上缺层次」)。 */
51
- runRow: { margin: '8px 0 10px' },
52
+ /** 顶部那一行汇总(票 #732):一行装下「配置体检 + 一句总账 + 体检按钮」,三样都不独占行。
53
+ * 它替掉了原先「标题行 + 单独一行的按钮 + 一排灯按钮 + 两行图例」(同屏实测 153px → 一行)。 */
54
+ summaryRow: {
55
+ display: 'flex',
56
+ alignItems: 'center',
57
+ gap: 10,
58
+ marginBottom: 10,
59
+ },
60
+ summaryText: { flex: '1 1 auto', minWidth: 0, fontSize: 12.5, whiteSpace: 'nowrap', overflow: 'hidden', textOverflow: 'ellipsis' },
61
+ /** 各家那张表里的说明行(「还没体检:点上面那个…」那几句)。 */
62
+ meta: { color: INK_DIM, fontSize: 12, lineHeight: 1.7, marginTop: 12 },
52
63
  btn: {
53
64
  border: '1px solid ' + BORDER,
54
65
  background: 'transparent',
55
66
  color: INK,
56
67
  borderRadius: 8,
57
- padding: '6px 16px',
58
- fontSize: 13,
59
- fontWeight: 600,
60
- cursor: 'pointer',
61
- },
62
- lightsRow: { display: 'flex', flexWrap: 'wrap', gap: 8 },
63
- light: {
64
- display: 'inline-flex',
65
- alignItems: 'center',
66
- gap: 4,
67
- background: 'transparent',
68
- border: '1px solid ' + BORDER,
69
- borderRadius: 999,
68
+ flex: '0 0 auto',
70
69
  padding: '3px 10px',
71
70
  fontSize: 12.5,
72
- color: INK,
71
+ fontWeight: 600,
73
72
  cursor: 'pointer',
74
73
  },
75
- lightIdle: { cursor: 'default', color: INK_DIM },
76
- meta: { color: INK_DIM, fontSize: 12, lineHeight: 1.7, marginTop: 12 },
77
74
  error: { color: STATUS_COLOR.red, fontSize: 12, lineHeight: 1.7, marginTop: 6 },
78
75
  };
79
76
  /** 值得一眼看见的那两档(档位名与整行文字都上色;绿行保持淡)。 */
@@ -160,15 +157,21 @@ export function shortenPathsIn(text, prefixes) {
160
157
  export function lightsOf(tabs, reports) {
161
158
  return tabs.map((tab) => {
162
159
  const report = reports[tab.id];
160
+ const items = report?.items ?? [];
163
161
  return {
164
162
  id: tab.id,
165
163
  title: tab.title,
166
- status: report ? worstStatus(report.items) : null,
167
- counts: countByStatus(report?.items ?? []),
164
+ status: report ? worstStatus(items) : null,
165
+ counts: countByStatus(items),
166
+ // 缺席与「装了但还没体检」在报告上都长成 null,分开只能靠这一格(票 #732)。
167
+ hasChannel: tab.hasChannel ?? true,
168
+ // 这里曾短期印过「最严重那一项的名字」当区分度,**已撤回**:实测六家常坏在同一条通用检查项上
169
+ // (都是「数据目录」),印出来六家一模一样,是噪声不是区分度(出图复评实测逐字抄了六个「数据目录」)。
170
+ // 「哪一项坏了」本来就由那家自己那张表回答,灯上不再重复。
168
171
  };
169
172
  });
170
173
  }
171
- /** 一家的一句话读数:「红 1 黄 2」,全绿就是「绿」。 */
174
+ /** 一家的一句话读数:「红 1 黄 2」,全绿就是「绿」。面板侧要**上色**的那几处不用它(见 `countSegments`)。 */
172
175
  function countsText(counts) {
173
176
  const parts = [];
174
177
  if (counts.red > 0)
@@ -179,42 +182,100 @@ function countsText(counts) {
179
182
  return '绿';
180
183
  return parts.join(' · ');
181
184
  }
182
- /** 顶部那行总览:六家一盏灯 + 一个「体检一次」按钮。 */
183
- export function HealthOverview(props) {
184
- return React.createElement('div', { style: HEALTH_STYLE.box, 'data-ilife-health': 'overview' }, React.createElement('div', { style: HEALTH_STYLE.headRow }, React.createElement('div', { style: HEALTH_STYLE.head }, '配置体检')), React.createElement('div', { style: HEALTH_STYLE.runRow }, React.createElement('button', {
185
+ /** 把一份计数拆成**按档分色**的几截。红黄各自一截、各自上色,互不串色;
186
+ * 「黄 3」这一截为什么不能被染成红——见 `countSegments` 的注释(出图复评逮到的真缺陷)。 */
187
+ export function countSegsOf(light) {
188
+ if (light.status === null)
189
+ return [{ status: null, text: '—' }];
190
+ const segs = [];
191
+ for (const status of ['red', 'yellow']) {
192
+ const count = light.counts[status];
193
+ if (count > 0)
194
+ segs.push({ status, text: STATUS_LABEL[status] + ' ' + String(count) });
195
+ }
196
+ return segs.length > 0 ? segs : [{ status: 'green', text: '绿' }];
197
+ }
198
+ /** 几截读数之间那个分隔符:不许染档位色(它不属于任何一档)。 */
199
+ const SEG_SEP = ' · ';
200
+ /** 一家的读数**写成一行**(纯文本版:给页签上那枚小数字用)。 */
201
+ function countText(light) {
202
+ return countSegsOf(light).map((piece) => piece.text).join(SEG_SEP);
203
+ }
204
+ /** 汇总行那一句:绿要显眼(它是「正常」这件事本身),没通道的那几家不冒充绿。 */
205
+ function overallText(lights) {
206
+ const pending = lights.filter((light) => !light.hasChannel).length;
207
+ const withReport = lights.filter((light) => light.hasChannel);
208
+ const tail = pending > 0 ? ' · ' + String(pending) + ' 家还没体检' : '';
209
+ if (withReport.length > 0 && withReport.every((light) => light.status === 'green')) {
210
+ return React.createElement('span', { style: { color: STATUS_COLOR.green, fontWeight: 700 } }, '六家正常' + tail);
211
+ }
212
+ const parts = [];
213
+ for (const status of ['red', 'yellow']) {
214
+ let count = 0;
215
+ for (const light of lights)
216
+ count += light.counts[status];
217
+ if (count === 0)
218
+ continue;
219
+ if (parts.length > 0)
220
+ parts.push(React.createElement('span', { key: status + '-sep', style: { color: INK_DIM } }, SEG_SEP));
221
+ parts.push(React.createElement('span', { key: status, style: { color: STATUS_TEXT[status], fontWeight: 700 } }, STATUS_LABEL[status] + ' ' + String(count)));
222
+ }
223
+ if (parts.length === 0) {
224
+ return React.createElement('span', { style: { color: INK_DIM } }, '还没体检' + tail);
225
+ }
226
+ parts.push(React.createElement('span', { key: 'todo', style: { color: INK } }, ' 要处理' + tail));
227
+ return React.createElement('span', null, parts);
228
+ }
229
+ /** 那枚小数字用的底色(比灯色浅一档,压在页签上不抢眼)。 */
230
+ const STATUS_DOT = {
231
+ red: STATUS_COLOR.red,
232
+ yellow: STATUS_COLOR.yellow,
233
+ green: STATUS_COLOR.green,
234
+ };
235
+ /** 页签圆点的颜色与语义(票 #732):从「实心/空心=装没装」改成「颜色=体检档位」。 */
236
+ export const TAB_DOT = {
237
+ /** 没装(页签槽账本里没有这一家)。 */
238
+ absent: STATUS_DOT.green,
239
+ /** 装了、但还没跑过体检。 */
240
+ unchecked: INK_DIM,
241
+ };
242
+ /** 页签圆点该用什么色:装了按档位(红黄绿),没装/没跑过走缺席态。 */
243
+ export function tabDotColor(light) {
244
+ if (!light.hasChannel)
245
+ return TAB_DOT.absent;
246
+ return light.status === null ? TAB_DOT.unchecked : STATUS_DOT[light.status];
247
+ }
248
+ /** 页签上那枚小数字(票 #732):红黄那几家,家名后带一条计数;全绿与没跑过不带。 */
249
+ export const TAB_NOTE_STYLE = {
250
+ marginLeft: 5,
251
+ border: '1px solid ' + BORDER,
252
+ borderRadius: 999,
253
+ padding: '0 5px',
254
+ fontSize: 11,
255
+ fontWeight: 700,
256
+ };
257
+ /** 那枚小数字写什么:只报「要处理」的那两档;一家里红黄都有时先报红那一档(圆点已经按最严重的档上色了)。 */
258
+ export function tabNote(light) {
259
+ if (!light.hasChannel || light.status === null || light.status === 'green')
260
+ return null;
261
+ return countSegsOf(light)[0] ?? null;
262
+ }
263
+ /** 顶部那一行汇总(票 #732:不再一家一盏灯按钮,一行总账 + 一个体检按钮)。
264
+ *
265
+ * 与页签的分工:这行只答「一共几条要处理」;「哪几家、各几条」由页签的圆点与小数字答;
266
+ * 「具体哪一条坏了、去哪修」由那家页签里的 `HealthTable` 答。 */
267
+ export function HealthSummaryLine(props) {
268
+ const hasLights = props.lights.length > 0;
269
+ return React.createElement('div', { style: HEALTH_STYLE.summaryRow, 'data-ilife-health': 'summary' }, React.createElement('div', { style: HEALTH_STYLE.head }, '配置体检'), React.createElement('div', { style: HEALTH_STYLE.summaryText }, props.error !== null ? React.createElement('span', { style: { color: STATUS_TEXT.red } }, props.error)
270
+ : hasLights ? overallText(props.lights) : React.createElement('span', { style: { color: INK_DIM } }, '还没体检')), React.createElement('button', {
185
271
  type: 'button',
186
272
  style: props.running ? { ...HEALTH_STYLE.btn, opacity: 0.55, cursor: 'default' } : HEALTH_STYLE.btn,
187
273
  disabled: props.running,
188
274
  onClick: props.onRun,
189
- title: '对六家各跑一次配置体检(只看不改:不建目录、不改配置)',
190
- }, props.running ? '体检中…' : '体检一次')), React.createElement('div', { style: HEALTH_STYLE.lightsRow, 'data-ilife-health': 'lights' }, props.lights.map((light) => React.createElement('button', {
191
- key: light.id,
192
- type: 'button',
193
- 'data-ilife-health': 'light',
194
- 'data-skill': light.id,
195
- // 档位落到按钮自身的边框与底色上:一眼扫过去先看到颜色,再读家名(票面验收:一屏看红黄)。
196
- style: light.status === null
197
- ? { ...HEALTH_STYLE.light, ...HEALTH_STYLE.lightIdle }
198
- : {
199
- ...HEALTH_STYLE.light,
200
- borderColor: STATUS_COLOR[light.status],
201
- borderWidth: 1.5,
202
- background: STATUS_TINT[light.status],
203
- },
204
- disabled: light.status === null,
205
- onClick: () => props.onJump(light.id),
206
- title: light.status === null
207
- ? '还没体检(或这一家没装)'
208
- : light.title + ':' + countsText(light.counts),
209
- }, React.createElement('span', {
210
- style: {
211
- width: 10,
212
- height: 10,
213
- borderRadius: '50%',
214
- background: light.status === null ? INK_DIM : STATUS_COLOR[light.status],
215
- display: 'inline-block',
216
- },
217
- }), React.createElement('span', { style: { color: INK, fontWeight: 650 } }, light.title), React.createElement('span', { style: { color: light.status === null ? INK_DIM : STATUS_TEXT[light.status], fontWeight: 700 } }, light.status === null ? '—' : countsText(light.counts))))), React.createElement('div', { style: HEALTH_STYLE.meta }, props.error !== null ? props.error : '只看不改 · 灯=那一家最严重的一档 · 点一下跳到那家配置页'));
275
+ // 「只看不改」那三条口径从屏上撤下来了(它原先和两排圆点的图例挤在一行),
276
+ // 但它**仍然要说出口**:按钮悬停是它能待的地方(票 #732;测试按产物里的字符串守着)。
277
+ title: '对六家各跑一次配置体检(只看不改:不建目录、不改配置、不自动重置)',
278
+ }, props.running ? '体检中…' : '体检一次'));
218
279
  }
219
280
  /** 正正常常的那些:绿条只留「名字」,一句话与「去哪修」都不印(票面验收第一条:正常的收成一行)。 */
220
281
  function isAttentionItem(item) {
@@ -229,9 +290,14 @@ export function HealthTable(props) {
229
290
  ? React.createElement('div', { style: HEALTH_STYLE.meta }, '还没体检:点上面那个「体检一次」。')
230
291
  : null, props.phase === 'running' ? React.createElement('div', { style: HEALTH_STYLE.meta }, '正在体检…') : null, props.error !== null ? React.createElement('div', { style: HEALTH_STYLE.error }, props.error) : null, report
231
292
  ? React.createElement('div', null,
232
- // 落点一律缩到公共前缀之内印(四条长路径并排会把每一行撑成两行,视觉复评点过「像日志 dump」);
233
- // 前缀本身印在悬停里,屏上不留一长串盘符。
234
- React.createElement('div', { style: HEALTH_STYLE.meta, title: prefixes.join(' ') }, '配置文件 ' + shorten(report.configPath, prefixes) + ' · 数据目录 ' + shorten(report.dataDir, prefixes)), report.items.filter(isAttentionItem).map((item) => React.createElement('div', {
293
+ // 行内落点缩成「…/短尾」是为了不把每行撑成两行;但「去哪修:先建这个目录」要照着建,
294
+ // 就得把**它到底在哪儿**说清楚(出图复评五份里两份点名「照屏修不了」)。
295
+ // 措辞有讲究:不能写成「下面行内的「…/」都接在这里」——行里本来就有个「…/data」,
296
+ // 接上基目录会拼成「…/data/data」,自相矛盾(复评原话)。故只**点明缩写代表哪一层**。
297
+ report.dataDir !== ''
298
+ ? React.createElement('div', { style: { color: INK_DIM, fontSize: 11.5, marginTop: 2 } }, '落点根目录:' + report.dataDir
299
+ + (report.configPath !== '' ? '(配置文件 ' + report.configPath + ')' : ''))
300
+ : null, report.items.filter(isAttentionItem).map((item) => React.createElement('div', {
235
301
  key: item.id,
236
302
  'data-ilife-health': 'item',
237
303
  'data-status': item.status,
@@ -246,29 +312,47 @@ export function HealthTable(props) {
246
312
  background: STATUS_TINT[item.status],
247
313
  },
248
314
  }, React.createElement('div', { style: { display: 'flex', flexWrap: 'wrap', alignItems: 'center', gap: 6 } },
249
- // 档位不只靠颜色认:色弱/灰度截图下也得一眼看出哪条要处理(灯保留作二次确认)。
315
+ // 档位**不只靠颜色**认:形状标记(✕/!)+档位字,色弱与灰度截图下也分得开。
316
+ // 原先这里还有一个同色的实心圆点,与标记、档位字三者同义同色(复评两份点名「没有主次」),
317
+ // 且页签那排(`client.ts:349`)也用同样的圆点表示「这家装没装」——同屏两套圆点语义,
318
+ // 故本件的条目里**去掉圆点**,把圆点这一格语汇留给页签。
250
319
  React.createElement('span', {
251
320
  style: { color: STATUS_TEXT[item.status], fontWeight: 700, fontSize: 13, lineHeight: 1 },
252
321
  'aria-hidden': 'true',
253
- }, STATUS_MARK[item.status]), React.createElement('span', {
254
- style: {
255
- width: 8, height: 8, borderRadius: '50%', display: 'inline-block', background: STATUS_COLOR[item.status],
256
- },
257
- }), React.createElement('span', { style: { fontWeight: 650, color: INK } }, item.title), React.createElement('span', {
322
+ }, STATUS_MARK[item.status]), React.createElement('span', { style: { fontWeight: 650, color: INK } }, item.title), React.createElement('span', {
258
323
  style: { color: STATUS_TEXT[item.status], fontWeight: 700 },
259
- }, STATUS_LABEL[item.status]), item.source ? React.createElement('span', { style: { color: INK_DIM } }, '· 来自' + item.source) : null), React.createElement('div', { style: { color: INK }, title: item.message }, shortenPathsIn(item.message, prefixes)), item.action.length > 0
324
+ }, STATUS_LABEL[item.status]),
325
+ // 来源那一格**只在它不只是「默认值」时印**:四行全印「来自默认值」等于零区分度,
326
+ // 而且「值从哪来」这件事正文里已经写全了(复评原话:「这四个字零区分度」)。
327
+ item.source && item.source !== '默认值'
328
+ ? React.createElement('span', { style: { color: INK_DIM } }, '· 来自' + item.source)
329
+ : null), React.createElement('div', { style: { color: INK }, title: item.message }, shortenPathsIn(item.message, prefixes)), item.action.length > 0
260
330
  ? React.createElement('div', { style: { color: INK_DIM } }, '去哪修:' + actionText(item.action))
261
331
  : null)),
262
332
  // 正常的那一档:一条都不用点开,名字排成一行(`data-ilife-health="ok"` 供判据核对「一条不少」)。
333
+ // 给它**一条绿边+一层极淡底**,让它读起来是「一组正常项」,而不是四行问题之后的一句脚注
334
+ // (复评原话:「占多数的那一档在视觉上几乎退成脚注」)——条目仍然收成一行(票面第一条)。
263
335
  report.items.some((item) => !isAttentionItem(item))
264
336
  ? React.createElement('div', {
265
337
  'data-ilife-health': 'ok',
266
338
  style: {
267
339
  display: 'flex', flexWrap: 'wrap', alignItems: 'center', gap: '2px 10px',
268
- marginTop: 8, paddingTop: 6, borderTop: '1px solid ' + BORDER,
340
+ marginTop: 8, padding: '6px 8px',
341
+ borderLeft: '3px solid ' + STATUS_COLOR.green,
342
+ borderRadius: 6,
269
343
  fontSize: 12, lineHeight: 1.6, color: INK_DIM,
270
344
  },
271
- }, React.createElement('span', { style: { fontWeight: 650, color: INK } }, '正常 ' + String(countByStatus(report.items).green) + ' 条'), report.items.filter((item) => !isAttentionItem(item)).map((item) => React.createElement('span', { key: item.id, 'data-ilife-health': 'ok-item' }, '· ' + item.title)))
345
+ },
346
+ // 绿档也要**看得见**:只给一行灰字时,五份出图复评里三份独立指到「全屏没有绿色、
347
+ // 绿=正常这一档等于不存在」。故这一档前面加一个绿点(与红黄同一个「点」语汇),
348
+ // 说明它们就是正常项——条目**仍然收成一行**(票面第一条:正常的收成一行)。
349
+ React.createElement('span', {
350
+ style: {
351
+ width: 8, height: 8, borderRadius: '50%', display: 'inline-block',
352
+ background: STATUS_COLOR.green, flex: '0 0 auto',
353
+ },
354
+ 'aria-hidden': 'true',
355
+ }), React.createElement('span', { style: { fontWeight: 650, color: INK } }, '正常 ' + String(countByStatus(report.items).green) + ' 条'), React.createElement('span', { style: { color: INK_DIM } }, '(下列各项都正常工作)'), report.items.filter((item) => !isAttentionItem(item)).map((item) => React.createElement('span', { key: item.id, 'data-ilife-health': 'ok-item' }, '· ' + item.title)))
272
356
  : null)
273
357
  : null);
274
358
  }
@@ -1 +1 @@
1
- {"version":3,"file":"health-view.js","sourceRoot":"","sources":["../src/health-view.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"health-view.js","sourceRoot":"","sources":["../src/health-view.ts"],"names":[],"mappings":"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"}
package/dist/nav.d.ts CHANGED
@@ -27,7 +27,7 @@ export interface RecoTab extends ManagerTab {
27
27
  }
28
28
  export declare const MANAGER_PLUGIN: "dsh-life-pack";
29
29
  /** 总管版本号(与 package.json 同步,release 时一起 bump;设置页总设置区版本行唯一来源)。 */
30
- export declare const MANAGER_VERSION: "0.2.5";
30
+ export declare const MANAGER_VERSION: "0.2.6";
31
31
  export declare const DUAL_ADD_PREFIX: "dsh plugin add dsh-life-pack";
32
32
  export declare function dualInstallCmd(singlePlugin: string): string;
33
33
  /** P3 定案 6 tab(order 升序即 + 号菜单顺序;已打开条不受 order 控制)。 */
package/dist/nav.js CHANGED
@@ -13,7 +13,7 @@
13
13
  */
14
14
  export const MANAGER_PLUGIN = 'dsh-life-pack';
15
15
  /** 总管版本号(与 package.json 同步,release 时一起 bump;设置页总设置区版本行唯一来源)。 */
16
- export const MANAGER_VERSION = '0.2.5';
16
+ export const MANAGER_VERSION = '0.2.6';
17
17
  export const DUAL_ADD_PREFIX = 'dsh plugin add dsh-life-pack';
18
18
  export function dualInstallCmd(singlePlugin) {
19
19
  return DUAL_ADD_PREFIX + ' ' + singlePlugin;
@@ -10,6 +10,13 @@
10
10
  * 手工命令形状抄第 9 节(`commands.ts:104-122` 的 `manualCommand`)。
11
11
  */
12
12
  import type { BlockedReason } from 'dsh-plugin-update';
13
+ /** 爱生活页签槽名(总管声明 `children`、各单品技能设置页注册进来;单段名,避开官方 `settings.*` 前缀)。
14
+ *
15
+ * 为什么住这里:这个名字**两侧都要用**——面板侧 `client.ts` 拿它注册/投影槽,
16
+ * 宿主侧(`update-env.ts` 的 `readPanelRegistered`)拿它判「已装产物里到底有没有注册代码」。
17
+ * 一处定义、两边引用(结构纪律「概念唯一」):名字改了只有这一行要动。
18
+ * 宿主判据为什么要读这个字面量、以及它的边界,见 `readPanelRegistered` 的头注。 */
19
+ export declare const CONFIG_TAB_SLOT: "ilife.config-tab";
13
20
  /** 载体:宿主注册 `connection.fetch.register` 的路径 / 面板 `connection.rpc.call` 的两段参数。 */
14
21
  export declare const MANAGER_RPC: {
15
22
  /** 载体基段(`connection.rpc.call` 的**第一段**参数)。传错第一段就是 404:真机上踩过一次。 */
@@ -25,7 +32,7 @@ export declare const MANAGER_RPC: {
25
32
  export declare const MANAGER_ACTIONS: {
26
33
  /** 装上缺席的目标包:入参 `{packageName, version}`,回包 `{packageName, version}`。 */
27
34
  readonly install: "ilife-manager.install";
28
- /** 七个更新目标的表:入参 `{}`,回包 `{targets: [{key, title, packageName, phones, runningVersion, installedVersion, skill}]}`。
35
+ /** 七个更新目标的表:入参 `{}`,回包 `{targets: [{key, title, packageName, phones, runningVersion, installedVersion, panelRegistered, skill}]}`。
29
36
  *
30
37
  * 电话名为什么由宿主转交而不是面板侧写死:更新包的三个电话名只有它自己知道
31
38
  * (`update.phoneNames`,`host.ts:335`);面板侧既不能 import 更新包(浏览器产物纯度门)
@@ -1 +1 @@
1
- {"version":3,"file":"update-contract.d.ts","sourceRoot":"","sources":["../src/update-contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,gFAAgF;AAChF,eAAO,MAAM,WAAW;IACtB,kEAAkE;;IAElE,2DAA2D;;IAE3D,gCAAgC;;IAEhC,wCAAwC;;CAEhC,CAAC;AAEX,wDAAwD;AACxD,eAAO,MAAM,eAAe;IAC1B,wEAAwE;;IAExE;;;;;qBAKiB;;CAET,CAAC;AAEX,+CAA+C;AAC/C,eAAO,MAAM,gBAAgB,EAAG,6BAAsC,CAAC;AAsBvE,uCAAuC;AACvC,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,iDAAiD;AACjD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,MAAM,GAAG,IAAI,CAQhB;AAED,kDAAkD;AAClD,eAAO,MAAM,eAAe,EAAE,SAAS,aAAa,EASnD,CAAC"}
1
+ {"version":3,"file":"update-contract.d.ts","sourceRoot":"","sources":["../src/update-contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD;;;;;wDAKwD;AACxD,eAAO,MAAM,eAAe,EAAG,kBAA2B,CAAC;AAE3D,gFAAgF;AAChF,eAAO,MAAM,WAAW;IACtB,kEAAkE;;IAElE,2DAA2D;;IAE3D,gCAAgC;;IAEhC,wCAAwC;;CAEhC,CAAC;AAEX,wDAAwD;AACxD,eAAO,MAAM,eAAe;IAC1B,wEAAwE;;IAExE;;;;;qBAKiB;;CAET,CAAC;AAEX,+CAA+C;AAC/C,eAAO,MAAM,gBAAgB,EAAG,6BAAsC,CAAC;AAsBvE,uCAAuC;AACvC,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,iDAAiD;AACjD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,MAAM,GAAG,IAAI,CAQhB;AAED,kDAAkD;AAClD,eAAO,MAAM,eAAe,EAAE,SAAS,aAAa,EASnD,CAAC"}
@@ -1,3 +1,10 @@
1
+ /** 爱生活页签槽名(总管声明 `children`、各单品技能设置页注册进来;单段名,避开官方 `settings.*` 前缀)。
2
+ *
3
+ * 为什么住这里:这个名字**两侧都要用**——面板侧 `client.ts` 拿它注册/投影槽,
4
+ * 宿主侧(`update-env.ts` 的 `readPanelRegistered`)拿它判「已装产物里到底有没有注册代码」。
5
+ * 一处定义、两边引用(结构纪律「概念唯一」):名字改了只有这一行要动。
6
+ * 宿主判据为什么要读这个字面量、以及它的边界,见 `readPanelRegistered` 的头注。 */
7
+ export const CONFIG_TAB_SLOT = 'ilife.config-tab';
1
8
  /** 载体:宿主注册 `connection.fetch.register` 的路径 / 面板 `connection.rpc.call` 的两段参数。 */
2
9
  export const MANAGER_RPC = {
3
10
  /** 载体基段(`connection.rpc.call` 的**第一段**参数)。传错第一段就是 404:真机上踩过一次。 */
@@ -13,7 +20,7 @@ export const MANAGER_RPC = {
13
20
  export const MANAGER_ACTIONS = {
14
21
  /** 装上缺席的目标包:入参 `{packageName, version}`,回包 `{packageName, version}`。 */
15
22
  install: 'ilife-manager.install',
16
- /** 七个更新目标的表:入参 `{}`,回包 `{targets: [{key, title, packageName, phones, runningVersion, installedVersion, skill}]}`。
23
+ /** 七个更新目标的表:入参 `{}`,回包 `{targets: [{key, title, packageName, phones, runningVersion, installedVersion, panelRegistered, skill}]}`。
17
24
  *
18
25
  * 电话名为什么由宿主转交而不是面板侧写死:更新包的三个电话名只有它自己知道
19
26
  * (`update.phoneNames`,`host.ts:335`);面板侧既不能 import 更新包(浏览器产物纯度门)
@@ -1 +1 @@
1
- {"version":3,"file":"update-contract.js","sourceRoot":"","sources":["../src/update-contract.ts"],"names":[],"mappings":"AAaA,gFAAgF;AAChF,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,kEAAkE;IAClE,IAAI,EAAE,MAAM;IACZ,2DAA2D;IAC3D,OAAO,EAAE,gBAAgB;IACzB,gCAAgC;IAChC,QAAQ,EAAE,eAAe;IACzB,wCAAwC;IACxC,IAAI,EAAE,oBAAoB;CAClB,CAAC;AAEX,wDAAwD;AACxD,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,wEAAwE;IACxE,OAAO,EAAE,uBAAuB;IAChC;;;;;qBAKiB;IACjB,OAAO,EAAE,uBAAuB;CACxB,CAAC;AAEX,+CAA+C;AAC/C,MAAM,CAAC,MAAM,gBAAgB,GAAG,6BAAsC,CAAC;AAEvE,uEAAuE;AACvE,MAAM,WAAW,GAA2B;IAC1C,iBAAiB,EAAE,6CAA6C;IAChE,gBAAgB,EAAE,mCAAmC;IACrD,sBAAsB,EAAE,6CAA6C;IACrE,sBAAsB,EAAE,gCAAgC;IACxD,iBAAiB,EAAE,2BAA2B;IAC9C,mBAAmB,EAAE,8CAA8C;IACnE,mBAAmB,EAAE,kDAAkD;IACvE,mBAAmB,EAAE,sCAAsC;IAC3D,cAAc,EAAE,qCAAqC;IACrD,iBAAiB,EAAE,2CAA2C;IAC9D,eAAe,EAAE,iCAAiC;IAClD,aAAa,EAAE,0BAA0B;IACzC,gBAAgB,EAAE,yBAAyB;IAC3C,qBAAqB,EAAE,0CAA0C;IACjE,aAAa,EAAE,8BAA8B;IAC7C,QAAQ,EAAE,8BAA8B;CACzC,CAAC;AAEF,uCAAuC;AACvC,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,OAAO,GAAG,IAAI,GAAG,mBAAmB,CAAC;AACnE,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,oBAAoB,CAAC,KAKpC;IACC,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAClH,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAChH,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,IAAI,gBAAgB,CAAC;IACvD,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAChF,OAAO,uBAAuB,GAAG,UAAU,GAAG,oBAAoB,GAAG,KAAK,CAAC,WAAW,GAAG,GAAG,GAAG,OAAO,GAAG,cAAc,GAAG,QAAQ,CAAC;AACrI,CAAC;AAED,kDAAkD;AAClD,MAAM,CAAC,MAAM,eAAe,GAA6B;IACvD,iBAAiB;IACjB,gBAAgB;IAChB,sBAAsB;IACtB,sBAAsB;IACtB,iBAAiB;IACjB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;CACpB,CAAC"}
1
+ {"version":3,"file":"update-contract.js","sourceRoot":"","sources":["../src/update-contract.ts"],"names":[],"mappings":"AAaA;;;;;wDAKwD;AACxD,MAAM,CAAC,MAAM,eAAe,GAAG,kBAA2B,CAAC;AAE3D,gFAAgF;AAChF,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,kEAAkE;IAClE,IAAI,EAAE,MAAM;IACZ,2DAA2D;IAC3D,OAAO,EAAE,gBAAgB;IACzB,gCAAgC;IAChC,QAAQ,EAAE,eAAe;IACzB,wCAAwC;IACxC,IAAI,EAAE,oBAAoB;CAClB,CAAC;AAEX,wDAAwD;AACxD,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,wEAAwE;IACxE,OAAO,EAAE,uBAAuB;IAChC;;;;;qBAKiB;IACjB,OAAO,EAAE,uBAAuB;CACxB,CAAC;AAEX,+CAA+C;AAC/C,MAAM,CAAC,MAAM,gBAAgB,GAAG,6BAAsC,CAAC;AAEvE,uEAAuE;AACvE,MAAM,WAAW,GAA2B;IAC1C,iBAAiB,EAAE,6CAA6C;IAChE,gBAAgB,EAAE,mCAAmC;IACrD,sBAAsB,EAAE,6CAA6C;IACrE,sBAAsB,EAAE,gCAAgC;IACxD,iBAAiB,EAAE,2BAA2B;IAC9C,mBAAmB,EAAE,8CAA8C;IACnE,mBAAmB,EAAE,kDAAkD;IACvE,mBAAmB,EAAE,sCAAsC;IAC3D,cAAc,EAAE,qCAAqC;IACrD,iBAAiB,EAAE,2CAA2C;IAC9D,eAAe,EAAE,iCAAiC;IAClD,aAAa,EAAE,0BAA0B;IACzC,gBAAgB,EAAE,yBAAyB;IAC3C,qBAAqB,EAAE,0CAA0C;IACjE,aAAa,EAAE,8BAA8B;IAC7C,QAAQ,EAAE,8BAA8B;CACzC,CAAC;AAEF,uCAAuC;AACvC,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,OAAO,GAAG,IAAI,GAAG,mBAAmB,CAAC;AACnE,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,oBAAoB,CAAC,KAKpC;IACC,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAClH,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAChH,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,IAAI,gBAAgB,CAAC;IACvD,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAChF,OAAO,uBAAuB,GAAG,UAAU,GAAG,oBAAoB,GAAG,KAAK,CAAC,WAAW,GAAG,GAAG,GAAG,OAAO,GAAG,cAAc,GAAG,QAAQ,CAAC;AACrI,CAAC;AAED,kDAAkD;AAClD,MAAM,CAAC,MAAM,eAAe,GAA6B;IACvD,iBAAiB;IACjB,gBAAgB;IAChB,sBAAsB;IACtB,sBAAsB;IACtB,iBAAiB;IACjB,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;CACpB,CAAC"}
@@ -18,6 +18,22 @@ export interface TargetEnvOptions {
18
18
  export declare function readTargetEnvironment(packageName: string, options: TargetEnvOptions): Promise<EnvironmentView>;
19
19
  /** 启动期捕获一家的运行版本:加载那一刻磁盘上的版本,读不到即 null(这家还没装)。 */
20
20
  export declare function captureRunningVersion(packageName: string, profileDir: string): Promise<string | null>;
21
+ /** 读一家**已装产物**里有没有爱生活页签槽的注册代码(面板缺席卡三态要的第三个事实)。
22
+ *
23
+ * 为什么要读产物而不是只问版本号:这个事实**版本号答不出来**。真机实测(2026-09-19):
24
+ * 作息/居家/大厨/记账四家的已发布 0.2.0 产物里根本没有注册代码(票 #723),
25
+ * 它们的页签槽永远空着;只按「装了没有」分态,面板就会把这种情形说成「已装但没接上,
26
+ * 重启试试」——那是叫用户去做一件不可能有用的事。判据只能是产物里那个槽名字面量。
27
+ *
28
+ * 边界(必须说清,否则这个读数会被当成保证):
29
+ * - 判据是**源码里那个槽名常量(`CONFIG_TAB_SLOT`)的字符串**。产物是构建期打包的(tsdown),
30
+ * 故字面量会原样留在产物里(两侧同源:单品的注册代码里写的也是这个名字)。
31
+ * - 打包器若哪天把表达式改写成「拼接出名字」(如 `'ilife' + '.config-tab'`),本读数会漏报;
32
+ * 那时表现为面板少一态、退回「装了但没接上」,不会误报成「没装」。
33
+ * - 读不到出口文件、或产物读不出这个字符串 ⇒ 一律 false:**判据缺席时不给肯定结论**
34
+ * (宁可让用户看到「等它发新版」这句偏保守的话,不可把可能已注册的产物说成已注册)。
35
+ */
36
+ export declare function readPanelRegistered(packageName: string, profileDir: string): Promise<boolean>;
21
37
  /** 版本行要的「技能包随插件」事实:插件包 manifest 里那条 `skill-*` 依赖(精确 pin)。 */
22
38
  export declare function readSkillRide(packageName: string, profileDir: string): Promise<{
23
39
  packageName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"update-env.d.ts","sourceRoot":"","sources":["../src/update-env.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAE1E,6DAA6D;AAC7D,eAAO,MAAM,uBAAuB,EAAG,OAAgB,CAAC;AA6DxD,MAAM,WAAW,gBAAgB;IAC/B,oBAAoB;IACpB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,sBAAsB;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,6DAA6D;IAC7D,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,6BAA6B;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,qDAAqD;IACrD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,yCAAyC;AACzC,wBAAsB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CA+EpH;AAED,iDAAiD;AACjD,wBAAsB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQ3G;AAED,6DAA6D;AAC7D,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAY1D;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAkChF"}
1
+ {"version":3,"file":"update-env.d.ts","sourceRoot":"","sources":["../src/update-env.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAG1E,6DAA6D;AAC7D,eAAO,MAAM,uBAAuB,EAAG,OAAgB,CAAC;AA6DxD,MAAM,WAAW,gBAAgB;IAC/B,oBAAoB;IACpB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,sBAAsB;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,6DAA6D;IAC7D,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,6BAA6B;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,qDAAqD;IACrD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,yCAAyC;AACzC,wBAAsB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CA+EpH;AAED,iDAAiD;AACjD,wBAAsB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQ3G;AAUD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAuCnG;AAED,6DAA6D;AAC7D,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAY1D;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAkChF"}