prompt-skill-armory 0.10.2 → 0.10.5

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/README.en.md CHANGED
@@ -12,13 +12,13 @@
12
12
  |--|--|--|--|
13
13
  | <img src="docs/preview/preview-6.png" width="220"/> | <img src="docs/preview/preview-7.png" width="220"/> | | |
14
14
 
15
- ![version](https://img.shields.io/badge/version-0.10.2-00ff9c)
15
+ ![version](https://img.shields.io/badge/version-0.10.5-00ff9c)
16
16
  ![license](https://img.shields.io/badge/license-MIT-blue)
17
17
  ![platform](https://img.shields.io/badge/platform-web%20%2B%20desktop-00ff9c)
18
18
  ![CI](https://github.com/Qian-Ning/prompt-skill-armory/actions/workflows/ci.yml/badge.svg)
19
19
 
20
20
  ```
21
- ✦ Armory v0.10.2
21
+ ✦ Armory v0.10.5
22
22
  ┌─────────┬─────────┬─────┬────────────┬──────┬──────┐
23
23
  │ Prompts │ Skills │ MCP │ Wallpaper │ Chat │ Stats│
24
24
  │ global │ merged │ hub │ wallpaper │ sync │ usage│
@@ -125,7 +125,7 @@ Achieved via profile composition (the installer mounts the panel into each profi
125
125
 
126
126
  Every time the panel opens it queries npm for the latest `prompt-skill-armory` version; when a newer version exists a banner appears:
127
127
 
128
- > New version vX.Y.Z (current v0.10.2) [Update now]
128
+ > New version vX.Y.Z (current v0.10.5) [Update now]
129
129
 
130
130
  Clicking "Update now" makes the Host re-run the official installer in place → "Update complete, please restart the client".
131
131
 
package/README.md CHANGED
@@ -12,13 +12,13 @@
12
12
  |--|--|--|--|
13
13
  | <img src="docs/preview/preview-6.png" width="220"/> | <img src="docs/preview/preview-7.png" width="220"/> | | |
14
14
 
15
- ![version](https://img.shields.io/badge/version-0.10.2-00ff9c)
15
+ ![version](https://img.shields.io/badge/version-0.10.5-00ff9c)
16
16
  ![license](https://img.shields.io/badge/license-MIT-blue)
17
17
  ![platform](https://img.shields.io/badge/platform-web%20%2B%20desktop-00ff9c)
18
18
  ![CI](https://github.com/Qian-Ning/prompt-skill-armory/actions/workflows/ci.yml/badge.svg)
19
19
 
20
20
  ```
21
- ✦ Armory v0.10.2
21
+ ✦ Armory v0.10.5
22
22
  ┌─────────┬─────────┬─────┬────────────┬──────┬──────┐
23
23
  │ 提示词 │ 技能 │ MCP │ Wallpaper │ 对话 │ 统计 │
24
24
  │ 全局注入 │ 合并管理 │ 连接 │ 壁纸·特效 │ 导入 │ 用量 │
@@ -128,7 +128,7 @@ pnpm dsh web
128
128
 
129
129
  插件面板每次打开会自动查询 npm 上 `prompt-skill-armory` 的最新版本;发现新版本时顶部显示横幅:
130
130
 
131
- > 有新版本 vX.Y.Z(当前 v0.10.2) [一键更新]
131
+ > 有新版本 vX.Y.Z(当前 v0.10.5) [一键更新]
132
132
 
133
133
  点击「一键更新」→ Host 端运行官方安装器原地重装 → 提示「更新完成,请重启客户端生效」。
134
134
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prompt-skill-armory",
3
- "version": "0.10.2",
3
+ "version": "0.10.5",
4
4
  "description": "One-command installer for Prompt-SkillArmory (prompts + skills manager) into the DeepSeek Harness (web + desktop)",
5
5
  "type": "module",
6
6
  "bin": {
@@ -460,19 +460,18 @@ window.__ModuleLoader__.load({
460
460
  } catch {}
461
461
  applyHintStyle();
462
462
  }
463
- let hintObserver;
464
463
  /** Inject (or clear) the per-surface style for the composer hint + input card.
465
- * DSH 2.0.9 removed the old `[data-decoration="hint"]` row; the composer card
466
- * (`[data-composer-card]`) is the stable surface that carries the input
467
- * placeholder and inline claim hints, so the style lands there. */
464
+ * (2.0.9) the composer stats strip renders as `[data-composer-stats]` with
465
+ * hashed label/pill classes. Everything is driven by ONE style tag: disabling
466
+ * removes the tag (and nothing else), so the UI returns to its exact original
467
+ * state — no inline styles are ever written, and no layout properties are
468
+ * touched (font/color only, applied to text labels, never the flex containers). */
468
469
  function applyHintStyle() {
469
470
  try {
470
471
  const hint = (bgState.value ?? DEFAULT_BACKGROUND).hint ?? DEFAULT_BACKGROUND.hint;
471
472
  const existing = document.getElementById("switchblade-hint");
472
473
  if (!hint.enabled) {
473
474
  if (existing !== null) existing.remove();
474
- hintObserver?.disconnect();
475
- hintObserver = void 0;
476
475
  return;
477
476
  }
478
477
  if (existing === null) {
@@ -485,48 +484,22 @@ window.__ModuleLoader__.load({
485
484
  const size = hint.size || 11;
486
485
  const gradPreset = GRADIENTS.find((g) => g.id === (hint.gradient ?? ""));
487
486
  const grad = gradPreset !== void 0 ? gradPreset.css : "";
488
- const props = [
487
+ const textProps = [
489
488
  "font-size:" + size + "px",
490
489
  "letter-spacing:0.3px",
491
490
  "font-weight:600",
492
491
  "opacity:0.95",
493
- grad !== "" ? `background-image:${grad};-webkit-background-clip:text;background-clip:text;color:transparent` : `color:${color}`
492
+ grad !== "" ? "display:inline-block;background-image:" + grad + ";-webkit-background-clip:text;background-clip:text;color:transparent" : `color:${color}`
494
493
  ].join(";");
495
- tag.textContent = `[data-composer-card] input::placeholder,[data-composer-card] textarea::placeholder{${props}}
496
- [data-composer-card] [class*="_hint"]{${props}}`;
497
- const statsStyle = (root) => {
498
- if (grad !== "") {
499
- root.style.backgroundImage = grad;
500
- root.style.webkitBackgroundClip = "text";
501
- root.style.backgroundClip = "text";
502
- root.style.color = "transparent";
503
- } else {
504
- root.style.backgroundImage = "none";
505
- root.style.webkitBackgroundClip = "initial";
506
- root.style.backgroundClip = "initial";
507
- root.style.color = color;
508
- }
509
- root.style.fontSize = `${size}px`;
510
- root.style.fontWeight = "600";
511
- root.style.opacity = "0.95";
512
- };
513
- const applyStats = () => {
514
- try {
515
- const seps = Array.from(document.querySelectorAll("span[aria-hidden]"));
516
- for (const sep of seps) {
517
- if (sep.textContent !== "|") continue;
518
- const root = sep.parentElement;
519
- if (root !== null) statsStyle(root);
520
- }
521
- } catch {}
522
- };
523
- if (hintObserver !== void 0) hintObserver.disconnect();
524
- hintObserver = new MutationObserver(applyStats);
525
- hintObserver.observe(document.body, {
526
- childList: true,
527
- subtree: true
528
- });
529
- applyStats();
494
+ const cardProps = [
495
+ "font-size:" + size + "px",
496
+ "font-weight:600",
497
+ "opacity:0.95",
498
+ grad !== "" ? "background-image:" + grad + ";-webkit-background-clip:text;background-clip:text;color:transparent" : `color:${color}`
499
+ ].join(";");
500
+ tag.textContent = `[data-composer-placeholder]{${cardProps}}
501
+ [data-composer-card] input::placeholder,[data-composer-card] textarea::placeholder{${cardProps}}
502
+ [data-composer-stats] [class*="_label"]{${textProps}}`;
530
503
  } catch {}
531
504
  }
532
505
  //#endregion
@@ -976,7 +949,7 @@ window.__ModuleLoader__.load({
976
949
  });
977
950
  }
978
951
  /** Bump with every release; keep in sync with package.json version + CHANGELOG. */
979
- const ARMORY_VERSION = "0.10.2";
952
+ const ARMORY_VERSION = "0.10.5";
980
953
  /** Compact duration: 45.2s / 2m42s / 1h05m. */
981
954
  function fmtDuration(ms) {
982
955
  const s = ms / 1e3;