pax-beehive/dsh-hub-cli
Open-source CLI, schemas, resolver, and DSH agent tools for DSH Plugin Hub
DSH Hub CLI – DeepSeek Harness (DSH) プラグインプリセットの共有と適用
概要 – Node ベースのコマンドラインツールで、DeepSeek Harness の正確な状態(ランタイムバージョン、順序付きプラグイン、設定パッチ、必要な環境変数)をキャプチャし、公開 DSH Plugin Hub 上で不変の Preset Release として公開できます。他のユーザーはそのプリセットを取得し、単一のコマンドで同じ環境を再現できます。
重要性
| 問題 | DSH Hub ソリューション |
|---|---|
| ドリフト – チームメンバーが手動でプラグインをインストールし、バージョンが時間とともに変化します。 | プリセットはランタイム、プラグインバージョン、ロード順序、ソースハッシュを固定します。 |
| 隠れた設定 – シークレットやパッチファイルがドキュメントやチャットに散在しています。 | ${ENV_VAR} プレースホルダーのみ公開され、実際のシークレット値はローカルに留まります。 |
| 信頼できないオンボーディング – 「私のマシンでは動く」という話。 | profile apply はプロファイル全体をステージング、検証、アトミックに置き換え、リバーシブルなリビジョン履歴を提供します。 |
| 手動アップグレード – リスクが高く、エラーが発生しやすい。 | profile diff は正確な変更を表示し、profile upgrade は変更を適用し、profile rollback は以前のリビジョンを復元します。 |
コアコンセプト
- Preset Release – 小さなコンテンツアドレス指定の JSON/YAML ドキュメント(
sha256ハッシュ)で、以下を記録します:- DSH ランタイムバージョン(
@deepseek-ai/dsh)。 - 正確な npm 整合性ハッシュまたは固定された Git コミット ID を持つ、順序付き バンドル(プラグイン)のリスト。
- 著者の
cordis.patch.yml設定。 - ランタイムに必要な宣言された 入力(環境変数)。
- DSH ランタイムバージョン(
- Profile – 現在インストールされているプラグイン、ロックファイル、パッチを保持するローカルディレクトリ(
~/.dsh/profiles/<name>)。 - Plan – 現在の状態のフィンガープリントと有効期限(30 分)を含む、変更(適用/アップグレード)のプレビュー。プランは変更が行われる前に明示的に承認される必要があり、CLI を AI エージェントにとって安全にします。
主なコマンド(クイックリファレンス)
| コマンド | 目的 |
|---|---|
dsh-hub profile share <slug> --version <v> --profile <name> |
ローカルプロファイルをキャプチャし、不変のプリセットを公開します。 |
dsh-hub profile apply <slug> --version <v> --profile <name> |
プリセットを取得し、ステージングし、検証し、ローカルプロファイルをアトミックに置き換えます。 |
dsh-hub profile diff … |
ローカル状態とプリセットの間の行ごとの比較を表示します。 |
dsh-hub profile upgrade … |
新しいプリセットバージョンにアップグレードします(差分プレビュー付き)。 |
dsh-hub profile rollback [revision] |
各適用時に自動保存された以前のリビジョンを復元します。 |
dsh-hub profile doctor |
ヘルスチェックを実行します(不足入力、バージョンドリフト、ロックファイル整合性)。 |
dsh-hub search / info / install |
公開プラグインカタログを閲覧し、個々のプラグインをインストールします。 |
dsh-hub login |
デバイスコードフローで Hub に認証します(または DSH_HUB_TOKEN を使用)。 |
| `dsh-hub telemetry on | off` |
内部動作
- キャプチャ – CLI は
~/.dsh/profiles/<profile>(プラグイン、順序、cordis.patch.yml、環境変数宣言)を読み取り、すべてのアーティファクトにコンテンツアドレス指定ハッシュを持つ Release ドキュメントを構築します。 - 公開 – Release は Hub API にアップロードされ、ハッシュが不変性を保証します。
- 適用 –
--planは、Release ハッシュ、現在のプロファイルの前提条件ハッシュ、有効期限タイムスタンプを含む JSON プランを作成します。- ユーザー(または監督する人間)がプラン ID を承認します。
- CLI は一時ディレクトリに新しいプラグインをステージングし、構造チェックと
dsh --dump-configを実行してパッチを検証します。 - 成功すると、ステージングされたディレクトリがライブプロファイルをアトミックに置き換え、以前のバージョンはロールバック用のリビジョンとして保持されます。
- セキュリティチェック –
- インストール前に Release ハッシュを検証します。
- 公開されたパッチでは環境変数プレースホルダーのみ許可され、実際のシークレット値は拒否されます。
- トークンは
0600権限で保存され、テレメトリはオプトアウト可能です。
典型的なワークフロー
# 1️⃣ CLI をグローバルにインストール
npm i -g @dsh-plugin-hub/cli
# 2️⃣ 現在のワークスペースをプリセットとして共有
dsh-hub profile share my‑workspace --version 1.0.0 --profile web --dry-run # プレビュー
dsh-hub login # 一度だけ
dsh-hub profile share my‑workspace --version 1.0.0 --profile web # 公開
# 3️⃣ チームメイトが適用
dsh-hub profile apply my‑workspace --version 1.0.0 --profile web
dsh-hub profile doctor # すべてが正常であることを確認
AI エージェントとの統合
このリポジトリには、CLI を エージェントツール(例:dsh_hub_profile_diff)として公開する dsh‑plugin パッケージも含まれています。エージェントはプランを生成し、人間に提示し、明示的な確認後にのみ dsh-hub operation apply <plan-id> を実行できます。この設計は「人間がループ内」の安全バリアを強制します。
開発と拡張性
- Monorepo には 4 つのパッケージ(
schemas、registry、cli、dsh-plugin)が含まれ、すべて一緒にバージョン管理されます。 - Node ≥22.13 と pnpm で構築され、TypeScript で型チェックされ、Node の組み込みテストランナーでテストされます。
- 貢献ガイドライン、行動規範、ガバナンスモデルが提供されています。
- CLI は MIT ライセンス のオープンソースです。
セキュリティとプライバシーのハイライト
- コンテンツアドレス指定のリリース(
sha256)により改ざんを防止します。 - すべてのプラグインソースは固定されています(npm 整合性ハッシュまたは完全な Git コミット ID)。
- プランは 30 分後に期限切れになり、ローカルプロファイルが変更されると中止されます。
- シークレットはローカルマシンから離れることはなく、変数名のみが公開されます。
- オプションのテレメトリは完全に匿名で、無効にできます。
ライセンス
MIT – 自由に使用、変更、配布できます。
結論 – DSH Hub CLI は、チームが完全な DeepSeek Harness 設定を再現可能かつ監査可能な方法で共有できるようにし、壊れやすい「このプラグインリストをインストール」プロセスを、AI エージェントでも安全に呼び出せる単一コマンドのバージョン管理操作に変えます。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト