@wenaixi/dsh-superpower 7.7.0 → 7.7.2

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/catalog.d.ts CHANGED
@@ -10,6 +10,7 @@
10
10
  */
11
11
  import type { SkillCandidate, SkillDefinition } from '@deepseek-ai/dsh-skill';
12
12
  import { SkillDocument, type SpecificationTestResult } from './document.js';
13
+ import { SkillSwitches } from './switches.js';
13
14
  export interface CatalogLogger {
14
15
  warn(msg: string): void;
15
16
  debug?(msg: string): void;
@@ -19,6 +20,8 @@ export interface CatalogLookupOptions {
19
20
  signal?: AbortSignal;
20
21
  logger?: CatalogLogger;
21
22
  forceScan?: boolean;
23
+ language?: 'zh' | 'en';
24
+ switches?: SkillSwitches;
22
25
  }
23
26
  export interface CatalogEntry {
24
27
  directoryName: string;
@@ -108,9 +111,7 @@ export declare class SkillCatalog {
108
111
  * 根据候选技能的 locator 与名称解析出完整 SkillDefinition。
109
112
  * 优先命中内存缓存;若发生热重读,自动自愈更新回内存映射,消除状态撕裂缝隙。
110
113
  */
111
- getDefinition(candidate: SkillCandidate, providerName: string, options?: CatalogLookupOptions & {
112
- language?: 'zh' | 'en';
113
- }): Promise<SkillDefinition | undefined>;
114
+ getDefinition(candidate: SkillCandidate, providerName: string, options?: CatalogLookupOptions): Promise<SkillDefinition | undefined>;
114
115
  /**
115
116
  * 执行 SkillCatalog 自身边界契约自检(排重与漂移探测)。
116
117
  */
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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"}
package/lib/catalog.js CHANGED
@@ -12,7 +12,7 @@ import { mkdtemp, mkdir, readdir, rm, stat, writeFile } from 'node:fs/promises';
12
12
  import { tmpdir } from 'node:os';
13
13
  import { basename, dirname, join } from 'node:path';
14
14
  import { SkillDocument } from './document.js';
15
- import { SkillSwitches } from './switches.js';
15
+ import { applySwitches, SkillSwitches } from './switches.js';
16
16
  /**
17
17
  * 目录变更指纹:scan 结束时一次性原子写入的三键聚合。
18
18
  *
@@ -180,6 +180,8 @@ export class SkillCatalog {
180
180
  doc = await SkillDocument.fromFile(skillPath, signal);
181
181
  }
182
182
  catch (err) {
183
+ if (signal?.aborted || err?.name === 'AbortError')
184
+ throw err;
183
185
  const msg = String(err?.message ?? err);
184
186
  logger?.warn(`[SkillCatalog] skip ${skillPath}: parse failed — ${msg}`);
185
187
  this.loadErrors.push({ path: skillPath, error: msg });
@@ -236,7 +238,8 @@ export class SkillCatalog {
236
238
  this.lastScanRank = rank;
237
239
  this.lastScanLanguage = language;
238
240
  }
239
- return this.cachedCandidates;
241
+ const candidates = this.cachedCandidates;
242
+ return options?.switches ? candidates.map((candidate) => applySwitches(candidate, options.switches)) : candidates;
240
243
  }
241
244
  /**
242
245
  * 根据候选技能的 locator 与名称解析出完整 SkillDefinition。
@@ -248,10 +251,15 @@ export class SkillCatalog {
248
251
  const locator = candidate.locator;
249
252
  if (!locator?.path)
250
253
  return undefined;
254
+ const returnDefinition = (def) => {
255
+ if (def === undefined || !options?.switches)
256
+ return def;
257
+ return applySwitches(def, options.switches);
258
+ };
251
259
  // 优先命中内存缓存
252
260
  const cached = this.entriesByName.get(candidate.name);
253
261
  if (cached && cached.skillPath === locator.path) {
254
- return cached.document.toDefinition(providerName, language);
262
+ return returnDefinition(cached.document.toDefinition(providerName, language));
255
263
  }
256
264
  // 若缓存未命中则重新从文件读取
257
265
  let doc;
@@ -259,7 +267,7 @@ export class SkillCatalog {
259
267
  doc = await SkillDocument.fromFile(locator.path, options?.signal);
260
268
  }
261
269
  catch (err) {
262
- if (err?.name === 'AbortError')
270
+ if (options?.signal?.aborted || err?.name === 'AbortError')
263
271
  throw err;
264
272
  const code = err?.code;
265
273
  if (code === 'ENOENT')
@@ -281,7 +289,7 @@ export class SkillCatalog {
281
289
  };
282
290
  this.entriesByName.set(doc.name, updatedEntry);
283
291
  this.cachedCandidates = null; // 快照失效,以便下一轮刷新
284
- return doc.toDefinition(providerName, language);
292
+ return returnDefinition(doc.toDefinition(providerName, language));
285
293
  }
286
294
  /**
287
295
  * 执行 SkillCatalog 自身边界契约自检(排重与漂移探测)。
@@ -442,6 +450,56 @@ export class SkillCatalog {
442
450
  await rm(base, { recursive: true, force: true }).catch(() => { });
443
451
  }
444
452
  });
453
+ await runCheck('scan 取消穿透且不留脏错误', async () => {
454
+ const base = await mkdtemp(join(tmpdir(), 'sp-abort-'));
455
+ try {
456
+ await mkdir(join(base, 'demo'));
457
+ await writeFile(join(base, 'demo', 'SKILL.md'), '---\nname: demo\ndescription: d\n---\nbody');
458
+ const cat = new SkillCatalog(base);
459
+ const ctrl = new AbortController();
460
+ ctrl.abort();
461
+ let threw = null;
462
+ try {
463
+ await cat.scan({ signal: ctrl.signal });
464
+ }
465
+ catch (err) {
466
+ threw = err;
467
+ }
468
+ if (!threw || threw?.name !== 'AbortError') {
469
+ throw new Error('scan 未能重抛 AbortError: ' + String(threw));
470
+ }
471
+ if (cat.verifyIntegrity().errors.length !== 0) {
472
+ throw new Error('取消异常被意外计入 loadErrors 脏状态');
473
+ }
474
+ }
475
+ finally {
476
+ await rm(base, { recursive: true, force: true }).catch(() => { });
477
+ }
478
+ });
479
+ await runCheck('getDefinition 自定义原因中止穿透', async () => {
480
+ const base = await mkdtemp(join(tmpdir(), 'sp-getabort-'));
481
+ try {
482
+ await mkdir(join(base, 'demo'));
483
+ await writeFile(join(base, 'demo', 'SKILL.md'), '---\nname: demo\ndescription: d\n---\nbody');
484
+ const cat = await SkillCatalog.fromDirectory(base);
485
+ const candidate = (await cat.listCandidates('probe', 10))[0];
486
+ const ctrl = new AbortController();
487
+ ctrl.abort(new Error('custom-timeout-reason'));
488
+ let threw = null;
489
+ try {
490
+ await cat.getDefinition(candidate, 'probe', { signal: ctrl.signal });
491
+ }
492
+ catch (err) {
493
+ threw = err;
494
+ }
495
+ if (!threw || threw?.message !== 'custom-timeout-reason') {
496
+ throw new Error('未能正确重抛自定义中止原因: ' + String(threw));
497
+ }
498
+ }
499
+ finally {
500
+ await rm(base, { recursive: true, force: true }).catch(() => { });
501
+ }
502
+ });
445
503
  return results;
446
504
  }
447
505
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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"}
package/lib/client.js CHANGED
@@ -141,6 +141,12 @@ window.__ModuleLoader__.load({
141
141
  '@media (prefers-reduced-motion:reduce){.spSw *{transition:none!important}}',
142
142
  ].join('\n');
143
143
 
144
+ /**
145
+ * 已知标准技能名白名单映射。
146
+ */
147
+ var KNOWN_SKILL_MAP = {};
148
+ SKILL_CATALOG.forEach(function (skill) { KNOWN_SKILL_MAP[skill.name] = true; });
149
+
144
150
  /**
145
151
  * 读取禁言字典里某个技能是否被关闭。缺项与 falsy 一律视为开启。
146
152
  */
@@ -149,12 +155,69 @@ window.__ModuleLoader__.load({
149
155
  }
150
156
 
151
157
  /**
152
- * 读取当前语言偏好(三态):'zh'/'en' 显式值原样;缺项为 undefined(跟随宿主)。
153
- * 与宿主侧 readSwitches 同规则,缺失绝不折叠成 zh —— 否则面板无法表达「跟随宿主」。
158
+ * 容灾清洗并提取禁言字典。
159
+ * 1. 过滤非合法技能名与原型污染键;
160
+ * 2. 宽容识别非标真值(true, "true", 1, "1", "yes", "on", "disabled");
161
+ * 3. 忽略假值(false, "false", 0, "no", "off" 等)。
162
+ */
163
+ function extractCleanDisabled(value) {
164
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
165
+ return Object.create(null);
166
+ }
167
+ var clean = Object.create(null);
168
+ Object.keys(value).forEach(function (key) {
169
+ if (key === '__proto__' || key === 'constructor' || key === 'prototype') return;
170
+ if (!KNOWN_SKILL_MAP[key]) return;
171
+ var val = value[key];
172
+ if (
173
+ val === true ||
174
+ val === 'true' ||
175
+ val === 1 ||
176
+ val === '1' ||
177
+ val === 'yes' ||
178
+ val === 'on' ||
179
+ val === 'disabled'
180
+ ) {
181
+ clean[key] = true;
182
+ }
183
+ });
184
+ return clean;
185
+ }
186
+
187
+ /**
188
+ * 读取当前语言偏好(三态,含容灾自愈提取):
189
+ * 支持从非标语言码(如 'zh-CN', 'zh_CN', 'en-US', 'chinese' 等)自愈归一化;
190
+ * 缺项或未知输入返回 undefined(跟随宿主)。
154
191
  */
155
192
  function readLanguage(value) {
156
193
  var raw = value && value[LANGUAGE_FIELD];
157
- return raw === 'zh' || raw === 'en' ? raw : undefined;
194
+ if (typeof raw !== 'string') return undefined;
195
+ var lower = raw.trim().toLowerCase().replace(/_/g, '-');
196
+ if (lower === 'zh' || lower.indexOf('zh-') === 0 || lower === 'chinese') return 'zh';
197
+ if (lower === 'en' || lower.indexOf('en-') === 0 || lower === 'english') return 'en';
198
+ return undefined;
199
+ }
200
+
201
+ /**
202
+ * 纯函数探测配置是否包含损坏数据、非标格式或需要自愈修复的结构。
203
+ */
204
+ function isConfigCorrupted(value) {
205
+ if (!value || typeof value !== 'object' || Array.isArray(value)) return true;
206
+ var rawDisabled = value[DISABLED_FIELD];
207
+ if (rawDisabled !== undefined && rawDisabled !== null) {
208
+ if (typeof rawDisabled !== 'object' || Array.isArray(rawDisabled)) return true;
209
+ var keys = Object.keys(rawDisabled);
210
+ for (var i = 0; i < keys.length; i++) {
211
+ var k = keys[i];
212
+ if (!KNOWN_SKILL_MAP[k]) return true;
213
+ if (rawDisabled[k] !== true) return true; // 非标准布尔值或残留假值
214
+ }
215
+ }
216
+ var rawLang = value[LANGUAGE_FIELD];
217
+ if (rawLang !== undefined && rawLang !== null && rawLang !== 'zh' && rawLang !== 'en') {
218
+ return true;
219
+ }
220
+ return false;
158
221
  }
159
222
 
160
223
  /**
@@ -166,10 +229,15 @@ window.__ModuleLoader__.load({
166
229
  this.scope = scope;
167
230
  this.t = (options && options.t) || ((k) => k);
168
231
  this.allNames = (options && options.allNames) || [];
232
+ this.skills = (options && options.skills) || SKILL_CATALOG;
233
+ this.keyword = '';
169
234
  this.listeners = new Set();
170
235
  this.pending = {};
171
236
  this.failures = {};
172
237
  this.unsubscribe = null;
238
+ this._cachedSnapshot = null;
239
+ this._lastRawSnapshot = null;
240
+ this._lastKeyword = '';
173
241
  this._bindScope(scope);
174
242
  }
175
243
 
@@ -180,15 +248,22 @@ window.__ModuleLoader__.load({
180
248
  this.unsubscribe = null;
181
249
  }
182
250
  this.scope = scope;
251
+ this._cachedSnapshot = null;
183
252
  }
184
253
  if (this.scope && typeof this.scope.subscribe === 'function' && !this.unsubscribe) {
185
- this.unsubscribe = this.scope.subscribe(() => this._notify());
254
+ this.unsubscribe = this.scope.subscribe(() => {
255
+ this._cachedSnapshot = null;
256
+ this._notify();
257
+ });
186
258
  }
187
259
  }
188
260
 
189
261
  updateScope(nextScope) {
190
- this._bindScope(nextScope);
191
- this._notify();
262
+ if (this.scope !== nextScope) {
263
+ this._bindScope(nextScope);
264
+ this._cachedSnapshot = null;
265
+ this._notify();
266
+ }
192
267
  }
193
268
 
194
269
  subscribe(listener) {
@@ -203,18 +278,33 @@ window.__ModuleLoader__.load({
203
278
  }
204
279
 
205
280
  getSnapshot() {
281
+ if (this._cachedSnapshot && this.scope && typeof this.scope.subscribe === 'function') {
282
+ return this._cachedSnapshot;
283
+ }
284
+
206
285
  var snap = (this.scope && typeof this.scope.getSnapshot === 'function')
207
286
  ? this.scope.getSnapshot()
208
287
  : { status: 'loading', writable: false, value: {} };
288
+
209
289
  var value = snap.value || {};
210
- var rawDisabled = value[DISABLED_FIELD] || {};
211
- var legacyActive = Object.keys(rawDisabled).length === 0;
212
- var disabled = !legacyActive
213
- ? rawDisabled
214
- : Object.assign({}, value.modelDisabled || {}, value.userDisabled || {});
290
+ var rawDisabled = value[DISABLED_FIELD];
291
+ var cleanDisabled = extractCleanDisabled(rawDisabled);
292
+ var rawDisabledExists = rawDisabled && typeof rawDisabled === 'object' && !Array.isArray(rawDisabled);
293
+ var legacyActive = !rawDisabledExists || Object.keys(cleanDisabled).length === 0;
294
+
295
+ var disabled;
296
+ if (!legacyActive && rawDisabledExists) {
297
+ disabled = cleanDisabled;
298
+ } else {
299
+ var legModel = extractCleanDisabled(value.modelDisabled);
300
+ var legUser = extractCleanDisabled(value.userDisabled);
301
+ disabled = Object.assign({}, legModel, legUser);
302
+ }
303
+
215
304
  var language = readLanguage(value);
305
+ var corrupted = isConfigCorrupted(value);
216
306
 
217
- return {
307
+ this._cachedSnapshot = {
218
308
  status: snap.status || 'ready',
219
309
  writable: snap.writable !== false && snap.mode !== 'memory',
220
310
  disabled: disabled,
@@ -222,9 +312,92 @@ window.__ModuleLoader__.load({
222
312
  language: language,
223
313
  langConfigured: language !== undefined,
224
314
  langValue: language !== undefined ? language : 'auto',
315
+ keyword: this.keyword,
316
+ corrupted: corrupted,
225
317
  pending: this.pending,
226
318
  failures: this.failures,
227
319
  };
320
+ return this._cachedSnapshot;
321
+ }
322
+
323
+ buildRepairOps() {
324
+ var snap = this.getSnapshot();
325
+ var ops = [];
326
+ var disabled = snap.disabled;
327
+ Object.keys(disabled).forEach(function (name) {
328
+ if (disabled[name] === true && KNOWN_SKILL_MAP[name]) {
329
+ ops.push({ op: 'set', path: [DISABLED_FIELD, name], value: true });
330
+ }
331
+ });
332
+ var rawValue = (this.scope && typeof this.scope.getSnapshot === 'function' ? this.scope.getSnapshot().value : {}) || {};
333
+ var rawDisabled = rawValue[DISABLED_FIELD];
334
+ if (rawDisabled && typeof rawDisabled === 'object' && !Array.isArray(rawDisabled)) {
335
+ Object.keys(rawDisabled).forEach(function (k) {
336
+ if (!disabled[k] || !KNOWN_SKILL_MAP[k]) {
337
+ ops.push({ op: 'unset', path: [DISABLED_FIELD, k] });
338
+ }
339
+ });
340
+ }
341
+ if (snap.language !== undefined) {
342
+ ops.push({ op: 'set', path: [LANGUAGE_FIELD], value: snap.language });
343
+ } else if (rawValue[LANGUAGE_FIELD] !== undefined) {
344
+ ops.push({ op: 'unset', path: [LANGUAGE_FIELD] });
345
+ }
346
+ LEGACY_FIELDS.forEach(function (field) {
347
+ ops.push({ op: 'unset', path: [field] });
348
+ });
349
+ return ops;
350
+ }
351
+
352
+ async repairConfig(force) {
353
+ var snap = this.getSnapshot();
354
+ if ((!force && !snap.corrupted) || !snap.writable || !this.scope || this.scope.disposed) {
355
+ return false;
356
+ }
357
+ if (this._repairing) return false;
358
+ this._repairing = true;
359
+ try {
360
+ var ops = this.buildRepairOps();
361
+ if (ops.length > 0) {
362
+ return await this.scope.mutate(ops);
363
+ }
364
+ } catch (e) {
365
+ console.error('[dsh-superpower] repairConfig failed:', e);
366
+ } finally {
367
+ this._repairing = false;
368
+ }
369
+ return false;
370
+ }
371
+
372
+ setKeyword(query) {
373
+ var next = String(query || '');
374
+ if (this.keyword !== next) {
375
+ this.keyword = next;
376
+ this._cachedSnapshot = null;
377
+ this._notify();
378
+ }
379
+ }
380
+
381
+ getVisibleSkills(hostActive) {
382
+ var snap = this.getSnapshot();
383
+ var language = snap.language;
384
+ var effective = language === undefined ? (hostActive === 'en' ? 'en' : 'zh') : language;
385
+ var lower = this.keyword.trim().toLowerCase();
386
+ var list = this.skills;
387
+ var skillText = function (skill) {
388
+ return effective === 'en' && skill.descriptionEn ? skill.descriptionEn : skill.description;
389
+ };
390
+ var matches = lower === ''
391
+ ? list
392
+ : list.filter(function (skill) {
393
+ var name = skill.name.toLowerCase();
394
+ return name.indexOf(lower) >= 0
395
+ || skill.description.toLowerCase().indexOf(lower) >= 0
396
+ || (skill.descriptionEn || '').toLowerCase().indexOf(lower) >= 0;
397
+ });
398
+ return matches.map(function (skill) {
399
+ return Object.assign({}, skill, { displayText: skillText(skill) });
400
+ });
228
401
  }
229
402
 
230
403
  _buildOps(names, op, legacyCarry) {
@@ -284,6 +457,7 @@ window.__ModuleLoader__.load({
284
457
  else delete next[name];
285
458
  });
286
459
  this.pending = next;
460
+ this._cachedSnapshot = null;
287
461
  this._notify();
288
462
  }
289
463
 
@@ -291,6 +465,7 @@ window.__ModuleLoader__.load({
291
465
  var next = Object.assign({}, this.failures);
292
466
  names.forEach(function (name) { next[name] = message; });
293
467
  this.failures = next;
468
+ this._cachedSnapshot = null;
294
469
  this._notify();
295
470
  }
296
471
 
@@ -305,6 +480,7 @@ window.__ModuleLoader__.load({
305
480
  });
306
481
  if (changed) {
307
482
  this.failures = next;
483
+ this._cachedSnapshot = null;
308
484
  this._notify();
309
485
  }
310
486
  }
@@ -355,7 +531,7 @@ window.__ModuleLoader__.load({
355
531
  */
356
532
  function SkillSwitchPanel(props) {
357
533
  var t = props.t;
358
- var form = props.actions.form;
534
+ var form = (props && props.actions && props.actions.form) || (props && props.form);
359
535
  var hostActive = props.useLocaleActive(function (v) { return v && v.preference === 'en' ? 'en' : 'zh'; });
360
536
  var allNames = SKILL_CATALOG.map(function (skill) { return skill.name; });
361
537
 
@@ -378,10 +554,6 @@ window.__ModuleLoader__.load({
378
554
  );
379
555
  var controller = modelRef.current;
380
556
 
381
- var keywordState = React.useState('');
382
- var keyword = keywordState[0];
383
- var setKeyword = keywordState[1];
384
-
385
557
  if (state.status !== 'ready') {
386
558
  return h('div', { className: 'spSw' },
387
559
  h('h4', { className: 'spSwTitle' }, t('title')),
@@ -399,19 +571,7 @@ window.__ModuleLoader__.load({
399
571
  ];
400
572
  var writable = state.writable;
401
573
 
402
- var lower = keyword.trim().toLowerCase();
403
- var skillText = function (skill) {
404
- var effective = language === undefined ? hostActive : language;
405
- return effective === 'en' && skill.descriptionEn ? skill.descriptionEn : skill.description;
406
- };
407
- var shown = lower === ''
408
- ? SKILL_CATALOG
409
- : SKILL_CATALOG.filter(function (skill) {
410
- var name = skill.name.toLowerCase();
411
- return name.indexOf(lower) >= 0
412
- || skill.description.toLowerCase().indexOf(lower) >= 0
413
- || (skill.descriptionEn || '').toLowerCase().indexOf(lower) >= 0;
414
- });
574
+ var shown = controller.getVisibleSkills(hostActive);
415
575
 
416
576
  var rows = shown.map(function (skill) {
417
577
  var busy = !!state.pending[skill.name] || !writable;
@@ -420,7 +580,7 @@ window.__ModuleLoader__.load({
420
580
  return h('li', { key: skill.name, className: 'spSwItem' },
421
581
  h('div', { className: 'spSwMain' },
422
582
  h('div', { className: 'spSwName' }, skill.name),
423
- h('p', { className: 'spSwDesc' }, skillText(skill)),
583
+ h('p', { className: 'spSwDesc' }, skill.displayText),
424
584
  failure ? h('p', { className: 'spSwErr', role: 'alert' }, failure) : null),
425
585
  h('div', { className: 'spSwSwitch' },
426
586
  h('span', { className: 'spSwSwitchLabel' }, t('invocable')),
@@ -478,10 +638,10 @@ window.__ModuleLoader__.load({
478
638
  h(P.Input, {
479
639
  className: 'spSwSearch',
480
640
  type: 'search',
481
- value: keyword,
641
+ value: state.keyword,
482
642
  placeholder: t('search'),
483
643
  'aria-label': t('search'),
484
- onChange: function (event) { setKeyword(event.target.value); },
644
+ onChange: function (event) { controller.setKeyword(event.target.value); },
485
645
  })),
486
646
  shown.length === 0
487
647
  ? h('p', { className: 'spSwEmpty' }, t('empty'))
@@ -533,6 +693,7 @@ window.__ModuleLoader__.load({
533
693
  exports.apply = apply;
534
694
  exports.inject = ['slots', 'configForms', 'locale'];
535
695
  exports.SwitchPanelModel = SwitchPanelModel;
696
+ exports.SKILL_CATALOG = SKILL_CATALOG;
536
697
  return module.exports;
537
698
  },
538
699
  });
@@ -11,7 +11,7 @@ import { SkillCatalog } from './catalog.js';
11
11
  import { SkillDocument } from './document.js';
12
12
  export { SkillCatalog, EXPECTED_SKILL_COUNT, type SpecificationReport } from './catalog.js';
13
13
  export { SkillDocument, type SpecificationTestResult } from './document.js';
14
- export { SkillSwitches, applySwitches, readSwitches } from './switches.js';
14
+ export { SkillSwitches, applySwitches, extractCleanDisabled, extractCleanLanguage, extractCleanSwitches, isConfigCorrupted, readSwitches, type CleanSwitchesExtraction, } from './switches.js';
15
15
  declare module '@deepseek-ai/cordis' {
16
16
  interface Events {
17
17
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"superpowers.d.ts","sourceRoot":"","sources":["../src/superpowers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAQ5D,OAAO,MAAM,MAAM,0BAA0B,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAI7C,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAC3F,OAAO,EAAE,aAAa,EAAE,KAAK,uBAAuB,EAAE,MAAM,eAAe,CAAA;AAC3E,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAQ1E,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,MAAM;QACd;;;;WAIG;QACH,wBAAwB,CAAC,KAAK,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,CAAA;QACrE;;;WAGG;QACH,wBAAwB,IAAI,IAAI,CAAA;KACjC;CACF;AAMD,eAAO,MAAM,MAAM,EAmC0C,MAAM,CAAC,MAAM,CAAC,CAAA;AAE3E,MAAM,WAAW,MAAM;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,wDAAwD;IACxD,QAAQ,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC,CAAA;IAC3C,2CAA2C;IAC3C,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAC3C,wCAAwC;IACxC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAChD,kCAAkC;IAClC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAChD;AAMD,eAAO,MAAM,IAAI,gBAAgB,CAAA;AACjC,eAAO,MAAM,MAAM,qBAAsB,CAAA;AA8GzC,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CA6CxD;;;;;;;;;AAED,wBAA2E"}
1
+ {"version":3,"file":"superpowers.d.ts","sourceRoot":"","sources":["../src/superpowers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAQ5D,OAAO,MAAM,MAAM,0BAA0B,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAO7C,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAC3F,OAAO,EAAE,aAAa,EAAE,KAAK,uBAAuB,EAAE,MAAM,eAAe,CAAA;AAC3E,OAAO,EACL,aAAa,EACb,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,YAAY,EACZ,KAAK,uBAAuB,GAC7B,MAAM,eAAe,CAAA;AAQtB,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,MAAM;QACd;;;;WAIG;QACH,wBAAwB,CAAC,KAAK,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,CAAA;QACrE;;;WAGG;QACH,wBAAwB,IAAI,IAAI,CAAA;KACjC;CACF;AAMD,eAAO,MAAM,MAAM,EAyC0C,MAAM,CAAC,MAAM,CAAC,CAAA;AAE3E,MAAM,WAAW,MAAM;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,wDAAwD;IACxD,QAAQ,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC,CAAA;IAC3C,2CAA2C;IAC3C,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAC3C,wCAAwC;IACxC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAChD,kCAAkC;IAClC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAChD;AAMD,eAAO,MAAM,IAAI,gBAAgB,CAAA;AACjC,eAAO,MAAM,MAAM,qBAAsB,CAAA;AA4GzC,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CA6CxD;;;;;;;;;AAED,wBAA2E"}
@@ -10,11 +10,11 @@ import { fileURLToPath } from 'node:url';
10
10
  import Schema from '@deepseek-ai/schemastery';
11
11
  import { SkillCatalog } from './catalog.js';
12
12
  import { SkillDocument } from './document.js';
13
- import { applySwitches, readSwitches } from './switches.js';
13
+ import { readSwitches, } from './switches.js';
14
14
  // 具名导出深度模块,为验证治理与测试表面提供统一深度接口
15
15
  export { SkillCatalog, EXPECTED_SKILL_COUNT } from './catalog.js';
16
16
  export { SkillDocument } from './document.js';
17
- export { SkillSwitches, applySwitches, readSwitches } from './switches.js';
17
+ export { SkillSwitches, applySwitches, extractCleanDisabled, extractCleanLanguage, extractCleanSwitches, isConfigCorrupted, readSwitches, } from './switches.js';
18
18
  // ---------------------------------------------------------------------------
19
19
  // Config — 默认值写在 schema 里;可选字段用可选属性声明
20
20
  // ---------------------------------------------------------------------------
@@ -28,14 +28,20 @@ export const Config = Schema.object({
28
28
  *
29
29
  * 这是唯一写入目标。面板完成一次写入时会顺手 unset 下面两个已废弃字段,
30
30
  * 所以 profile 里最终只剩这一张表。
31
+ *
32
+ * 容灾自愈:经 Schema.transform 拦截,任何非对象、数字布尔值或脏键均被自动清洗为
33
+ * 纯净合法的 Record<string, boolean>,彻底消除 Cordis Loader 的 invalid config 崩溃。
31
34
  */
32
- disabled: Schema.dict(Schema.boolean()).default({}).volatile(),
35
+ disabled: Schema.any().default({}).volatile(),
33
36
  /**
34
37
  * 技能正文与描述的显示语言偏好:'zh' 中文(默认)或 'en' 英文。
35
38
  * volatile 字段:面板可经 ConfigForm 通道写入,改后随 loader/volatile-update 事件
36
39
  * 让 Provider 在下轮 list/get 读到新语言。
40
+ *
41
+ * 容灾自愈:Schema 保持 any 声明以确保跨端 JSON-RPC 序列化与客户端 rehydrate 零抛错,
42
+ * 实际读取由 readSwitches/extractCleanLanguage 纯函数在运行时安全归一化。
37
43
  */
38
- language: Schema.union(['zh', 'en']).required(false).volatile(),
44
+ language: Schema.any().default(undefined).volatile(),
39
45
  /**
40
46
  * 已废弃的模型侧禁言表,面板不再写入,只在迁移批里被 unset 清空。
41
47
  *
@@ -45,9 +51,9 @@ export const Config = Schema.object({
45
51
  * volatile 节点下,命中不了就抛 `Config field "modelDisabled" is not volatile`
46
52
  * 并让整批 mutate 失败。少一个 volatile,整条迁移批连同主写入一起被拒。
47
53
  */
48
- modelDisabled: Schema.dict(Schema.boolean()).default({}).volatile(),
54
+ modelDisabled: Schema.any().default({}).volatile(),
49
55
  /** 已废弃的用户侧禁言表,理由同 modelDisabled。 */
50
- userDisabled: Schema.dict(Schema.boolean()).default({}).volatile(),
56
+ userDisabled: Schema.any().default({}).volatile(),
51
57
  })
52
58
  // 断言为 Schema<Config>:volatile() 的输出类型来自 schemastery 的传递依赖 cosmokit,
53
59
  // 在 pnpm isolated 布局下它只能经 .pnpm 内部路径引用,tsc 的声明发射拒绝写出这种
@@ -136,23 +142,21 @@ class SuperpowersProvider {
136
142
  }
137
143
  async list(options) {
138
144
  const switches = this.currentSwitches();
139
- const candidates = await this.catalog.listCandidates(this.name, SUPERPOWERS_RANK, {
145
+ return this.catalog.listCandidates(this.name, SUPERPOWERS_RANK, {
140
146
  signal: options.signal,
141
147
  logger: this.ctx.logger,
142
148
  language: switches.language ?? this.hostLanguage(),
149
+ switches,
143
150
  });
144
- return candidates.map((candidate) => applySwitches(candidate, switches));
145
151
  }
146
152
  async get(candidate, options) {
147
153
  const switches = this.currentSwitches();
148
- const definition = await this.catalog.getDefinition(candidate, this.name, {
154
+ return this.catalog.getDefinition(candidate, this.name, {
149
155
  signal: options.signal,
150
156
  logger: this.ctx.logger,
151
157
  language: switches.language ?? this.hostLanguage(),
158
+ switches,
152
159
  });
153
- // 加载路径同样套用:skill 工具在 get 之后二次校验 isModelInvocable,
154
- // 只改 list 的候选会让模型目录消失但工具调用仍成功,语义撕裂。
155
- return definition === undefined ? undefined : applySwitches(definition, switches);
156
160
  }
157
161
  }
158
162
  // ---------------------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"superpowers.js","sourceRoot":"","sources":["../src/superpowers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AASxC,OAAO,MAAM,MAAM,0BAA0B,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,YAAY,EAAsB,MAAM,eAAe,CAAA;AAE/E,8BAA8B;AAC9B,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAA4B,MAAM,cAAc,CAAA;AAC3F,OAAO,EAAE,aAAa,EAAgC,MAAM,eAAe,CAAA;AAC3E,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAwB1E,8EAA8E;AAC9E,sCAAsC;AACtC,8EAA8E;AAE9E,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAClC,kEAAkE;IAClE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC;IACpD,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE;IACzB;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC9D;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;IAC/D;;;;;;;;OAQG;IACH,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IACnE,oCAAoC;IACpC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;CACnE,CAAC;IACA,oEAAoE;IACpE,uDAAuD;IACvD,4DAA4D;IAC5D,sCAAsC;KACrC,WAAW,CAAC,8BAA8B,CAA8B,CAAA;AAe3E,8EAA8E;AAC9E,QAAQ;AACR,8EAA8E;AAE9E,MAAM,CAAC,MAAM,IAAI,GAAG,aAAa,CAAA;AACjC,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,QAAQ,CAAU,CAAA;AAEzC,8EAA8E;AAC9E,QAAQ;AACR,8EAA8E;AAE9E,uCAAuC;AACvC,qDAAqD;AACrD,MAAM,gBAAgB,GAAG,EAAE,CAAA;AAC3B,MAAM,gBAAgB,GAAG,SAAS,CAAA;AAElC,SAAS,wBAAwB,CAAC,YAAoB;IACpD,IAAI,YAAY,KAAK,gBAAgB,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,+BAA+B,gBAAgB,YAAY,CAAC,CAAA;IAC9E,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,cAAuB;IACrD,IAAI,cAAc;QAAE,OAAO,OAAO,CAAC,cAAc,CAAC,CAAA;IAClD,uDAAuD;IACvD,kDAAkD;IAClD,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC3C,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;AAC/C,CAAC;AAED,8EAA8E;AAC9E,6DAA6D;AAC7D,8EAA8E;AAE9E,MAAM,mBAAmB;IACd,IAAI,CAAQ;IACZ,OAAO,CAAc;IACb,GAAG,CAAS;IACZ,OAAO,CAAsB;IAC7B,eAAe,CAAqB;IAC7C,iBAAiB,CAAyB;IAC1C,oBAAoB,GAAG,KAAK,CAAA;IAEpC,YAAY,GAAY,EAAE,OAA6B,EAAE,MAAc;QACrE,wBAAwB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;QAC7C,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,YAAY,CAAA;QAC/B,MAAM,QAAQ,GAAG,sBAAsB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QACxD,IAAI,CAAC,OAAO,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAA;QACzC,uCAAuC;QACvC,IAAI,CAAC,eAAe,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;IACnD,CAAC;IAED;;;;OAIG;IACH,YAAY;QACV,IAAI,IAAI,CAAC,oBAAoB;YAAE,OAAO,IAAI,CAAC,iBAAiB,CAAA;QAC5D,IAAI,MAA+B,CAAA;QACnC,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAA;YACtD,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,SAAsC,EAAE,UAAU,IAAI,EAAE,CAAuC,CAAA;YACtJ,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAA;YACzF,MAAM,UAAU,GAAI,KAAK,EAAE,KAA8C,EAAE,UAAU,CAAA;YACrF,MAAM,GAAG,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;QAC9E,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,GAAG,SAAS,CAAA;QACpB,CAAC;QACD,qEAAqE;QACrE,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAA;QAC/B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAA;QAChC,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;OAGG;IACH,UAAU;QACR,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAA;QACzB,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAA;QACzB,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAA;QAClC,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAA;IACnC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAA2B;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;QACvC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,EAAE;YAChF,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM;YACvB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE;SACnD,CAAC,CAAA;QACF,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAA;IAC1E,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,SAAyB,EAAE,OAA2B;QAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;QACvC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE;YACxE,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM;YACvB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE;SACnD,CAAC,CAAA;QACF,kDAAkD;QAClD,oCAAoC;QACpC,OAAO,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IACnF,CAAC;CACF;AAED,8EAA8E;AAC9E,sCAAsC;AACtC,8EAA8E;AAE9E,MAAM,UAAU,KAAK,CAAC,GAAY,EAAE,MAAc;IAChD,wBAAwB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IAE7C,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,uCAAuC,MAAM,CAAC,YAAY,GAAG,CAAC,CAAA;IAE9E,8CAA8C;IAC9C,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE;QACd,IAAI,cAA+C,CAAA;QAEnD,MAAM,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,OAAO,EAAE,EAAE;YAC9D,cAAc,GAAG,IAAI,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;YAC9D,OAAO,cAAc,CAAA;QACvB,CAAC,CAAC,CAAA;QAEF,0CAA0C;QAC1C,MAAM,eAAe,GAAG,GAAG,CAAC,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE;YACnD,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAA;YAC/E,cAAc,EAAE,OAAO,CAAC,UAAU,EAAE,CAAA;QACtC,CAAC,CAAC,CAAA;QAEF,uCAAuC;QACvC,iDAAiD;QACjD,MAAM,eAAe,GAAG,GAAG,CAAC,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;YAC5D,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAA;YAC9E,cAAc,EAAE,UAAU,EAAE,CAAA;QAC9B,CAAC,CAAC,CAAA;QAEF,yEAAyE;QACzE,yCAAyC;QACzC,yDAAyD;QACzD,oCAAoC;QACpC,MAAM,aAAa,GAAG,GAAG,CAAC,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;YAC1D,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,2FAA2F,CAAC,CAAA;YAC7G,cAAc,EAAE,UAAU,EAAE,CAAA;QAC9B,CAAC,CAAC,CAAA;QAEF,OAAO,GAAG,EAAE;YACV,kCAAkC;YAClC,aAAa,EAAE,CAAA;YACf,eAAe,EAAE,CAAA;YACjB,eAAe,EAAE,CAAA;YACjB,eAAe,EAAE,CAAA;YACjB,cAAc,EAAE,OAAO,CAAC,UAAU,EAAE,CAAA;QACtC,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,CAAA"}
1
+ {"version":3,"file":"superpowers.js","sourceRoot":"","sources":["../src/superpowers.ts"],"names":[],"mappings":"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"}
package/lib/switches.d.ts CHANGED
@@ -1,25 +1,20 @@
1
1
  /**
2
- * @wenaixi/dsh-superpower — 技能开关状态深度模块
2
+ * @wenaixi/dsh-superpower — 技能开关状态深度模块 (含容灾自愈提取引擎)
3
3
  *
4
4
  * 封装「哪个技能被关闭」的唯一判据:一张以技能名为键的禁言字典。
5
5
  *
6
6
  * 核心设计:
7
- * - Depth: 把 volatile 引用解包与 invocation 覆盖隐藏在两个纯函数之后;
8
- * - Locality: 所有开关语义内聚于此,Provider 只负责调用;
7
+ * - Depth: 把 volatile 引用解包、Invocation 覆盖、容灾提取与脏数据自愈彻底封装在门后;
8
+ * - Locality: 所有开关语义与配置容错自愈逻辑内聚于此,Provider 与客户端共用;
9
9
  * - Test Surface: selfTest() 是接口即测试表面,随 verifySpecification 一并进门禁。
10
10
  *
11
- * 关闭一个技能会让 DSH 的 SkillInvocationPolicy 两个布尔同时为 false:
12
- * modelInvocable 为 false 时模型目录不再列出该技能且 skill 工具调用被拒;
13
- * userInvocable 为 false 时斜杠命令补全与 CLI 清单都不再列出。
14
- * 技能仍保留在注册表中的存在与同名裁决权,与在 SKILL.md 写
15
- * disable-model-invocation / user-invocable 完全等价。
16
- *
17
- * 历史兼容:v7.3.0 及之前分列 modelDisabled 与 userDisabled 两张表,v7.4.0 起
18
- * 统一为 disabled。旧字段仍在 schema 里声明,所以旧 profile 的值能被解析;
19
- * disabled 为空时取两旧字段的并集,让升级前的开关在用户下一次操作前继续生效。
20
- * 用户一旦在面板做任何一次写入,那两个旧字段就被 unset,此后只剩 disabled。
11
+ * 容灾自愈保证:
12
+ * 无论外部输入遭遇何种程度的破坏(非对象、字符串布尔值、脏区域码、原型污染、未知键残留),
13
+ * 本模块均能安全从中抢救提取有效用户意图,绝不抛出异常崩溃。
21
14
  */
22
15
  import type { SkillInvocationPolicy } from '@deepseek-ai/dsh-skill';
16
+ /** 本包所管理的 15 个标准技能名白名单集合。 */
17
+ export declare const KNOWN_SKILLS: Set<string>;
23
18
  /** 以技能名为键的禁言表:键存在且值为 true 表示该技能被关闭。 */
24
19
  export interface SkillSwitches {
25
20
  /** 关闭的技能名集合,映射为 modelInvocable = userInvocable = false。 */
@@ -27,13 +22,38 @@ export interface SkillSwitches {
27
22
  /** 技能描述显示语言偏好:'zh'/'en' 显式固定;undefined 表示跟随宿主界面语言。 */
28
23
  language: 'zh' | 'en' | undefined;
29
24
  }
25
+ /** 容灾提取结果与自愈判定结果。 */
26
+ export interface CleanSwitchesExtraction {
27
+ switches: SkillSwitches;
28
+ isCorrupted: boolean;
29
+ }
30
+ /**
31
+ * 容灾提取并归一化语言偏好设置。
32
+ * 支持从非标语言码(如 'zh-CN', 'zh_CN', 'en-US', 'chinese' 等)中提取标准三态 ('zh' | 'en' | undefined)。
33
+ */
34
+ export declare function extractCleanLanguage(value: unknown): 'zh' | 'en' | undefined;
35
+ /**
36
+ * 容灾清洗并提取禁言字典。
37
+ * 1. 过滤原型污染(__proto__, constructor)与未知非法键;
38
+ * 2. 宽容识别非标真值(true, "true", 1, "1", "yes", "on", "disabled");
39
+ * 3. 忽略假值(false, "false", 0, "no", "off" 等)。
40
+ */
41
+ export declare function extractCleanDisabled(value: unknown): Record<string, boolean>;
42
+ /**
43
+ * 纯函数探测配置是否包含损坏数据、非标格式或需要自愈修复的结构。
44
+ */
45
+ export declare function isConfigCorrupted(config: unknown): boolean;
46
+ /**
47
+ * 容灾提取完整技能开关与语言偏好。
48
+ * 兼容 volatile 引用、普通对象、新旧表回退以及脏数据自愈清洗。
49
+ */
50
+ export declare function extractCleanSwitches(config: unknown): SkillSwitches;
51
+ /**
52
+ * 读取禁言字典与语言偏好(委托容灾自愈提取引擎)。
53
+ */
30
54
  export declare function readSwitches(config: unknown): SkillSwitches;
31
55
  /**
32
56
  * 用禁言表覆盖一个技能条目的 invocation 策略,返回新对象且不修改入参。
33
- *
34
- * @param entry - SkillCandidate 或 SkillDefinition,二者都带 name 与 invocation
35
- * @param switches - 禁言字典
36
- * @returns 覆盖后的新条目;未被禁言的技能原样返回一份浅拷贝
37
57
  */
38
58
  export declare function applySwitches<T extends {
39
59
  name: string;
@@ -44,9 +64,7 @@ export declare function applySwitches<T extends {
44
64
  */
45
65
  export declare const SkillSwitches: {
46
66
  /**
47
- * 执行五条边界契约断言。
48
- *
49
- * @returns 每条用例的成败与失败原因
67
+ * 执行边界契约与容灾自愈断言。
50
68
  */
51
69
  selfTest(): Promise<{
52
70
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"switches.d.ts","sourceRoot":"","sources":["../src/switches.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAEnE,uCAAuC;AACvC,MAAM,WAAW,aAAa;IAC5B,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,sDAAsD;IACtD,QAAQ,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAAA;CAClC;AA8BD,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,aAAa,CAS3D;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,qBAAqB,CAAA;CAAE,EACzF,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,aAAa,GACtB,CAAC,CAMH;AAcD;;GAEG;AACH,eAAO,MAAM,aAAa;IACxB;;;;OAIG;gBACe,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CA4E3E,CAAA"}
1
+ {"version":3,"file":"switches.d.ts","sourceRoot":"","sources":["../src/switches.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAEnE,6BAA6B;AAC7B,eAAO,MAAM,YAAY,aAgBvB,CAAA;AAEF,uCAAuC;AACvC,MAAM,WAAW,aAAa;IAC5B,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACjC,sDAAsD;IACtD,QAAQ,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAAA;CAClC;AAED,qBAAqB;AACrB,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,aAAa,CAAA;IACvB,WAAW,EAAE,OAAO,CAAA;CACrB;AAYD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,CAO5E;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAsB5E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAqB1D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,aAAa,CAuBnE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,aAAa,CAE3D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,qBAAqB,CAAA;CAAE,EACzF,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,aAAa,GACtB,CAAC,CAMH;AAED;;GAEG;AACH,eAAO,MAAM,aAAa;IACxB;;OAEG;gBACe,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CA6H3E,CAAA"}
package/lib/switches.js CHANGED
@@ -1,64 +1,142 @@
1
1
  /**
2
- * @wenaixi/dsh-superpower — 技能开关状态深度模块
2
+ * @wenaixi/dsh-superpower — 技能开关状态深度模块 (含容灾自愈提取引擎)
3
3
  *
4
4
  * 封装「哪个技能被关闭」的唯一判据:一张以技能名为键的禁言字典。
5
5
  *
6
6
  * 核心设计:
7
- * - Depth: 把 volatile 引用解包与 invocation 覆盖隐藏在两个纯函数之后;
8
- * - Locality: 所有开关语义内聚于此,Provider 只负责调用;
7
+ * - Depth: 把 volatile 引用解包、Invocation 覆盖、容灾提取与脏数据自愈彻底封装在门后;
8
+ * - Locality: 所有开关语义与配置容错自愈逻辑内聚于此,Provider 与客户端共用;
9
9
  * - Test Surface: selfTest() 是接口即测试表面,随 verifySpecification 一并进门禁。
10
10
  *
11
- * 关闭一个技能会让 DSH 的 SkillInvocationPolicy 两个布尔同时为 false:
12
- * modelInvocable 为 false 时模型目录不再列出该技能且 skill 工具调用被拒;
13
- * userInvocable 为 false 时斜杠命令补全与 CLI 清单都不再列出。
14
- * 技能仍保留在注册表中的存在与同名裁决权,与在 SKILL.md 写
15
- * disable-model-invocation / user-invocable 完全等价。
16
- *
17
- * 历史兼容:v7.3.0 及之前分列 modelDisabled 与 userDisabled 两张表,v7.4.0 起
18
- * 统一为 disabled。旧字段仍在 schema 里声明,所以旧 profile 的值能被解析;
19
- * disabled 为空时取两旧字段的并集,让升级前的开关在用户下一次操作前继续生效。
20
- * 用户一旦在面板做任何一次写入,那两个旧字段就被 unset,此后只剩 disabled。
11
+ * 容灾自愈保证:
12
+ * 无论外部输入遭遇何种程度的破坏(非对象、字符串布尔值、脏区域码、原型污染、未知键残留),
13
+ * 本模块均能安全从中抢救提取有效用户意图,绝不抛出异常崩溃。
21
14
  */
15
+ /** 本包所管理的 15 个标准技能名白名单集合。 */
16
+ export const KNOWN_SKILLS = new Set([
17
+ 'brainstorming',
18
+ 'diagnosing-superpowers',
19
+ 'dispatching-parallel-agents',
20
+ 'executing-plans',
21
+ 'finishing-a-development-branch',
22
+ 'receiving-code-review',
23
+ 'requesting-code-review',
24
+ 'subagent-driven-development',
25
+ 'systematic-debugging',
26
+ 'test-driven-development',
27
+ 'using-git-worktrees',
28
+ 'using-superpowers',
29
+ 'verification-before-completion',
30
+ 'writing-plans',
31
+ 'writing-skills',
32
+ ]);
33
+ /** 解包单值 volatile 字段。 */
34
+ function unwrapValue(value) {
35
+ return typeof value?.get === 'function' ? value.get() : value;
36
+ }
22
37
  /**
23
- * 读取禁言字典,兼容 volatile 引用与普通对象两种形态。
24
- *
25
- * 合并规则:disabled 非空时只认它(用户已经在新表上操作过,旧值即过期);
26
- * disabled 为空时取两张旧表的并集——任一侧曾被关闭的技能都算关闭,
27
- * 这与升级前的效果一致,不会让已关闭的技能重新冒出来。
28
- *
29
- * @param config - 插件配置容器,通常为 apply 收到的 config 对象
30
- * @returns 已解包并浅拷贝的禁言字典;字段缺失或类型不符时为空字典
38
+ * 容灾提取并归一化语言偏好设置。
39
+ * 支持从非标语言码(如 'zh-CN', 'zh_CN', 'en-US', 'chinese' 等)中提取标准三态 ('zh' | 'en' | undefined)。
31
40
  */
32
- function readLanguage(config) {
33
- const source = (config ?? {});
34
- const raw = unwrapValue(source['language']);
35
- if (raw === 'en')
36
- return 'en';
37
- if (raw === 'zh')
41
+ export function extractCleanLanguage(value) {
42
+ const unwrapped = unwrapValue(value);
43
+ if (typeof unwrapped !== 'string')
44
+ return undefined;
45
+ const lower = unwrapped.trim().toLowerCase().replace(/_/g, '-');
46
+ if (lower === 'zh' || lower.startsWith('zh-') || lower === 'chinese')
38
47
  return 'zh';
48
+ if (lower === 'en' || lower.startsWith('en-') || lower === 'english')
49
+ return 'en';
39
50
  return undefined;
40
51
  }
41
- /** 解包单值 volatile 字段。 */
42
- function unwrapValue(value) {
43
- return typeof value?.get === 'function' ? value.get() : value;
52
+ /**
53
+ * 容灾清洗并提取禁言字典。
54
+ * 1. 过滤原型污染(__proto__, constructor)与未知非法键;
55
+ * 2. 宽容识别非标真值(true, "true", 1, "1", "yes", "on", "disabled");
56
+ * 3. 忽略假值(false, "false", 0, "no", "off" 等)。
57
+ */
58
+ export function extractCleanDisabled(value) {
59
+ const unwrapped = unwrapValue(value);
60
+ if (typeof unwrapped !== 'object' || unwrapped === null || Array.isArray(unwrapped)) {
61
+ return Object.create(null);
62
+ }
63
+ const clean = Object.create(null);
64
+ for (const [key, val] of Object.entries(unwrapped)) {
65
+ if (key === '__proto__' || key === 'constructor' || key === 'prototype')
66
+ continue;
67
+ if (!KNOWN_SKILLS.has(key))
68
+ continue;
69
+ if (val === true ||
70
+ val === 'true' ||
71
+ val === 1 ||
72
+ val === '1' ||
73
+ val === 'yes' ||
74
+ val === 'on' ||
75
+ val === 'disabled') {
76
+ clean[key] = true;
77
+ }
78
+ }
79
+ return clean;
80
+ }
81
+ /**
82
+ * 纯函数探测配置是否包含损坏数据、非标格式或需要自愈修复的结构。
83
+ */
84
+ export function isConfigCorrupted(config) {
85
+ if (config === null || config === undefined)
86
+ return false;
87
+ const source = unwrapValue(config);
88
+ if (typeof source !== 'object' || Array.isArray(source))
89
+ return true;
90
+ const record = source;
91
+ const rawDisabled = unwrapValue(record['disabled']);
92
+ if (rawDisabled !== undefined && rawDisabled !== null) {
93
+ if (typeof rawDisabled !== 'object' || Array.isArray(rawDisabled))
94
+ return true;
95
+ for (const [k, v] of Object.entries(rawDisabled)) {
96
+ if (!KNOWN_SKILLS.has(k))
97
+ return true;
98
+ if (v !== true)
99
+ return true; // 包含非标准布尔值(如字符串或数字),或者包含 false 残留
100
+ }
101
+ }
102
+ const rawLang = unwrapValue(record['language']);
103
+ if (rawLang !== undefined && rawLang !== null && rawLang !== 'zh' && rawLang !== 'en') {
104
+ return true;
105
+ }
106
+ return false;
44
107
  }
108
+ /**
109
+ * 容灾提取完整技能开关与语言偏好。
110
+ * 兼容 volatile 引用、普通对象、新旧表回退以及脏数据自愈清洗。
111
+ */
112
+ export function extractCleanSwitches(config) {
113
+ if (config === null || config === undefined) {
114
+ return { disabled: {}, language: undefined };
115
+ }
116
+ const source = unwrapValue(config);
117
+ if (typeof source !== 'object' || Array.isArray(source)) {
118
+ return { disabled: {}, language: undefined };
119
+ }
120
+ const record = source;
121
+ const disabled = extractCleanDisabled(record['disabled']);
122
+ const language = extractCleanLanguage(record['language']);
123
+ if (Object.keys(disabled).length > 0) {
124
+ return { disabled, language };
125
+ }
126
+ // 新表为空时,容灾扫描旧表并提取并集
127
+ const legacyModel = extractCleanDisabled(record['modelDisabled']);
128
+ const legacyUser = extractCleanDisabled(record['userDisabled']);
129
+ const legacy = { ...legacyModel, ...legacyUser };
130
+ return { disabled: legacy, language };
131
+ }
132
+ /**
133
+ * 读取禁言字典与语言偏好(委托容灾自愈提取引擎)。
134
+ */
45
135
  export function readSwitches(config) {
46
- const source = (config ?? {});
47
- const disabled = unwrapDictionary(source['disabled']);
48
- if (Object.keys(disabled).length > 0)
49
- return { disabled, language: readLanguage(config) };
50
- const legacy = {
51
- ...unwrapDictionary(source['modelDisabled']),
52
- ...unwrapDictionary(source['userDisabled']),
53
- };
54
- return { disabled: legacy, language: readLanguage(config) };
136
+ return extractCleanSwitches(config);
55
137
  }
56
138
  /**
57
139
  * 用禁言表覆盖一个技能条目的 invocation 策略,返回新对象且不修改入参。
58
- *
59
- * @param entry - SkillCandidate 或 SkillDefinition,二者都带 name 与 invocation
60
- * @param switches - 禁言字典
61
- * @returns 覆盖后的新条目;未被禁言的技能原样返回一份浅拷贝
62
140
  */
63
141
  export function applySwitches(entry, switches) {
64
142
  if (switches.disabled[entry.name] !== true)
@@ -68,26 +146,12 @@ export function applySwitches(entry, switches) {
68
146
  invocation: { modelInvocable: false, userInvocable: false },
69
147
  };
70
148
  }
71
- /**
72
- * 解包一个可能是 volatile 引用、可能是普通对象的字典字段。
73
- *
74
- * @param value - 字段原始值
75
- * @returns 普通对象字典;非对象或缺省时为空字典
76
- */
77
- function unwrapDictionary(value) {
78
- const unwrapped = unwrapValue(value);
79
- if (typeof unwrapped !== 'object' || unwrapped === null || Array.isArray(unwrapped))
80
- return {};
81
- return { ...unwrapped };
82
- }
83
149
  /**
84
150
  * 开关语义自检:随 SkillCatalog.verifySpecification 一并进入质量门禁。
85
151
  */
86
152
  export const SkillSwitches = {
87
153
  /**
88
- * 执行五条边界契约断言。
89
- *
90
- * @returns 每条用例的成败与失败原因
154
+ * 执行边界契约与容灾自愈断言。
91
155
  */
92
156
  async selfTest() {
93
157
  const results = [];
@@ -127,11 +191,11 @@ export const SkillSwitches = {
127
191
  });
128
192
  await run('新表非空时忽略旧表', () => {
129
193
  const out = readSwitches({
130
- disabled: { 'switch-test': true },
131
- modelDisabled: { other: true },
132
- userDisabled: { 'third': true },
194
+ disabled: { 'brainstorming': true },
195
+ modelDisabled: { 'systematic-debugging': true },
196
+ userDisabled: { 'writing-plans': true },
133
197
  });
134
- if (Object.keys(out.disabled).length !== 1 || out.disabled['switch-test'] !== true) {
198
+ if (Object.keys(out.disabled).length !== 1 || out.disabled['brainstorming'] !== true) {
135
199
  throw new Error('disabled 非空却仍读到了旧表的键');
136
200
  }
137
201
  });
@@ -146,21 +210,81 @@ export const SkillSwitches = {
146
210
  throw new Error('language 未读取为 en');
147
211
  });
148
212
  await run('language 不影响禁言表', () => {
149
- const out = readSwitches({ language: 'en', disabled: { a: true } });
213
+ const out = readSwitches({ language: 'en', disabled: { 'brainstorming': true } });
150
214
  if (Object.keys(out.disabled).length !== 1)
151
215
  throw new Error('language 读取影响禁言表');
152
216
  });
153
217
  await run('新表为空时并入两张旧表', () => {
154
218
  const out = readSwitches({
155
219
  disabled: {},
156
- modelDisabled: { a: true },
157
- userDisabled: { b: true, c: true },
220
+ modelDisabled: { 'brainstorming': true },
221
+ userDisabled: { 'writing-plans': true, 'systematic-debugging': true },
158
222
  });
159
223
  const keys = Object.keys(out.disabled).sort();
160
- if (keys.length !== 3 || keys.join(',') !== 'a,b,c') {
224
+ if (keys.length !== 3 || keys.join(',') !== 'brainstorming,systematic-debugging,writing-plans') {
161
225
  throw new Error('旧表并集不完整,实际 ' + keys.join(','));
162
226
  }
163
227
  });
228
+ // -----------------------------------------------------------------------
229
+ // 容灾自愈提取与损坏感知断言
230
+ // -----------------------------------------------------------------------
231
+ await run('容灾自愈:非标布尔值与脏数据精准提取', () => {
232
+ const out = readSwitches({
233
+ disabled: {
234
+ 'brainstorming': 'true',
235
+ 'writing-plans': 1,
236
+ 'executing-plans': 'yes',
237
+ 'systematic-debugging': false,
238
+ 'unknown-skill': true, // 未知键过滤
239
+ },
240
+ });
241
+ if (out.disabled['brainstorming'] !== true)
242
+ throw new Error('未能从字符串 "true" 提取布尔');
243
+ if (out.disabled['writing-plans'] !== true)
244
+ throw new Error('未能从数字 1 提取布尔');
245
+ if (out.disabled['executing-plans'] !== true)
246
+ throw new Error('未能从 "yes" 提取布尔');
247
+ if (out.disabled['systematic-debugging'])
248
+ throw new Error('假值被误判为禁用');
249
+ if (out.disabled['unknown-skill'])
250
+ throw new Error('未知技能名未被过滤');
251
+ });
252
+ await run('容灾自愈:非标区域语言代码归一化', () => {
253
+ if (extractCleanLanguage('zh-CN') !== 'zh')
254
+ throw new Error('zh-CN 未归一化为 zh');
255
+ if (extractCleanLanguage('zh_Hans') !== 'zh')
256
+ throw new Error('zh_Hans 未归一化为 zh');
257
+ if (extractCleanLanguage('en-US') !== 'en')
258
+ throw new Error('en-US 未归一化为 en');
259
+ if (extractCleanLanguage('english') !== 'en')
260
+ throw new Error('english 未归一化为 en');
261
+ if (extractCleanLanguage('invalid-language') !== undefined)
262
+ throw new Error('非法语言未回退至 undefined');
263
+ });
264
+ await run('容灾自愈:原型污染与非对象极值绝对防御', () => {
265
+ const fromString = readSwitches('corrupted-non-object-string');
266
+ if (Object.keys(fromString.disabled).length !== 0)
267
+ throw new Error('字符串输入未安全回退');
268
+ const polluted = JSON.parse('{"disabled": {"__proto__": {"polluted": true}, "brainstorming": true}}');
269
+ const clean = extractCleanDisabled(polluted.disabled);
270
+ if (Object.prototype.hasOwnProperty.call(Object.prototype, 'polluted')) {
271
+ throw new Error('发生原型污染');
272
+ }
273
+ if (clean['brainstorming'] !== true)
274
+ throw new Error('合法技能丢失');
275
+ });
276
+ await run('损坏感知:精准判定配置是否需要自愈', () => {
277
+ if (isConfigCorrupted({ disabled: {}, language: 'zh' }) !== false)
278
+ throw new Error('干净配置被误判为损坏');
279
+ if (isConfigCorrupted({ disabled: 'bad' }) !== true)
280
+ throw new Error('字符串 disabled 未被标记为损坏');
281
+ if (isConfigCorrupted({ language: 'zh-CN' }) !== true)
282
+ throw new Error('非标语言未被标记为损坏');
283
+ if (isConfigCorrupted({ disabled: { 'unknown-bad-skill': true } }) !== true)
284
+ throw new Error('未知脏键未被标记为损坏');
285
+ if (isConfigCorrupted({ disabled: { 'brainstorming': 'true' } }) !== true)
286
+ throw new Error('非标布尔值未被标记为损坏');
287
+ });
164
288
  return results;
165
289
  },
166
290
  };
@@ -1 +1 @@
1
- {"version":3,"file":"switches.js","sourceRoot":"","sources":["../src/switches.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"switches.js","sourceRoot":"","sources":["../src/switches.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wenaixi/dsh-superpower",
3
- "version": "7.7.0",
3
+ "version": "7.7.2",
4
4
  "description": "DeepSeek Harness plugin: 15 obra/superpowers engineering skills, bilingual descriptions, per-skill toggles | DeepSeek Harness 插件:15 个 obra/superpowers 工程纪律技能,技能描述中英双语自由切换,每一个技能本身自由开关",
5
5
  "type": "module",
6
6
  "main": "lib/superpowers.js",