@wenaixi/dsh-superpower 7.4.1 → 7.5.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/README.md +112 -105
- package/README.zh.md +218 -0
- package/lib/catalog.d.ts +8 -2
- package/lib/catalog.d.ts.map +1 -1
- package/lib/catalog.js +64 -9
- package/lib/catalog.js.map +1 -1
- package/lib/client.js +68 -22
- package/lib/document.d.ts +8 -2
- package/lib/document.d.ts.map +1 -1
- package/lib/document.js +14 -4
- package/lib/document.js.map +1 -1
- package/lib/superpowers.d.ts +2 -0
- package/lib/superpowers.d.ts.map +1 -1
- package/lib/superpowers.js +32 -0
- package/lib/superpowers.js.map +1 -1
- package/lib/switches.d.ts +2 -10
- package/lib/switches.d.ts.map +1 -1
- package/lib/switches.js +33 -5
- package/lib/switches.js.map +1 -1
- package/package.json +3 -3
- package/skills/brainstorming/SKILL.md +235 -171
- package/skills/brainstorming/spec-document-reviewer-prompt.md +27 -25
- package/skills/brainstorming/visual-companion.md +65 -69
- package/skills/diagnosing-superpowers/SKILL.md +107 -43
- package/skills/diagnosing-superpowers/prompts/analyst-common.md +32 -18
- package/skills/diagnosing-superpowers/prompts/cost-and-time.md +25 -9
- package/skills/diagnosing-superpowers/prompts/plan-adherence.md +26 -12
- package/skills/diagnosing-superpowers/prompts/quality-evidence.md +23 -8
- package/skills/diagnosing-superpowers/prompts/repeated-work.md +25 -14
- package/skills/diagnosing-superpowers/prompts/request-conflicts.md +18 -9
- package/skills/diagnosing-superpowers/prompts/scrub-audit.md +23 -10
- package/skills/diagnosing-superpowers/prompts/scrub.md +25 -12
- package/skills/diagnosing-superpowers/prompts/similar-session.md +30 -22
- package/skills/diagnosing-superpowers/prompts/skill-timeline.md +26 -12
- package/skills/diagnosing-superpowers/prompts/stumbles.md +24 -12
- package/skills/diagnosing-superpowers/references/context-safety.md +15 -7
- package/skills/diagnosing-superpowers/references/github-issues.md +17 -9
- package/skills/diagnosing-superpowers/references/redaction-policy.md +27 -15
- package/skills/diagnosing-superpowers/references/session-discovery.md +31 -20
- package/skills/diagnosing-superpowers/templates/bundle-README.md +66 -40
- package/skills/diagnosing-superpowers/templates/case.md +49 -42
- package/skills/diagnosing-superpowers/templates/issue.md +32 -26
- package/skills/diagnosing-superpowers/templates/report.md +54 -48
- package/skills/dispatching-parallel-agents/SKILL.md +92 -90
- package/skills/executing-plans/SKILL.md +345 -197
- package/skills/finishing-a-development-branch/SKILL.md +107 -82
- package/skills/receiving-code-review/SKILL.md +129 -127
- package/skills/requesting-code-review/SKILL.md +52 -50
- package/skills/requesting-code-review/code-reviewer.md +132 -111
- package/skills/subagent-driven-development/SKILL.md +521 -298
- package/skills/subagent-driven-development/implementer-prompt.md +138 -117
- package/skills/subagent-driven-development/re-review-prompt.md +80 -48
- package/skills/subagent-driven-development/task-reviewer-prompt.md +189 -110
- package/skills/systematic-debugging/CREATION-LOG.md +85 -85
- package/skills/systematic-debugging/SKILL.md +221 -219
- package/skills/systematic-debugging/condition-based-waiting.md +48 -49
- package/skills/systematic-debugging/defense-in-depth.md +46 -46
- package/skills/systematic-debugging/root-cause-tracing.md +63 -63
- package/skills/systematic-debugging/test-academic.md +10 -10
- package/skills/systematic-debugging/test-pressure-1.md +40 -40
- package/skills/systematic-debugging/test-pressure-2.md +58 -58
- package/skills/systematic-debugging/test-pressure-3.md +48 -48
- package/skills/test-driven-development/SKILL.md +161 -153
- package/skills/test-driven-development/writing-good-tests.md +137 -84
- package/skills/using-git-worktrees/SKILL.md +74 -72
- package/skills/using-superpowers/SKILL.md +40 -39
- package/skills/using-superpowers/references/dsh-tools.md +36 -36
- package/skills/verification-before-completion/SKILL.md +85 -83
- package/skills/writing-plans/SKILL.md +123 -84
- package/skills/writing-skills/SKILL.md +419 -417
- package/skills/writing-skills/persuasion-principles.md +118 -118
- package/skills/writing-skills/testing-skills-with-subagents.md +190 -190
package/README.md
CHANGED
|
@@ -1,209 +1,216 @@
|
|
|
1
1
|
# dsh-superpower
|
|
2
2
|
|
|
3
|
+
[English](./README.md) | [中文](./README.zh.md)
|
|
4
|
+
|
|
3
5
|
[](https://www.npmjs.com/package/@wenaixi/dsh-superpower)
|
|
4
6
|
[](./LICENSE)
|
|
5
7
|
[](https://github.com/deepseek-ai/deepseek-harness)
|
|
6
8
|
|
|
7
9
|
<img src="./icon.png" alt="@wenaixi/dsh-superpower" width="128" height="128">
|
|
8
10
|
|
|
9
|
-
[obra/superpowers](https://github.com/obra/superpowers)
|
|
11
|
+
A DSH port of [obra/superpowers](https://github.com/obra/superpowers). 15 skills are injected into `ctx.skills`. Skill bodies are the official English originals; the panel switches each skill's name and description between Chinese and English.
|
|
10
12
|
|
|
11
|
-
##
|
|
13
|
+
## Install
|
|
12
14
|
|
|
13
|
-
|
|
15
|
+
Node 20+, pnpm 11+, and the dsh runtime (`npm i -g @deepseek-ai/dsh`). Examples use the `web` profile; substitute your own profile name.
|
|
14
16
|
|
|
15
17
|
```bash
|
|
16
|
-
# A
|
|
18
|
+
# A - npm (recommended, always latest)
|
|
17
19
|
dsh plugin --profile web add @wenaixi/dsh-superpower
|
|
18
20
|
|
|
19
|
-
# B
|
|
21
|
+
# B - GitHub (bypasses mirror lag)
|
|
20
22
|
dsh plugin --profile web add github:Wenaixi/dsh-superpower
|
|
21
23
|
|
|
22
|
-
#
|
|
24
|
+
# Verify
|
|
23
25
|
dsh --profile web --dump-config | grep -A2 "@wenaixi/dsh-superpower"
|
|
24
26
|
# # == @wenaixi/dsh-superpower / - id: superpowers
|
|
25
27
|
|
|
26
|
-
dsh --profile web #
|
|
28
|
+
dsh --profile web # skills are available immediately
|
|
27
29
|
```
|
|
28
30
|
|
|
29
|
-
|
|
31
|
+
Pin a version by appending `@<version>` (`@wenaixi/dsh-superpower@7.5.2`) or `#v7.5.2`.
|
|
30
32
|
|
|
31
|
-
|
|
33
|
+
The old unscoped package name `dsh-superpower` is deprecated (`npm deprecate`); use the scoped one.
|
|
32
34
|
|
|
33
|
-
|
|
35
|
+
Local development or offline install:
|
|
34
36
|
|
|
35
37
|
```bash
|
|
36
38
|
git clone https://github.com/Wenaixi/dsh-superpower && cd dsh-superpower
|
|
37
|
-
pnpm install && pnpm build && node scripts/verify.mjs #
|
|
38
|
-
dsh plugin --profile web add ./ #
|
|
39
|
+
pnpm install && pnpm build && node scripts/verify.mjs # ALL PASS
|
|
40
|
+
dsh plugin --profile web add ./ # install from local path
|
|
39
41
|
pnpm pack && dsh plugin --profile web add ./wenaixi-dsh-superpower-*.tgz
|
|
40
42
|
|
|
41
|
-
#
|
|
43
|
+
# Update / remove
|
|
42
44
|
dsh plugin --profile web add @wenaixi/dsh-superpower
|
|
43
45
|
dsh plugin --profile web remove @wenaixi/dsh-superpower
|
|
44
46
|
```
|
|
45
47
|
|
|
46
|
-
##
|
|
47
|
-
|
|
48
|
-
一套强制的工程方法论,模型不按顺序走就会做错:先设计,再把计划切成可校验的小步,然后测试驱动,调试时先找根因,收尾前必须跑验证命令。装在 `dsh.bundle` 里,不往用户目录里写东西,卸载干净,HMR 会自动重建。
|
|
48
|
+
## What it is
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
A prescriptive engineering methodology: design first, slice the plan into verifiable steps, drive with tests, find the root cause before fixing, and run verification commands before claiming completion. It ships as a `dsh.bundle`, writes nothing into your home directory, uninstalls cleanly, and rebuilds itself through HMR.
|
|
51
51
|
|
|
52
|
-
|
|
53
|
-
|---|---|
|
|
54
|
-
| `using-superpowers` | 每次会话开头,先查有没有该用的技能 |
|
|
55
|
-
| `brainstorming` | 新功能动手前,把需求和设计问清楚 |
|
|
56
|
-
| `writing-plans` | 设计定了,拆成一项一项能验证的任务 |
|
|
57
|
-
| `using-git-worktrees` | 需要和当前工作区隔离 |
|
|
58
|
-
| `executing-plans` | 在当前会话里亲自把计划跑完 |
|
|
59
|
-
| `subagent-driven-development` | 计划里有多件独立的事,交给 subagent 分头做 |
|
|
60
|
-
| `dispatching-parallel-agents` | 两件以上互不依赖的事并行分发 |
|
|
61
|
-
| `test-driven-development` | 先写测试再写实现 |
|
|
62
|
-
| `systematic-debugging` | 出了 bug,先定位根因再改 |
|
|
63
|
-
| `verification-before-completion` | 说「完成」之前必须跑验证命令 |
|
|
64
|
-
| `requesting-code-review` | 任务做完、发 PR 前求评审 |
|
|
65
|
-
| `receiving-code-review` | 收到评审意见,先技术核实再改 |
|
|
66
|
-
| `diagnosing-superpowers` | 会话出问题或成本异常时定位原因 |
|
|
67
|
-
| `finishing-a-development-branch` | 决定合并、发 PR 还是留着分支 |
|
|
68
|
-
| `writing-skills` | 新建或改技能 |
|
|
52
|
+
Skill bodies are the upstream English originals (DSH-adapted: symbols, platform references, DSH-only sections). Each `SKILL.md` declares both an English `description` and a Chinese `description_zh`; the panel's language switch picks which one the model sees, without changing the body.
|
|
69
53
|
|
|
70
|
-
|
|
54
|
+
## Skills
|
|
71
55
|
|
|
72
|
-
|
|
56
|
+
| Skill | When to use |
|
|
57
|
+
|---|---|
|
|
58
|
+
| `using-superpowers` | Start of every conversation: check for applicable skills before anything else |
|
|
59
|
+
| `brainstorming` | Before creative work: clarify intent, requirements, and design |
|
|
60
|
+
| `writing-plans` | Once the design is settled, slice it into verifiable tasks |
|
|
61
|
+
| `using-git-worktrees` | When work needs an isolated workspace |
|
|
62
|
+
| `executing-plans` | Execute the plan yourself in this session |
|
|
63
|
+
| `subagent-driven-development` | A plan with independent tasks, dispatched to subagents |
|
|
64
|
+
| `dispatching-parallel-agents` | Two or more independent tasks, dispatched in parallel |
|
|
65
|
+
| `test-driven-development` | Write the test before the implementation |
|
|
66
|
+
| `systematic-debugging` | A bug appeared: find the root cause before proposing fixes |
|
|
67
|
+
| `verification-before-completion` | Run verification commands before claiming completion |
|
|
68
|
+
| `requesting-code-review` | Request review after finishing work, before a PR |
|
|
69
|
+
| `receiving-code-review` | Verify review feedback technically before implementing it |
|
|
70
|
+
| `diagnosing-superpowers` | A session went wrong or cost too much: find out why |
|
|
71
|
+
| `finishing-a-development-branch` | Decide whether to merge, open a PR, or keep the branch |
|
|
72
|
+
| `writing-skills` | Create or edit a skill |
|
|
73
73
|
|
|
74
|
-
|
|
74
|
+
Tool mapping (Bash to pwsh, Read/Write to fs, and so on) lives in `skills/using-superpowers/references/dsh-tools.md` and its English twin `dsh-tools.en.md`.
|
|
75
75
|
|
|
76
|
-
|
|
76
|
+
### Same-name precedence
|
|
77
77
|
|
|
78
|
-
|
|
78
|
+
The official registry arbitrates same-layer name collisions by ascending `rank`. This bundle registers at rank 10, below `dsh-skill-filesystem` project and user roots (100-500) and official bundled skills (600). Whenever a same-name skill exists, this bundle's copy wins and the two rule sets never fight.
|
|
79
79
|
|
|
80
|
-
|
|
81
|
-
- 你也没法再从斜杠命令补全或命令行技能清单里调它。
|
|
80
|
+
## Skill switches and language
|
|
82
81
|
|
|
83
|
-
|
|
82
|
+
Open the `@wenaixi/dsh-superpower` card in the plugin manager; the panel sits at the bottom of its detail page.
|
|
84
83
|
|
|
85
|
-
-
|
|
86
|
-
-
|
|
87
|
-
-
|
|
88
|
-
-
|
|
84
|
+
- One switch per skill. Off means both sides lose it: the model no longer sees it in the available-skill catalog and `skill` tool calls are rejected; you can no longer reach it from slash-command completion or the CLI skill list.
|
|
85
|
+
- A single `中文 / English` button sits at the top of the panel, under the intro line, and switches the display language of all 15 skills' names and descriptions (English `description` vs Chinese `description_zh`) at once. The body is always the English original. Both descriptions start with `Superpower Skill:` / `Superpower Skill:`. The choice is per-language (a single `language` preference) and stored in the profile. Until you touch it, descriptions follow the Host UI language (settings language); once you switch it in the panel, the language stays fixed.
|
|
86
|
+
- The panel header also carries enable-all, disable-all, restore-defaults, and a search box. The head line shows this bundle's `provider`, `rank`, `source`, and panel build.
|
|
87
|
+
- Changes take effect immediately; the running turn is unaffected and the next turn sees the new catalog and language.
|
|
88
|
+
- State lives in the profile's `cordis.patch.yml` (`disabled` and `language` tables) and travels with the profile.
|
|
89
|
+
- Only this bundle's 15 skills are affected; official and third-party skills are untouched.
|
|
89
90
|
|
|
90
|
-
7.
|
|
91
|
+
Before 7.4.0 there were two switches per skill (model-invocable / user-invocable) backed by `modelDisabled` and `userDisabled`. Both fields are deprecated: old values keep working after an upgrade, and your first panel interaction clears them, converging the config onto `disabled`.
|
|
91
92
|
|
|
92
|
-
##
|
|
93
|
+
## Usage
|
|
93
94
|
|
|
94
95
|
```
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
96
|
+
"Build me X" -> brainstorming -> writing-plans -> subagent-driven-development
|
|
97
|
+
"Fix this bug" -> systematic-debugging
|
|
98
|
+
"Review this" -> requesting-code-review
|
|
99
|
+
"That session went wrong" -> diagnosing-superpowers
|
|
99
100
|
```
|
|
100
101
|
|
|
101
|
-
|
|
102
|
+
Check: `await ctx.skills.list({cwd})` should return 15 entries with `provider: superpowers`.
|
|
102
103
|
|
|
103
|
-
##
|
|
104
|
+
## Development
|
|
104
105
|
|
|
105
106
|
```bash
|
|
106
107
|
pnpm install && pnpm build && pnpm typecheck && node scripts/verify.mjs
|
|
107
108
|
|
|
108
|
-
#
|
|
109
|
+
# Same-name precedence, run one: self-built stub, no external dependency
|
|
109
110
|
node scripts/check-same-name-priority.mjs
|
|
110
111
|
|
|
111
|
-
#
|
|
112
|
-
#
|
|
113
|
-
#
|
|
114
|
-
#
|
|
112
|
+
# Same-name precedence, run two: load the official @deepseek-ai/dsh-skill-filesystem
|
|
113
|
+
# That package is not a direct profile dependency; the script probes the profile
|
|
114
|
+
# entry, the real .pnpm store directory, and the global dsh installation.
|
|
115
|
+
# On a machine without dsh (plain CI), run the stub script above instead.
|
|
115
116
|
node scripts/check-same-name-priority-fs.mjs
|
|
116
117
|
|
|
117
|
-
#
|
|
118
|
+
# Skill switches end to end: real SkillRegistry, defaults, muting, hot invalidation
|
|
118
119
|
node scripts/check-skill-switches.mjs
|
|
119
120
|
|
|
120
|
-
#
|
|
121
|
+
# Full upstream sync review (deep + tokens both green)
|
|
121
122
|
node scripts/review-sync.mjs
|
|
122
123
|
|
|
123
|
-
dsh --profile web --dump-config #
|
|
124
|
+
dsh --profile web --dump-config # assert "# == @wenaixi/dsh-superpower"
|
|
124
125
|
```
|
|
125
126
|
|
|
126
|
-
###
|
|
127
|
+
### Browser verification
|
|
127
128
|
|
|
128
|
-
|
|
129
|
+
Optional. Needs dsh and Python playwright installed locally. Both scripts take every address and path from the command line:
|
|
129
130
|
|
|
130
|
-
|
|
|
131
|
+
| Script | What it verifies |
|
|
131
132
|
|---|---|
|
|
132
|
-
| `scripts/browser/verify-switch-ui.py` |
|
|
133
|
-
| `scripts/browser/verify-model-perception.py` |
|
|
133
|
+
| `scripts/browser/verify-switch-ui.py` | Real Web UI: open the plugin card, flip switches, click bulk buttons, search-filter, then read `cordis.patch.yml` back |
|
|
134
|
+
| `scripts/browser/verify-model-perception.py` | Four-phase loop: after a UI write, re-check both visibility sides through the Host's real `SkillRegistry` and compare UI rows against the Host catalog |
|
|
134
135
|
|
|
135
136
|
```bash
|
|
136
|
-
# 1.
|
|
137
|
+
# 1. Start a Web server on a profile that has this plugin; note the token in the startup log
|
|
137
138
|
dsh --profile <profile> --no-open --port 3199
|
|
138
139
|
|
|
139
|
-
# 2.
|
|
140
|
+
# 2. Full panel pass
|
|
140
141
|
python scripts/browser/verify-switch-ui.py \
|
|
141
142
|
http://127.0.0.1:3199 <token> .verify-shots <profile>/cordis.patch.yml .verify-shots/expected.json
|
|
142
143
|
|
|
143
|
-
# 3. UI
|
|
144
|
+
# 3. UI and Host four-phase loop
|
|
144
145
|
python scripts/browser/verify-model-perception.py \
|
|
145
|
-
http://127.0.0.1:3199 <token> <profile
|
|
146
|
+
http://127.0.0.1:3199 <token> <profile dir> <profile>/cordis.patch.yml .verify-shots
|
|
146
147
|
```
|
|
147
148
|
|
|
148
|
-
`expected.json`
|
|
149
|
+
`expected.json` is the array of 15 skill names, used to assert that UI row order matches the `skills/` directory:
|
|
149
150
|
|
|
150
151
|
```bash
|
|
151
152
|
node -e "import('./lib/superpowers.js').then(async m=>{const c=await m.SkillCatalog.fromDirectory('skills');require('fs').writeFileSync('expected.json',JSON.stringify(c.verifyIntegrity().entries.map(e=>e.document.name)))})"
|
|
152
153
|
```
|
|
153
154
|
|
|
154
|
-
|
|
155
|
+
Screenshots land in `.verify-shots/`, which is git-ignored.
|
|
155
156
|
|
|
156
|
-
##
|
|
157
|
+
## Layout
|
|
157
158
|
|
|
158
159
|
```
|
|
159
|
-
src/superpowers.ts #
|
|
160
|
-
src/catalog.ts # SkillCatalog
|
|
161
|
-
src/document.ts # SkillDocument
|
|
162
|
-
src/switches.ts #
|
|
163
|
-
src/client.js #
|
|
164
|
-
skills/ # 15
|
|
165
|
-
lib/ #
|
|
166
|
-
locale/ #
|
|
167
|
-
icon.png #
|
|
168
|
-
scripts/ #
|
|
169
|
-
scripts/build-client.mjs #
|
|
160
|
+
src/superpowers.ts # plugin entry, SkillProvider rank 10
|
|
161
|
+
src/catalog.ts # SkillCatalog: catalog, three-key fingerprint probe, snapshot reuse, spec self-test
|
|
162
|
+
src/document.ts # SkillDocument: frontmatter parsing, contract mapping, built-in selfTest
|
|
163
|
+
src/switches.ts # skill switches and language preference, built-in selfTest
|
|
164
|
+
src/client.js # browser half: switch and language panel on the plugin card, hand-written CJS factory
|
|
165
|
+
skills/ # 15 skills, English bodies, bilingual frontmatter descriptions
|
|
166
|
+
lib/ # committed build artifacts so GitHub installs need no build
|
|
167
|
+
locale/ # plugin card title and description (zh/en); panel UI follows the Host locale
|
|
168
|
+
icon.png # plugin card, README header, GitHub avatar
|
|
169
|
+
scripts/ # gates, precedence runs, switch runs, upstream sync review, browser verification
|
|
170
|
+
scripts/build-client.mjs # copies the client artifact, then checks the inline catalog against skills/
|
|
170
171
|
```
|
|
171
172
|
|
|
172
|
-
##
|
|
173
|
+
## Version history
|
|
174
|
+
|
|
175
|
+
Since `v7.0.0` skill names follow upstream naming (no `superpower-` prefix) and the bundle syncs upstream `obra/superpowers v6.4.2`; the plugin became DSH-only, dropping compatibility layers for Claude Code, Codex, Gemini CLI, and other hosts. npm `7.0.0` was published before that specialization and is deprecated.
|
|
176
|
+
|
|
177
|
+
`v7.1.0` extracted the `SkillCatalog` and `SkillDocument` deep modules and pushed boundary self-tests down into the modules themselves.
|
|
178
|
+
|
|
179
|
+
`v7.1.1` fixed the official filesystem precedence script failing to locate `@deepseek-ai/dsh-skill-filesystem` under the pnpm isolated layout.
|
|
173
180
|
|
|
174
|
-
`v7.
|
|
181
|
+
`v7.2.0` added the skill switch panel, turning the plugin into a dual-face form (Host side registers skills, browser side renders the panel) and adding the icon and card metadata.
|
|
175
182
|
|
|
176
|
-
`v7.
|
|
183
|
+
`v7.3.0` upgraded snapshot invalidation to a three-key aggregate fingerprint (directory mtime + root directory names + per-skill SKILL.md mtime), closing two blind windows (content edits and incremental creation); the skill-count magic number became an exported constant; the bare-call guard regex was corrected against the real data domain and its self-test blind spot closed; client manifest comparison became name-keyed.
|
|
177
184
|
|
|
178
|
-
`v7.
|
|
185
|
+
`v7.2.1` fixed the panel's language boundary: skill content (names and descriptions) stayed Chinese with no per-skill translation; all panel UI copy (titles, buttons, hints, meta labels) moved into `zh`/`en` dictionaries and follows the Host UI language through the official locale registry. The provider/rank/source labels stopped being hardcoded English.
|
|
179
186
|
|
|
180
|
-
`v7.
|
|
187
|
+
`v7.4.0` merged each skill's two switches into one and converged configuration onto a single `disabled` table; brainstorming's visual collaboration moved to DSH's official document preview and the bundled HTTP server scripts were removed.
|
|
181
188
|
|
|
182
|
-
`v7.
|
|
189
|
+
`v7.4.1` fixed switch saves failing: the `dsh-settings` write gate validates every `op.path` against a volatile node, and dropping `.volatile()` from the two legacy fields made the whole `mutate` batch fail; restoring the marker fixed it. The panel header gained a panel-build label.
|
|
183
190
|
|
|
184
|
-
`v7.
|
|
191
|
+
`v7.5.0` shipped every skill with an English body (`SKILL.en.md`, upstream original adapted for DSH) beside the Chinese one, added a per-skill `中文 / English` switch, made English descriptions always start with `Superpower Skill: `, routed the same language preference to the model-side catalog and body, and made README.md English by default with a Chinese twin.
|
|
185
192
|
|
|
186
|
-
`v7.
|
|
193
|
+
`v7.5.2` moved the language switch to a single button at the top of the panel: it now controls all 15 skills at once, and while the `language` preference is unset the descriptions follow the Host UI language (settings language); once set, they stay fixed.
|
|
187
194
|
|
|
188
|
-
`v7.
|
|
195
|
+
`v7.5.1` makes skill bodies the official English originals (single `SKILL.md` per skill, DSH-adapted), keeps Chinese as the panel language via `description_zh`, so the language switch changes only the description the model sees. The `中文 / English` switch, the `Superpower Skill: ` prefixes, and the bilingual README remain.
|
|
189
196
|
|
|
190
|
-
|
|
197
|
+
Full history in [CHANGELOG.md](./CHANGELOG.md).
|
|
191
198
|
|
|
192
|
-
##
|
|
199
|
+
## FAQ
|
|
193
200
|
|
|
194
|
-
|
|
201
|
+
**404 after install, or wrong version?** Install from GitHub instead, or add `--registry https://registry.npmjs.org`. No allowlist is needed. Check the latest version with `npm view @wenaixi/dsh-superpower --registry https://registry.npmjs.org`.
|
|
195
202
|
|
|
196
|
-
|
|
203
|
+
**Empty card title, description, or icon?** Usually `package.json`'s `exports` does not expose `./package.json` and `./locale/*.json`, or `icon` points at an absolute path outside the package. `node scripts/verify.mjs` asserts both, plus whether `files` ships the icon.
|
|
197
204
|
|
|
198
|
-
##
|
|
205
|
+
## License
|
|
199
206
|
|
|
200
|
-
MIT
|
|
207
|
+
MIT, same as upstream [obra/superpowers](https://github.com/obra/superpowers). See [LICENSE](./LICENSE).
|
|
201
208
|
|
|
202
|
-
##
|
|
209
|
+
## Contributing
|
|
203
210
|
|
|
204
|
-
|
|
211
|
+
Issues and PRs welcome. See [CONTRIBUTING.md](./CONTRIBUTING.md).
|
|
205
212
|
|
|
206
|
-
##
|
|
213
|
+
## Credits
|
|
207
214
|
|
|
208
|
-
-
|
|
209
|
-
- [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)
|
|
215
|
+
- Upstream author [Jesse Vincent](https://blog.fsck.com) and [Prime Radiant](https://primeradiant.com)
|
|
216
|
+
- [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) for the three-role plugin architecture
|
package/README.zh.md
ADDED
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
# dsh-superpower
|
|
2
|
+
|
|
3
|
+
[English](./README.md) | [中文](./README.zh.md)
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/@wenaixi/dsh-superpower)
|
|
6
|
+
[](./LICENSE)
|
|
7
|
+
[](https://github.com/deepseek-ai/deepseek-harness)
|
|
8
|
+
|
|
9
|
+
<img src="./icon.png" alt="@wenaixi/dsh-superpower" width="128" height="128">
|
|
10
|
+
|
|
11
|
+
[obra/superpowers](https://github.com/obra/superpowers) 的 DSH 移植版。15 个技能注入 `ctx.skills`,装上就能用,正文全中文。
|
|
12
|
+
|
|
13
|
+
## 安装
|
|
14
|
+
|
|
15
|
+
需要 Node 20 以上、pnpm 11 以上,以及 dsh 本体(`npm i -g @deepseek-ai/dsh`)。下面以 `web` profile 为例,换个 profile 名字即可。
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
# A — npm(推荐,自动装最新)
|
|
19
|
+
dsh plugin --profile web add @wenaixi/dsh-superpower
|
|
20
|
+
|
|
21
|
+
# B — GitHub 直装(绕过镜像延迟)
|
|
22
|
+
dsh plugin --profile web add github:Wenaixi/dsh-superpower
|
|
23
|
+
|
|
24
|
+
# 验证
|
|
25
|
+
dsh --profile web --dump-config | grep -A2 "@wenaixi/dsh-superpower"
|
|
26
|
+
# # == @wenaixi/dsh-superpower / - id: superpowers
|
|
27
|
+
|
|
28
|
+
dsh --profile web # 进会话,技能自动可用
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
要锁版本就在包名后加 `@<version>`(`@wenaixi/dsh-superpower@7.2.0`)或 `#v7.2.0`。
|
|
32
|
+
|
|
33
|
+
旧包名 `dsh-superpower`(不带 scope)已经废弃并 `npm deprecate`,请换成带 scope 的。
|
|
34
|
+
|
|
35
|
+
本地开发或离线安装:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
git clone https://github.com/Wenaixi/dsh-superpower && cd dsh-superpower
|
|
39
|
+
pnpm install && pnpm build && node scripts/verify.mjs # 15/15 PASS
|
|
40
|
+
dsh plugin --profile web add ./ # 本地路径安装
|
|
41
|
+
pnpm pack && dsh plugin --profile web add ./wenaixi-dsh-superpower-*.tgz
|
|
42
|
+
|
|
43
|
+
# 更新 / 卸载
|
|
44
|
+
dsh plugin --profile web add @wenaixi/dsh-superpower
|
|
45
|
+
dsh plugin --profile web remove @wenaixi/dsh-superpower
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## 是什么
|
|
49
|
+
|
|
50
|
+
一套强制的工程方法论,模型不按顺序走就会做错:先设计,再把计划切成可校验的小步,然后测试驱动,调试时先找根因,收尾前必须跑验证命令。装在 `dsh.bundle` 里,不往用户目录里写东西,卸载干净,HMR 会自动重建。
|
|
51
|
+
|
|
52
|
+
## 包含技能
|
|
53
|
+
|
|
54
|
+
| 技能 | 什么时候用 |
|
|
55
|
+
|---|---|
|
|
56
|
+
| `using-superpowers` | 每次会话开头,先查有没有该用的技能 |
|
|
57
|
+
| `brainstorming` | 新功能动手前,把需求和设计问清楚 |
|
|
58
|
+
| `writing-plans` | 设计定了,拆成一项一项能验证的任务 |
|
|
59
|
+
| `using-git-worktrees` | 需要和当前工作区隔离 |
|
|
60
|
+
| `executing-plans` | 在当前会话里亲自把计划跑完 |
|
|
61
|
+
| `subagent-driven-development` | 计划里有多件独立的事,交给 subagent 分头做 |
|
|
62
|
+
| `dispatching-parallel-agents` | 两件以上互不依赖的事并行分发 |
|
|
63
|
+
| `test-driven-development` | 先写测试再写实现 |
|
|
64
|
+
| `systematic-debugging` | 出了 bug,先定位根因再改 |
|
|
65
|
+
| `verification-before-completion` | 说「完成」之前必须跑验证命令 |
|
|
66
|
+
| `requesting-code-review` | 任务做完、发 PR 前求评审 |
|
|
67
|
+
| `receiving-code-review` | 收到评审意见,先技术核实再改 |
|
|
68
|
+
| `diagnosing-superpowers` | 会话出问题或成本异常时定位原因 |
|
|
69
|
+
| `finishing-a-development-branch` | 决定合并、发 PR 还是留着分支 |
|
|
70
|
+
| `writing-skills` | 新建或改技能 |
|
|
71
|
+
|
|
72
|
+
工具映射(`Bash` 到 `pwsh`、`Read/Write` 到 `fs` 等)在 `skills/using-superpowers/references/dsh-tools.md`。
|
|
73
|
+
|
|
74
|
+
### 同名技能谁生效
|
|
75
|
+
|
|
76
|
+
官方注册表在同层重名时按 `rank` 从小到大裁决。本包 rank 是 10,比 `dsh-skill-filesystem` 的项目级和用户级(100–500)以及官方内置 bundled(600)都小,所以只要有同名技能,本包这份生效,不会有两套规则打架。
|
|
77
|
+
|
|
78
|
+
## 技能开关
|
|
79
|
+
|
|
80
|
+
插件管理页里点开 `@wenaixi/dsh-superpower` 卡片,详情页底部就是开关面板。每个技能一个开关,关掉即两侧同时不可见:
|
|
81
|
+
|
|
82
|
+
- 模型不再在可用技能目录里看到它,`skill` 工具调用也会被拒;
|
|
83
|
+
- 你也没法再从斜杠命令补全或命令行技能清单里调它。
|
|
84
|
+
|
|
85
|
+
面板上方还有全部开启、全部关闭、恢复默认三个批量操作和一个搜索框。页头标着本包的 `provider`、`rank`、`source`,排查同名覆盖时用得上。
|
|
86
|
+
|
|
87
|
+
- 拨动后立即生效,模型的下一轮对话就能看到新目录;当前这一轮不受影响。
|
|
88
|
+
- 状态写在 profile 的 `cordis.patch.yml` 的 `disabled` 字段里,跟着 profile 一起备份迁移,重装插件不丢。
|
|
89
|
+
- 只影响本包这 15 个技能,不碰官方和第三方插件提供的技能。
|
|
90
|
+
- 语言切换:面板顶部(说明文案之下)一个「中文 / English」按钮,一次切换全部 15 个技能的名称与描述显示语言(英文 `description` 与中文 `description_zh`)。正文一律为英文原版。两种描述分别以 `Superpower Skill: ` / `Superpower Skill:` 开头。未在面板调过语言时,描述跟随宿主界面语言(设置里选的语言);调过后固定为该语言。
|
|
91
|
+
- 面板 UI 文案(标题、按钮、提示、meta 标签)跟随宿主界面语言(设置里切换语言即生效)。
|
|
92
|
+
|
|
93
|
+
7.3.0 及更早版本用过两个开关(模型可调用 / 用户可调用),对应 `modelDisabled` 与 `userDisabled` 两张表。这两个字段已废弃:升级后旧值继续生效,你第一次拨动开关时它们会被清空,配置收敛到 `disabled` 一张表。
|
|
94
|
+
|
|
95
|
+
## 使用
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
「帮我做 XXX」 → brainstorming → writing-plans → subagent-driven-development
|
|
99
|
+
「修这个缺陷」 → systematic-debugging
|
|
100
|
+
「帮我评审」 → requesting-code-review
|
|
101
|
+
「刚才会话出问题了」 → diagnosing-superpowers
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
校验:`await ctx.skills.list({cwd})` 应该返回 15 条 `provider: superpowers`。
|
|
105
|
+
|
|
106
|
+
## 开发
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
pnpm install && pnpm build && pnpm typecheck && node scripts/verify.mjs
|
|
110
|
+
|
|
111
|
+
# 同名优先实测一:自研桩对照,无外部依赖,任何环境可跑
|
|
112
|
+
node scripts/check-same-name-priority.mjs
|
|
113
|
+
|
|
114
|
+
# 同名优先实测二:加载官方 @deepseek-ai/dsh-skill-filesystem 做同层实测
|
|
115
|
+
# 该包不在 profile 的直接依赖里,脚本会依次尝试 profile 入口、pnpm store
|
|
116
|
+
# 内 .pnpm 真实目录、全局 dsh 本体三处候选路径。
|
|
117
|
+
# 本机没装 dsh(比如纯 CI)就用上面的自研桩脚本做等价验证。
|
|
118
|
+
node scripts/check-same-name-priority-fs.mjs
|
|
119
|
+
|
|
120
|
+
# 技能开关端到端实测:真实 SkillRegistry 上验证默认全开、禁言生效、热失效闭环
|
|
121
|
+
node scripts/check-skill-switches.mjs
|
|
122
|
+
|
|
123
|
+
# 上游同步全量复核(deep + tokens 双绿)
|
|
124
|
+
node scripts/review-sync.mjs
|
|
125
|
+
|
|
126
|
+
dsh --profile web --dump-config # 断言 "# == @wenaixi/dsh-superpower"
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### 浏览器端验证
|
|
130
|
+
|
|
131
|
+
可选,需要本机装好 dsh 和 Python 的 playwright。两个脚本只做验证,地址和路径都从命令行传:
|
|
132
|
+
|
|
133
|
+
| 脚本 | 验什么 |
|
|
134
|
+
|---|---|
|
|
135
|
+
| `scripts/browser/verify-switch-ui.py` | 真机 Web UI 里点开插件卡片,逐个拨开关、点批量按钮、搜索过滤,再回读 `cordis.patch.yml` 确认落盘 |
|
|
136
|
+
| `scripts/browser/verify-model-perception.py` | 四阶段闭环:UI 写完用宿主真实 `SkillRegistry` 复核两侧可见性,并逐行比对 UI 显示与宿主目录 |
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
# 1. 起一个装了本插件的 profile 的 Web 服务,记下启动日志里的 token
|
|
140
|
+
dsh --profile <profile> --no-open --port 3199
|
|
141
|
+
|
|
142
|
+
# 2. 面板全量操作
|
|
143
|
+
python scripts/browser/verify-switch-ui.py \
|
|
144
|
+
http://127.0.0.1:3199 <token> .verify-shots <profile>/cordis.patch.yml .verify-shots/expected.json
|
|
145
|
+
|
|
146
|
+
# 3. UI 与宿主的四阶段闭环
|
|
147
|
+
python scripts/browser/verify-model-perception.py \
|
|
148
|
+
http://127.0.0.1:3199 <token> <profile 目录> <profile>/cordis.patch.yml .verify-shots
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
`expected.json` 是 15 个技能名的数组,用来断言 UI 行序和 `skills/` 目录一致:
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
node -e "import('./lib/superpowers.js').then(async m=>{const c=await m.SkillCatalog.fromDirectory('skills');require('fs').writeFileSync('expected.json',JSON.stringify(c.verifyIntegrity().entries.map(e=>e.document.name)))})"
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
截图落在 `.verify-shots/`,已在 `.gitignore` 里。
|
|
158
|
+
|
|
159
|
+
## 目录
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
src/superpowers.ts # 插件入口,SkillProvider rank 10
|
|
163
|
+
src/catalog.ts # SkillCatalog:技能编目、三键聚合指纹探测、快照复用、规范自检
|
|
164
|
+
src/document.ts # SkillDocument:frontmatter 解析、契约转换、内建 selfTest
|
|
165
|
+
src/switches.ts # 技能开关:禁言表解包与 invocation 覆盖,内建 selfTest
|
|
166
|
+
src/client.js # 浏览器半侧:插件卡片详情页的单开关面板,手写 CJS factory
|
|
167
|
+
skills/ # 15 个技能正文与资源
|
|
168
|
+
lib/ # 已提交的构建产物,GitHub 直装免构建
|
|
169
|
+
locale/ # 插件卡片的标题与描述(中英);面板 UI 经官方 locale 注册表双语切换
|
|
170
|
+
icon.png # 插件卡片、README 顶部、GitHub 头像共用
|
|
171
|
+
scripts/ # 门禁、同名裁决实测、开关实测、上游同步复核、浏览器验证
|
|
172
|
+
scripts/build-client.mjs # 复制客户端产物后校验内联清单与 skills/ 目录一致
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
## 版本沿革
|
|
176
|
+
|
|
177
|
+
`v7.0.0` 起技能名回归上游命名(去掉 `superpower-` 前缀)并整批同步上游 `obra/superpowers v6.4.2`;插件变成 DSH 专属,移除了 Claude Code、Codex、Gemini CLI 等其它宿主的兼容层。npm 上的 `7.0.0` 发布在专属化改造之前,已废弃。
|
|
178
|
+
|
|
179
|
+
`v7.1.0` 提炼 `SkillCatalog` 与 `SkillDocument` 两个深度模块,把边界自检下沉进模块自身。
|
|
180
|
+
|
|
181
|
+
`v7.1.1` 修复官方 filesystem 同名实测脚本在 pnpm isolated 布局下定位不到 `@deepseek-ai/dsh-skill-filesystem` 的问题。
|
|
182
|
+
|
|
183
|
+
`v7.2.0` 加入技能开关面板,插件升级为双面形态(宿主侧注册技能,浏览器侧渲染开关面板),并补上图标与插件卡片元数据。
|
|
184
|
+
|
|
185
|
+
`v7.3.0` 技能快照失效判据升级为三键聚合指纹(目录 mtime + 根级目录名集合 + 各 SKILL.md mtime),消除内容编辑与增量新建两类失明窗口;技能总数魔法数收敛为导出常量;裸调用守卫正则按真实数据域修正并补全自检盲区;客户端清单比对改按技能名建 Map。
|
|
186
|
+
|
|
187
|
+
`v7.2.1` 固化面板语言边界:技能内容(名称与描述)固定中文不做技能级翻译;面板 UI 文案(标题、按钮、提示、meta 标签)全部并入 `zh`/`en` 词典、经官方 locale 注册表随宿主界面语言切换。底部 `provider`/`rank`/`source` 三个标注不再硬编码英文。
|
|
188
|
+
|
|
189
|
+
`v7.4.0` 每个技能从两个开关合并为一个,配置收敛到单张 `disabled` 表;brainstorming 的可视化协作改用 DSH 官方文档预览,不再随包附带 HTTP 服务脚本。
|
|
190
|
+
|
|
191
|
+
`v7.5.0` 每个技能新增英文正文(`SKILL.en.md`,取自上游原版并做 DSH 专属化),与中文 `SKILL.md` 并存;面板每行新增「中文 / English」切换,英文描述一律以 `Superpower Skill: ` 开头;同一语言偏好同时决定模型侧目录描述与加载正文;README.md 改为默认英文并新增中文版 README.zh.md。
|
|
192
|
+
|
|
193
|
+
`v7.5.2` 语言切换按钮上移到面板顶部、全局一个;未调过时描述跟随宿主界面语言,调过后固定。
|
|
194
|
+
|
|
195
|
+
`v7.5.1` 技能正文统一为上游英文原版(单份 `SKILL.md`,DSH 专属化),中文描述移入 frontmatter `description_zh`,面板语言切换只改变模型看到的描述、正文恒英文。`中文 / English` 切换、`Superpower Skill:` 前缀与双语 README 保持不变。
|
|
196
|
+
|
|
197
|
+
`v7.4.1` 修复开关保存失败:`dsh-settings` 的写入闸门逐条校验 `op.path` 是否落在 volatile 节点下,两个旧字段去掉 `.volatile()` 会让整批 `mutate` 被拒,恢复标注即可;面板页头补「面板版本」标注。
|
|
198
|
+
|
|
199
|
+
完整变更见 [CHANGELOG.md](./CHANGELOG.md)。
|
|
200
|
+
|
|
201
|
+
## 常见问题
|
|
202
|
+
|
|
203
|
+
**装完 404 或者版本不对?** 换 GitHub 形式安装,或者加 `--registry https://registry.npmjs.org` 走官方源。不需要配置白名单。查最新版本用 `npm view @wenaixi/dsh-superpower --registry https://registry.npmjs.org`。
|
|
204
|
+
|
|
205
|
+
**卡片标题、描述或图标是空的?** 根因通常是 `package.json` 的 `exports` 没放行 `./package.json` 和 `./locale/*.json`,或者 `icon` 指向了包外的绝对路径。`node scripts/verify.mjs` 会把这两类问题连同 `files` 是否放行图标一起断言掉。
|
|
206
|
+
|
|
207
|
+
## 协议
|
|
208
|
+
|
|
209
|
+
MIT,与上游 [obra/superpowers](https://github.com/obra/superpowers) 一致。详见 [LICENSE](./LICENSE)。
|
|
210
|
+
|
|
211
|
+
## 贡献
|
|
212
|
+
|
|
213
|
+
Issue 和 PR 都欢迎。详见 [CONTRIBUTING.md](./CONTRIBUTING.md)。
|
|
214
|
+
|
|
215
|
+
## 致谢
|
|
216
|
+
|
|
217
|
+
- 上游作者 [Jesse Vincent](https://blog.fsck.com) 与 [Prime Radiant](https://primeradiant.com)
|
|
218
|
+
- [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) 的三角色插件架构
|
package/lib/catalog.d.ts
CHANGED
|
@@ -65,6 +65,7 @@ export interface CatalogIntegrityReport {
|
|
|
65
65
|
ok: boolean;
|
|
66
66
|
}
|
|
67
67
|
export declare class SkillCatalog {
|
|
68
|
+
#private;
|
|
68
69
|
readonly skillDir: string;
|
|
69
70
|
private readonly entriesByName;
|
|
70
71
|
private readonly entriesByDir;
|
|
@@ -75,6 +76,7 @@ export declare class SkillCatalog {
|
|
|
75
76
|
private fingerprint;
|
|
76
77
|
private lastScanProviderName?;
|
|
77
78
|
private lastScanRank?;
|
|
79
|
+
private lastScanLanguage?;
|
|
78
80
|
constructor(skillDir: string);
|
|
79
81
|
/**
|
|
80
82
|
* 从指定目录异步扫描并构建已预热的 SkillCatalog 深度实例。
|
|
@@ -99,12 +101,16 @@ export declare class SkillCatalog {
|
|
|
99
101
|
* 映射当前有效技能为 DSH SkillCandidate 快照。
|
|
100
102
|
* 自动按 mtime 评估有效性,未变动时直接复用不可变快照,零重复读盘。
|
|
101
103
|
*/
|
|
102
|
-
listCandidates(providerName: string, rank: number, options?: CatalogLookupOptions
|
|
104
|
+
listCandidates(providerName: string, rank: number, options?: CatalogLookupOptions & {
|
|
105
|
+
language?: 'zh' | 'en';
|
|
106
|
+
}): Promise<readonly SkillCandidate[]>;
|
|
103
107
|
/**
|
|
104
108
|
* 根据候选技能的 locator 与名称解析出完整 SkillDefinition。
|
|
105
109
|
* 优先命中内存缓存;若发生热重读,自动自愈更新回内存映射,消除状态撕裂缝隙。
|
|
106
110
|
*/
|
|
107
|
-
getDefinition(candidate: SkillCandidate, providerName: string, options?: CatalogLookupOptions
|
|
111
|
+
getDefinition(candidate: SkillCandidate, providerName: string, options?: CatalogLookupOptions & {
|
|
112
|
+
language?: 'zh' | 'en';
|
|
113
|
+
}): Promise<SkillDefinition | undefined>;
|
|
108
114
|
/**
|
|
109
115
|
* 执行 SkillCatalog 自身边界契约自检(排重与漂移探测)。
|
|
110
116
|
*/
|
package/lib/catalog.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC7E,OAAO,EAAE,aAAa,EAAE,KAAK,uBAAuB,EAAE,MAAM,eAAe,CAAA;AAG3E,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,KAAK,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,aAAa,CAAA;IACvB,SAAS,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,uBAAuB,EAAE,CAAA;IAClC,EAAE,EAAE,OAAO,CAAA;CACZ;AAED;;;;;;;;;GASG;AACH;;;GAGG;AACH,eAAO,MAAM,oBAAoB,KAAK,CAAA;AAEtC,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,EAAE,CAAA;CACzC;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,YAAY,EAAE,CAAA;IACvB,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IACzC,EAAE,EAAE,OAAO,CAAA;CACZ;AAED,qBAAa,YAAY
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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"}
|