dsh-capability-panel 1.0.0 → 1.1.1

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.i18n.yaml CHANGED
@@ -2,7 +2,7 @@
2
2
  # confirmed-consistent state. All languages carry equal authority; after editing
3
3
  # any side, bring the others along and re-record with:
4
4
  # git hash-object README.md README.zh.md README.ja.md README.ko.md
5
- README.md: ca1f0521a3609fed95b9b8200956df8c80340d27
6
- README.zh.md: 73c764569b4a07744934b1b87061b08b5a160a94
7
- README.ja.md: 9cd021cc996ce51331888f0df4c34731febcab68
8
- README.ko.md: 435a742d333af455dbf2d9a934c3054939c7ef07
5
+ README.md: e1a261ac0ad462922156922cba1866835b882c50
6
+ README.zh.md: 293a8d6612f3bf6659517544685220fe3f6e312e
7
+ README.ja.md: 00bfe2fa3cc6fa484b35ebf93b536b3539a15282
8
+ README.ko.md: 7182e1c0414091c87fc7461c28d659debc70fd14
package/README.ja.md CHANGED
@@ -1,5 +1,8 @@
1
1
  # dsh-capability-panel
2
2
 
3
+ [![npm](https://img.shields.io/npm/v/dsh-capability-panel)](https://www.npmjs.com/package/dsh-capability-panel) [![CI](https://github.com/pure-craft/dsh-capability-panel/actions/workflows/check.yml/badge.svg)](https://github.com/pure-craft/dsh-capability-panel/actions/workflows/check.yml) [![license](https://img.shields.io/npm/l/dsh-capability-panel)](LICENSE)
4
+
5
+
3
6
  [English](README.md) | [中文](README.zh.md) | 日本語 | [한국어](README.ko.md)
4
7
 
5
8
  **DeepSeek Harness のエージェントが今まさに到達できるものを可視化し、セッション単位・プリセット単位で切り替える。**
@@ -17,7 +20,7 @@
17
20
  | 概要 | [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)(`dsh`)の web プラグイン。現在のセッションのスキル・MCP サーバー・システムツールと、その真のコンテキスト内状態を一覧し、個別に切り替えるパネル |
18
21
  | 用途 | 「なぜエージェントはこのスキルを知らないのか」の解明。ロード済みスキルがプルーニング/コンパクションを生き残ったかの確認。特定のツールや MCP サーバーをこのセッションだけで無効化。プリセットごとのデフォルト能力セットの設定。無効化後にブロックされた呼び出し回数の計測 |
19
22
  | インストール | `dsh plugin --profile web add dsh-capability-panel`(その後 dsh を再起動) |
20
- | 要件 | dsh web プロファイル、dsh ≥ 0.1.2-rc.1。`@deepseek-ai/*` の peer はすべてホストが提供 |
23
+ | 要件 | dsh web プロファイル、dsh ≥ 0.1.2-alpha.4(それ以前でも動作しますが、ロード状態は degraded 表示)。`@deepseek-ai/*` の peer はすべてホストが提供 |
21
24
  | データ | `$DSH_HOME/settings.yaml` の `capability-panel` 名前空間。統計は `$DSH_HOME/capability-panel/stats.jsonl`。loopback API `/api/capability-panel` |
22
25
  | パッケージ | npm の `dsh-capability-panel`。bundle id は `capability-panel` |
23
26
 
@@ -33,11 +36,13 @@
33
36
  - **再起動しても消えないセッション単位のスイッチ。** 現在の会話でスキル・ツール・MCP サーバーまるごとをオフに。次のプロンプト組み立てから適用され、dsh の再起動後もそのセッションに紐づいたまま復元されます。他のセッションや会話履歴には一切触れません。
34
37
  - **プリセットのデフォルト。** 設定 → 能力パネル で、エージェントプリセットごとのデフォルト能力セットを保存。以後に作成・復元されるセッションがそれを継承します。プリセットのデフォルトはあくまで起点で、セッション内で上書きできます。
35
38
  - **MCP をサーバーごとにグループ化。** 2 つのサーバーに 200 個のツールがあっても見通せます。サーバーごと 1 行に畳み、1 回の書き込みで全体を切り替え。
39
+ - **ソースごとにグループ化。** スキルと MCP サーバーはラベル付きの区切り線の下にまとまります:プリセット同梱のエントリーは出自のプリセット名を表示し、それ以外は実際のディレクトリ(`~/.dsh/skills`、プロジェクト相対パス、長い場合は中間を省略)を表示——「このスキルはどこから来たのか」が一目でわかります。
40
+ - **ワンクリックでソースフォルダへ。** グループの区切り線にホバーするとフォルダアイコンが現れ、クリックするとそのソースディレクトリをシステムのファイルマネージャーで開きます(macOS、Windows、freedesktop Linux)。
36
41
  - **ブロック回数。** オフにした後もモデルがその能力を呼び続けた場合、パネルがカウントします——モデルが記憶から行動しているシグナルです。
37
42
  - **ワンクリックでコマンド入力。** スキル行の紙飛行機ボタンが `/skill-name` を入力欄に入れます。あなたの Enter を待つだけです。
38
43
  - **高速フィルタ。** 名前・説明・状態ラベルで絞り込めます("truncated" や "已截断" でも可)。ヒットした説明は自動展開。
39
- - **UI 言語に追従。** パネル文言はホストに合わせて中国語と英語を切り替えます。
40
44
  - **軽量。** ランタイム依存ゼロ、ゼロコピー読み取り、バックグラウンド処理なし——パネルは開いたときだけ読みます。
45
+ - **UI 言語に追従。** パネル文言はホストに合わせて中国語と英語を切り替えます。
41
46
 
42
47
  ## プロダクション品質
43
48
 
@@ -62,6 +67,15 @@ dsh plugin --profile web add github:pure-craft/dsh-capability-panel
62
67
 
63
68
  インストール後は dsh の再起動が必要です。
64
69
 
70
+ DeepSeek Harness の web プロファイル(`dsh web`)、dsh ≥ 0.1.2-alpha.4 が必要です(ロード状態は同バージョンで導入された `session.snapshotEvents` から読み取ります。それ以前のバージョンでもパネルは動作しますが、ロード状態は degraded となり payload に注記されます)。`@deepseek-ai/*` の peer はすべてホストが提供するため、他にインストールするものはありません。
71
+
72
+ **設定不要**——このプラグインに設定項目はありません。再起動後、2 か所に現れます:
73
+
74
+ - 会話の入力欄右側にある**コンテキストアイコン**——セッションパネルを開きます
75
+ - **設定 → 能力パネル**——プリセットごとのデフォルト能力
76
+
77
+ `--profile web` は `dsh web` GUI が使うプロファイルなので、そのまま実行できます。マーケットプレイスで "capability panel" を検索してワンクリックで入れることもできます。アンインストールは `dsh plugin --profile web remove dsh-capability-panel`。設定と統計は `$DSH_HOME` に残ります("データの保存場所"参照)。
78
+
65
79
  ## 使い方
66
80
 
67
81
  会話を開き、入力欄右側のコンテキストアイコンをクリックすると、パネルが上に開きます。
@@ -70,6 +84,7 @@ dsh plugin --profile web add github:pure-craft/dsh-capability-panel
70
84
  - 各行右側のスイッチは即時反映——リフレッシュも再起動も不要
71
85
  - 行をクリックすると説明を展開
72
86
  - 上部のフィルタは名前・説明・状態ラベルを検索
87
+ - 区切り線は各タブをソースごとにグループ化します:プリセット同梱のエントリーはプリセット名、それ以外はディスク上のディレクトリ——区切り線にホバーするとフルパスを表示し、クリックするとそのフォルダをファイルマネージャーで開きます
73
88
  - オフにした行は淡色表示になり、モデルのシステムプロンプトにも「オフにした能力」が明示されます
74
89
 
75
90
  `run_code` は予約された Code Mode トランスポートで、レジストリがマスクを禁止しているため、スイッチはオンのまま固定です。
@@ -101,10 +116,17 @@ pnpm test # テスト
101
116
  pnpm typecheck # 型チェック
102
117
  pnpm lint # oxlint(type-aware ルール含む)
103
118
  pnpm check # typecheck + lint + test(100% カバレッジゲート)
119
+ pnpm scan:dead-code # デッドコード巡回レポート(助言のみ、ゲートにしない)
104
120
  ```
105
121
 
106
122
  ホスト側の変更は dsh の再起動が必要です。クライアント側は `dsh web` と watch ビルドの併用でホットスワップします。
107
123
 
124
+ ## 応援
125
+
126
+ このパネルがデバッグの時間を救ってくれたら、[star](https://github.com/pure-craft/dsh-capability-panel) をもらえると、必要としている他の人に見つけてもらえます。dsh をいじっている知人への共有も歓迎です。Issue と PR はいつでもどうぞ——[コントリビューションガイド](CONTRIBUTING.md)もご覧ください。
127
+
128
+ 変更履歴は [CHANGELOG.md](CHANGELOG.md) を参照。
129
+
108
130
  ## ライセンス
109
131
 
110
132
  [MIT](LICENSE)
package/README.ko.md CHANGED
@@ -1,5 +1,8 @@
1
1
  # dsh-capability-panel
2
2
 
3
+ [![npm](https://img.shields.io/npm/v/dsh-capability-panel)](https://www.npmjs.com/package/dsh-capability-panel) [![CI](https://github.com/pure-craft/dsh-capability-panel/actions/workflows/check.yml/badge.svg)](https://github.com/pure-craft/dsh-capability-panel/actions/workflows/check.yml) [![license](https://img.shields.io/npm/l/dsh-capability-panel)](LICENSE)
4
+
5
+
3
6
  [English](README.md) | [中文](README.zh.md) | [日本語](README.ja.md) | 한국어
4
7
 
5
8
  **DeepSeek Harness 에이전트가 지금 실제로 도달할 수 있는 것을 확인하고, 세션 단위 또는 프리셋 단위로 전환하세요.**
@@ -17,7 +20,7 @@
17
20
  | 무엇 | [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)(`dsh`) 웹 플러그인: 현재 세션의 스킬·MCP 서버·시스템 도구와 그 실제 인컨텍스트 상태를 나열하고 개별 전환하는 패널 |
18
21
  | 용도 | "왜 에이전트가 이 스킬을 모르지?" 해결. 로드된 스킬이 프루닝/컴팩션에서 살아남았는지 확인. 특정 도구나 MCP 서버를 이 세션에서만 끄기. 프리셋별 기본 capability 세트 설정. 비활성화 후 차단된 호출 횟수 계측 |
19
22
  | 설치 | `dsh plugin --profile web add dsh-capability-panel`(설치 후 dsh 재시작) |
20
- | 요구 사항 | dsh web 프로필, dsh ≥ 0.1.2-rc.1. `@deepseek-ai/*` peer는 모두 호스트가 제공 |
23
+ | 요구 사항 | dsh web 프로필, dsh ≥ 0.1.2-alpha.4(이전 버전에서도 실행되지만 로드 상태는 degraded 로 표시). `@deepseek-ai/*` peer는 모두 호스트가 제공 |
21
24
  | 데이터 | `$DSH_HOME/settings.yaml`의 `capability-panel` 네임스페이스. 통계는 `$DSH_HOME/capability-panel/stats.jsonl`. loopback API `/api/capability-panel` |
22
25
  | 패키지 | npm의 `dsh-capability-panel`. bundle id는 `capability-panel` |
23
26
 
@@ -33,11 +36,13 @@
33
36
  - **재시작해도 유지되는 세션 단위 스위치.** 현재 대화에서 스킬·도구·MCP 서버 전체를 끕니다. 다음 프롬프트 조립부터 적용되며, dsh 재시작 후에도 해당 세션에 바인딩된 채 복원됩니다. 다른 세션이나 대화 히스토리는 건드리지 않습니다.
34
37
  - **프리셋 기본값.** 설정 → capability 패널에서 에이전트 프리셋별 기본 capability 세트를 저장합니다. 이후 생성되거나 복원되는 세션이 이를 상속합니다. 프리셋 기본값은 시작점일 뿐, 세션에서 언제든 재정의할 수 있습니다.
35
38
  - **서버별 MCP 그룹화.** 두 서버에 200개의 도구가 있어도 한눈에 볼 수 있습니다. 서버당 한 행으로 접고, 한 번의 쓰기로 전체를 전환합니다.
39
+ - **출처별 그룹화.** 스킬과 MCP 서버가 라벨이 붙은 구분선 아래로 모입니다: 프리셋에 포함된 항목은 출처 프리셋 이름을 표시하고, 나머지는 실제 디렉터리(`~/.dsh/skills`, 프로젝트 상대 경로, 길면 중간 생략)를 표시합니다——"이 스킬은 어디서 왔지?"에 한눈에 답할 수 있습니다.
40
+ - **원클릭으로 소스 폴더 열기.** 그룹 구분선에 호버하면 폴더 아이콘이 나타나고, 클릭하면 해당 소스 디렉터리가 시스템 파일 관리자에서 열립니다(macOS, Windows, freedesktop Linux).
36
41
  - **차단 횟수.** 끈 후에도 모델이 해당 capability를 계속 호출하면 패널이 카운트합니다——모델이 기억에서 행동하고 있다는 신호입니다.
37
42
  - **원클릭 명령 입력.** 스킬 행의 종이비행기 버튼이 `/skill-name`을 입력창에 넣습니다. Enter만 누르면 됩니다.
38
43
  - **빠른 필터링.** 이름, 설명 또는 상태 라벨로 검색("truncated" / "已截断" 모두 가능). 일치하는 설명은 자동으로 펼쳐집니다.
39
- - **UI 언어 추종.** 패널 문구는 호스트에 따라 중국어와 영어로 전환됩니다.
40
44
  - **경량.** 런타임 의존성 제로, 제로카피 읽기, 백그라운드 작업 없음——패널은 열릴 때만 읽습니다.
45
+ - **UI 언어 추종.** 패널 문구는 호스트에 따라 중국어와 영어로 전환됩니다.
41
46
 
42
47
  ## 프로덕션 등급
43
48
 
@@ -62,6 +67,15 @@ dsh plugin --profile web add github:pure-craft/dsh-capability-panel
62
67
 
63
68
  설치 후 dsh를 재시작해야 적용됩니다.
64
69
 
70
+ DeepSeek Harness의 web 프로필(`dsh web`), dsh ≥ 0.1.2-alpha.4가 필요합니다(로드 상태는 해당 버전에서 도입된 `session.snapshotEvents`로 읽습니다. 이전 버전에서도 패널은 실행되지만 로드 상태는 degraded 로 표시되고 payload 에 명기됩니다). `@deepseek-ai/*` peer는 모두 호스트가 제공하므로 추가로 설치할 것은 없습니다.
71
+
72
+ **설정 불필요**——이 플러그인에는 설정 항목이 없습니다. 재시작 후 두 곳에서 찾을 수 있습니다:
73
+
74
+ - 대화 입력창 오른쪽의 **컨텍스트 아이콘**——세션 패널을 엽니다
75
+ - **설정 → capability 패널**——프리셋별 기본 capability
76
+
77
+ `--profile web`은 `dsh web` GUI가 사용하는 프로필이므로 명령을 그대로 실행하면 됩니다. 마켓플레이스에서 "capability panel"을 검색해 원클릭으로 설치할 수도 있습니다. 제거는 `dsh plugin --profile web remove dsh-capability-panel`. 설정과 통계는 `$DSH_HOME`에 남습니다("데이터 저장 위치" 참조).
78
+
65
79
  ## 사용법
66
80
 
67
81
  대화를 열고 입력창 오른쪽의 컨텍스트 아이콘을 클릭하면 패널이 위로 열립니다.
@@ -70,6 +84,7 @@ dsh plugin --profile web add github:pure-craft/dsh-capability-panel
70
84
  - 각 행 오른쪽의 스위치는 즉시 적용——새로고침도 재시작도 불필요
71
85
  - 행을 클릭하면 설명이 펼쳐집니다
72
86
  - 상단 필터는 이름, 설명, 상태 라벨을 검색
87
+ - 구분선은 각 탭을 출처별로 그룹화합니다: 프리셋 포함 항목은 프리셋 이름, 나머지는 디스크상의 디렉터리——구분선에 호버하면 전체 경로를 보여주고, 클릭하면 해당 폴더가 파일 관리자에서 열립니다
73
88
  - 꺼진 행은 흐리게 표시되고, 모델의 시스템 프롬프트에도 "사용자가 끈 capability"가 명시됩니다
74
89
 
75
90
  `run_code`는 예약된 Code Mode 트랜스포트로, 레지스트리가 마스킹을 금지하므로 스위치가 켜진 채로 고정됩니다.
@@ -101,10 +116,17 @@ pnpm test # 테스트
101
116
  pnpm typecheck # 타입 체크
102
117
  pnpm lint # oxlint(type-aware 규칙 포함)
103
118
  pnpm check # typecheck + lint + test(100% 커버리지 게이트)
119
+ pnpm scan:dead-code # 데드 코드 점검 보고서(권고용, 게이트 아님)
104
120
  ```
105
121
 
106
122
  호스트 측 변경은 dsh 재시작이 필요하고, 클라이언트 측은 `dsh web`과 watch 빌드가 함께 실행 중일 때 핫스왑됩니다.
107
123
 
124
+ ## 응원하기
125
+
126
+ 이 패널이 디버깅 시간을 아껴줬다면, [star](https://github.com/pure-craft/dsh-capability-panel)를 눌러주세요——필요한 다른 사람들이 찾을 수 있게 됩니다. dsh를 만지는 지인에게 공유해주셔도 좋습니다. Issue와 PR은 언제나 환영합니다——[기여 가이드](CONTRIBUTING.md)를 참고하세요.
127
+
128
+ 변경 이력은 [CHANGELOG.md](CHANGELOG.md)에서 확인할 수 있습니다.
129
+
108
130
  ## 라이선스
109
131
 
110
132
  [MIT](LICENSE)
package/README.md CHANGED
@@ -1,5 +1,8 @@
1
1
  # dsh-capability-panel
2
2
 
3
+ [![npm](https://img.shields.io/npm/v/dsh-capability-panel)](https://www.npmjs.com/package/dsh-capability-panel) [![CI](https://github.com/pure-craft/dsh-capability-panel/actions/workflows/check.yml/badge.svg)](https://github.com/pure-craft/dsh-capability-panel/actions/workflows/check.yml) [![license](https://img.shields.io/npm/l/dsh-capability-panel)](LICENSE)
4
+
5
+
3
6
  English | [中文](README.zh.md) | [日本語](README.ja.md) | [한국어](README.ko.md)
4
7
 
5
8
  **See what your DeepSeek Harness agent can actually reach right now — and switch it, per session or per preset.**
@@ -17,7 +20,7 @@ A panel for the live conversation's capability surface: every skill, MCP server,
17
20
  | What | A [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (`dsh`) web plugin: a panel that lists the live session's skills, MCP servers, and system tools with their true in-context state, plus switches to toggle them |
18
21
  | Use it to | answer "why doesn't the agent know this skill"; see whether a loaded skill survived pruning/compaction; turn a tool or MCP server off for one session only; set per-preset default capabilities; count blocked tool calls after a disable |
19
22
  | Install | `dsh plugin --profile web add dsh-capability-panel` (then restart dsh) |
20
- | Requires | dsh web profile, dsh ≥ 0.1.2-rc.1; all `@deepseek-ai/*` peers provided by the host |
23
+ | Requires | dsh web profile, dsh ≥ 0.1.2-alpha.4 (older versions run with load states degraded); all `@deepseek-ai/*` peers provided by the host |
21
24
  | Data | `$DSH_HOME/settings.yaml` namespace `capability-panel`; stats at `$DSH_HOME/capability-panel/stats.jsonl`; loopback API `/api/capability-panel` |
22
25
  | Package | `dsh-capability-panel` on npm; bundle id `capability-panel` |
23
26
 
@@ -35,6 +38,8 @@ This plugin turns both into one panel at the right of the composer.
35
38
  - **Per-session switches that survive restarts.** Turn a skill, tool, or whole MCP server off for the current conversation. The switch applies from the next prompt assembly, stays bound to that session across a dsh restart, and never touches another session or the conversation history.
36
39
  - **Preset defaults.** Settings → Capability Panel stores the default capability set per agent preset; sessions created or resumed afterward inherit it. Same filter, same grouping, same switches as the session panel — a preset default is a starting point the session can still override.
37
40
  - **MCP grouped by server.** Two hundred tools behind two servers stay scannable: collapse to one row per server, flip the whole server in one write.
41
+ - **Grouped by source.** Skills and MCP servers cluster under labeled divider rules: preset-bundled entries name the preset they came from; everything else shows its real directory (`~/.dsh/skills`, project-relative paths, middle-ellipsized when long) — "where did this skill come from" is answered at a glance.
42
+ - **One click to the source folder.** Hover a group divider and a folder icon appears; clicking it opens that source directory in the system file manager (macOS, Windows, and freedesktop Linux).
38
43
  - **Blocked-attempt counts.** If the model still calls a capability after you turned it off, the panel counts it — the signal that the model is acting from memory and the switch needs a louder story.
39
44
  - **One-click command fill.** A skill row's paper-plane button drops `/skill-name` into the composer, ready for your Enter.
40
45
  - **Fast filtering.** Match on name, description, or the visible state pill ("truncated" / "已截断" both work), with matching descriptions auto-expanded.
@@ -66,7 +71,14 @@ dsh plugin --profile web add github:pure-craft/dsh-capability-panel
66
71
 
67
72
  Restart dsh for the install to take effect.
68
73
 
69
- Requires a DeepSeek Harness web profile (`dsh web`). All `@deepseek-ai/*` runtime pieces are provided by the host as peer dependencies — there is nothing else to install.
74
+ Requires a DeepSeek Harness web profile (`dsh web`), dsh ≥ 0.1.2-alpha.4 (load states read via `session.snapshotEvents`, introduced in that release; on older versions the panel runs with load states degraded and notes so in the payload). All `@deepseek-ai/*` runtime pieces are provided by the host as peer dependencies — there is nothing else to install.
75
+
76
+ **Zero configuration** — the plugin has no settings of its own. After the restart you will find it in two places:
77
+
78
+ - the **context icon** at the right of any conversation's composer — that opens the session panel
79
+ - **Settings → Capability Panel** — the per-preset default capabilities
80
+
81
+ `--profile web` is the profile your `dsh web` GUI already uses, so the command applies verbatim. You can also search "capability panel" in the marketplace UI for a one-click install. Uninstall with `dsh plugin --profile web remove dsh-capability-panel`; settings and stats stay in `$DSH_HOME` (see "Where data lives").
70
82
 
71
83
  ## Usage
72
84
 
@@ -76,6 +88,7 @@ Open any conversation and click the context icon at the right of the composer; t
76
88
  - The switch at the right of each row takes effect immediately — no refresh, no restart
77
89
  - Click the row itself to expand its description
78
90
  - The filter box at the top matches name, description, or state label, with an `X / Y` matched count
91
+ - Divider rules group each tab by source: a preset name for preset-bundled entries, otherwise the on-disk directory — hover a divider for the full path, click it to open that folder in the file manager
79
92
  - A disabled row renders dimmed, and the model is told in its system prompt that you turned the capability off
80
93
 
81
94
  `run_code` is the reserved Code Mode transport — the registry forbids masking it, so its switch is locked on.
@@ -107,10 +120,17 @@ pnpm test # run the tests
107
120
  pnpm typecheck # typecheck
108
121
  pnpm lint # oxlint, including its type-aware rules
109
122
  pnpm check # typecheck + lint + test (100% coverage gates)
123
+ pnpm scan:dead-code # advisory dead-code report (never a gate)
110
124
  ```
111
125
 
112
126
  A change to the host half needs a dsh restart; the client half hot-swaps while `dsh web` and the watch build run together.
113
127
 
128
+ ## Support
129
+
130
+ If this panel saved you a debugging session, a [star](https://github.com/pure-craft/dsh-capability-panel) helps others find it — and sharing it with someone else hacking on dsh helps too. Issues and PRs are welcome — see [CONTRIBUTING.md](CONTRIBUTING.md).
131
+
132
+ Changes are tracked in [CHANGELOG.md](CHANGELOG.md).
133
+
114
134
  ## License
115
135
 
116
136
  [MIT](LICENSE)
package/README.zh.md CHANGED
@@ -1,5 +1,8 @@
1
1
  # dsh-capability-panel
2
2
 
3
+ [![npm](https://img.shields.io/npm/v/dsh-capability-panel)](https://www.npmjs.com/package/dsh-capability-panel) [![CI](https://github.com/pure-craft/dsh-capability-panel/actions/workflows/check.yml/badge.svg)](https://github.com/pure-craft/dsh-capability-panel/actions/workflows/check.yml) [![license](https://img.shields.io/npm/l/dsh-capability-panel)](LICENSE)
4
+
5
+
3
6
  [English](README.md) | 中文 | [日本語](README.ja.md) | [한국어](README.ko.md)
4
7
 
5
8
  **看清你的 DeepSeek Harness agent 此刻真正能触达什么——并且随时开关,按会话或按 preset。**
@@ -17,7 +20,7 @@
17
20
  | 是什么 | [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness)(`dsh`)的 web 插件:一个面板,列出当前会话的技能、MCP 服务器、系统工具及其真实的在不在上下文状态,并能逐项开关 |
18
21
  | 什么时候用 | 回答"为什么 agent 不知道这个技能";看一个加载过的技能是否挺过了剪枝/压缩;只在当前会话里关掉某个工具或 MCP 服务器;为 preset 设置默认能力集合;统计关闭后被拦截的调用次数 |
19
22
  | 安装 | `dsh plugin --profile web add dsh-capability-panel`(然后重启 dsh) |
20
- | 要求 | dsh web profile,dsh ≥ 0.1.2-rc.1;`@deepseek-ai/*` peer 全部由宿主提供 |
23
+ | 要求 | dsh web profile,dsh ≥ 0.1.2-alpha.4(更早版本可运行,但加载状态降级显示);`@deepseek-ai/*` peer 全部由宿主提供 |
21
24
  | 数据 | `$DSH_HOME/settings.yaml` 的 `capability-panel` 命名空间;统计在 `$DSH_HOME/capability-panel/stats.jsonl`;loopback API `/api/capability-panel` |
22
25
  | 包 | npm 上的 `dsh-capability-panel`;bundle id `capability-panel` |
23
26
 
@@ -35,6 +38,8 @@
35
38
  - **重启不丢的会话级开关。** 关掉当前会话里的一个技能、一个工具或一整个 MCP 服务器:从下一次提示组装生效,重启 dsh 后随该会话恢复,且绝不碰其他会话、绝不动对话历史。
36
39
  - **Preset 默认。** 设置 → 能力面板,为每个 agent preset 存一份默认能力集合;之后新建或恢复的会话继承它。与会话面板同一套筛选、分组和开关——preset 默认只是起点,会话里仍然可以覆盖。
37
40
  - **MCP 按服务器分组。** 两个服务器挂着两百个工具也能扫得过来:折叠成每服务器一行,一次开关整组。
41
+ - **按来源分组。** 技能和 MCP 服务器在带标签的分隔线下聚类:preset 自带的条目标注它来自哪个 preset,其余显示真实目录(`~/.dsh/skills`、项目相对路径,过长时中间省略)——"这个技能是从哪来的"一眼即有答案。
42
+ - **一键打开源文件夹。** 悬停分组分隔线会出现文件夹图标,点击即在系统文件管理器中打开该来源目录(macOS、Windows 和 freedesktop Linux)。
38
43
  - **拦截计数。** 模型在你关掉某项之后仍然尝试调用,面板会计数——这是"模型在凭记忆行动、开关需要更响亮的告知"的信号。
39
44
  - **一键填入命令。** 技能行上的纸飞机按钮把 `/skill-name` 放进输入框,等你自己的回车。
40
45
  - **快速筛选。** 按名称、描述或状态文案匹配(搜"已截断"或"truncated"都可以),命中时描述自动展开。
@@ -66,7 +71,14 @@ dsh plugin --profile web add github:pure-craft/dsh-capability-panel
66
71
 
67
72
  安装后需要重启 dsh 才生效。
68
73
 
69
- 要求 DeepSeek Harness 的 web profile(`dsh web`),dsh ≥ 0.1.2-rc.1。所有 `@deepseek-ai/*` 运行时件都由宿主以 peer 依赖形式提供——没有别的要装。
74
+ 要求 DeepSeek Harness 的 web profile(`dsh web`),dsh ≥ 0.1.2-alpha.4(加载状态经由该版本引入的 `session.snapshotEvents` 读取;更早版本面板仍可运行,加载状态降级显示并在 payload 中注明)。所有 `@deepseek-ai/*` 运行时件都由宿主以 peer 依赖形式提供——没有别的要装。
75
+
76
+ **安装即用,不需要任何配置**——插件没有配置项。重启后你会在两个地方看到它:
77
+
78
+ - 任意对话输入框右侧的**上下文图标**——点开就是会话面板
79
+ - **设置 → 能力面板**——管理每个 preset 的默认能力集合
80
+
81
+ `--profile web` 就是 dsh web GUI 使用的配置档;如果你平时用 `dsh web` 启动界面,照抄命令即可。也可以在插件市场里搜索 "capability panel" 一键安装。卸载用 `dsh plugin --profile web remove dsh-capability-panel`;设置和统计会保留在 `$DSH_HOME`(见"数据存放")。
70
82
 
71
83
  ## 使用
72
84
 
@@ -76,6 +88,7 @@ dsh plugin --profile web add github:pure-craft/dsh-capability-panel
76
88
  - 每行右侧的开关立即生效——不刷新、不重启
77
89
  - 点击行本身展开描述
78
90
  - 顶部筛选框匹配名称、描述或状态文案,下方有 `X / Y` 命中计数
91
+ - 分隔线把每个分区按来源归类:preset 自带条目显示 preset 名,其余显示磁盘上的目录——悬停分隔线查看完整路径,点击即在文件管理器中打开该文件夹
79
92
  - 被关闭的行变暗,同时模型的系统提示里会被告知"用户关闭了这些能力"
80
93
 
81
94
  `run_code` 是保留的 Code Mode 传输通道——注册表禁止遮罩它,所以它的开关锁定为开。
@@ -107,10 +120,17 @@ pnpm test # 跑测试
107
120
  pnpm typecheck # 类型检查
108
121
  pnpm lint # oxlint(含 type-aware 规则)
109
122
  pnpm check # typecheck + lint + test(100% 覆盖率门槛)
123
+ pnpm scan:dead-code # 死代码巡检报告(仅提示,不做门禁)
110
124
  ```
111
125
 
112
126
  改动 host 半需要重启 dsh;client 半在 `dsh web` 与 watch 构建同时运行时热替换。
113
127
 
128
+ ## 支持
129
+
130
+ 如果这个面板帮你省过一次排查,点个 [star](https://github.com/pure-craft/dsh-capability-panel) 让更多人能找到它;也欢迎顺手分享给同样在折腾 dsh 的朋友。Issue 和 PR 都欢迎——详见[贡献指南](CONTRIBUTING.zh.md)。
131
+
132
+ 版本变更记录见 [CHANGELOG.md](CHANGELOG.md)。
133
+
114
134
  ## 许可证
115
135
 
116
136
  [MIT](LICENSE)