@michengai/dsh-archive-manager 1.2.7 → 1.3.0

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.ja.md ADDED
@@ -0,0 +1,239 @@
1
+ <p align="center">
2
+ <img src="assets/branding/dsh-banner-en.webp" alt="DSH Archive Manager" width="100%">
3
+ </p>
4
+
5
+ <div align="center">
6
+
7
+ # DSH Archive Manager
8
+
9
+ **DeepSeek Harness でアーカイブされたセッションを安全に管理**
10
+
11
+ [简体中文](README.zh-CN.md) · [English](README.en.md) · [日本語](README.ja.md) · [Español](README.es.md) · [Français](README.fr.md) · [Deutsch](README.de.md) · [Русский](README.ru.md) · [Português](README.pt.md)
12
+
13
+ [更新履歴](CHANGELOG.md) · [Apache-2.0](LICENSE)
14
+
15
+ [![ライセンス: Apache-2.0](https://img.shields.io/badge/License-Apache--2.0-blue.svg)](LICENSE)
16
+ [![npm package](https://img.shields.io/npm/v/%40michengai%2Fdsh-archive-manager.svg?label=npm%20package)](https://www.npmjs.com/package/@michengai/dsh-archive-manager)
17
+ [![npm ダウンロード数](https://img.shields.io/npm/dt/%40michengai%2Fdsh-archive-manager.svg?label=npm%20downloads)](https://www.npmjs.com/package/@michengai/dsh-archive-manager)
18
+ [![DSH Web Plugin](https://img.shields.io/badge/DSH%20Web-Plugin-0f766e.svg)](https://github.com/MichengAI/dsh-archive-manager)
19
+ [![DSH 対応バージョン 0.2.2-rc.1 まで](https://img.shields.io/badge/DSH-up%20to%200.2.2--rc.1-2563eb.svg)](#前提条件)
20
+ </div>
21
+
22
+ > DSH Archive Manager はコミュニティによって保守されている DeepSeek Harness(DSH)向けプラグインであり、DeepSeek AI 公式の製品ではありません。
23
+
24
+ 本文書は **1.3.0** を対象としています。過去の変更履歴は [CHANGELOG.md](CHANGELOG.md) をご覧ください。
25
+
26
+ ## 機能概要
27
+
28
+ 一時的に使わない会話を整理して保管し、必要な時にいつでも復元。日常のタスクリストを常に整理された状態に保ちます。
29
+
30
+ - **二重ビューとプライマリサイドバーエントリ**:ホストのメインサイドバーに常駐する専用ナビゲーションアイコンから、**960px 中央寄せのワークスペースビュー** を展開。「アーカイブ済み」と「未アーカイブ」の大型パネルを快適に操作でき、狭いダイアログのスクロール制約から解放されます。
31
+ - **フルライフサイクル管理**:個別セッションのアーカイブ、ワークスペース全体のワンクリックアーカイブ、プロジェクト横断の一括アーカイブ、個別・一括の復元と直接オープンを完全サポート。
32
+ - **サイドバー全行右クリック操作**:サイドバーのワークスペース行やセッション行の任意の余白を右クリックして専用操作メニューを呼び出し可能。未分類や未保存の行ではシステム標準の右クリックが安全に機能し、誤操作を防ぎます。
33
+ - **ブレなし星標配置と状態ドットの完全共存 (#90, #92)**:お気に入り星標を標準の 16×16px に揃え、ホストの先頭スロットに絶対配置で重ね合わせることでタイトルの横ブレを解消。セッション実行中や承認待ちの際も、ホストの状態ドットを完全に表示したまま星標が右下 10px のバッジに自動縮退し、カスタムスキン環境でも美しく調和します。
34
+ - **ワークスペースクイック操作メニュー**:サイドバーのワークスペースメニューから「フォルダパスをコピー」「フォルダを開く」(Windows Explorer または macOS Finder を直接起動)、「セッションをアーカイブ」を素早く実行。
35
+ - **ワークスペース間のセッション移動**:ホバーで開くカスケードサブメニューからセッションを別のワークスペースへ移動可能。実行中プロセスの静穏化、アトミックなファイル書き換え、投影キャッシュの即時ウォームアップ、NTFS コロン安全性を備えています。
36
+ - **一体型アコーディオンカードと 40px 超コンパクト行**:Skills Manager と同等の統合型ドロワーカード(38px ヘッダー)でプロジェクトグループを統一。セッション行の高さを 40px に凝縮し、情報密度を倍増させました。
37
+ - **ホストネイティブなダークモードチェックボックス**:ホストの標準 Checkbox 仕様と `accent-color` に準拠し、ダーク背景とブランドブルーのチェック状態に完璧に調和。
38
+ - **背面透け防止モーダルと多言語アクセシビリティ**:大型プレビューダイアログを `body` 直下(`portalToBody`)にマウントし、遮光背景とすりガラスぼかしで背面の文字透けを防止。全言語対応の閉じるボタンアクセシビリティラベル(`common.close`)を提供。
39
+ - **標準化されたセクション ID と共存保護 (#91)**:設定ページの登録 ID をチーム統一仕様の `archive-manager` に改定し、フェイルソフトなランタイム保護を導入。サードパーティ製アーカイブプラグインと安全に共存可能。
40
+ - **洗練された単一行適応型ツールバー**:ホスト標準の `Input` 原語、公式検索アイコン、緑色フォーカス枠を採用し、残りの幅を適応的に拡張。検索ボックス、表示・ソートメニュー、プロジェクト絞り込み、日付範囲を一行にスマートに配置。
41
+ - **全文検索と Codex 風複合メニュー**:タイトルと会話本文(ユーザーおよびアシスタントのメッセージ)の両方を網羅する検索。セッション絞り込み(すべて/お気に入りのみ)と並び替えをチェックマーク付きの Codex 風メニューに統合。
42
+ - **軽量 DateRange カプセルとカレンダーポップオーバー**:ネイティブ日付入力を完全に刷新し、ダークモードの反転やフォーカス喪失を解決 (#74)。単一行カプセルで選択範囲を表示し、クリアボタン、クイックプリセット、全 8 言語の曜日・月表示、WAI-ARIA キーボード操作(矢印、Home/End、PageUp/Down、月跨ぎ補正)を完備。
43
+ - **アイドルセッションの自動整理**:経過日数を指定して長期間活動のないセッションを検出。実行中タスク、対話プロンプト、お気に入りを自動保護し、即時取り消し(Undo)にも対応。
44
+ - **完全物理削除**:不要なトランスクリプト、キャッシュ行、インデックスを物理的に完全消去。失敗した項目は個別に再試行可能。
45
+ - **孤立サブエージェントの検出と解放**:親セッションが外部から物理削除されて残された孤立サブエージェントを自動検出し、ディスク使用量を表示してワンクリックで物理解放。
46
+ - **企業向け Cordis 宿主設定ロックとリバースプロキシ対応**:Cordis 設定ファイル(bundle patch)によるセキュリティ完全ロックをサポート。プレフィックスを除去するリバースプロキシ配下でも `document.baseURI` により自動的にエンドポイントを解決。
47
+
48
+ ## 手動リストキャッシュ再構築 (#88)
49
+
50
+ アーカイブマネージャーを開くと、登録済みワークスペース、未分類リスト、アーカイブ内の通常のコールドセッションのヘッダーと公式キャッシュ投影のみをチェックし、IM チャンネルセッション(`im:`)は除外されます。キャッシュが欠落または非互換の場合、あるいはタイトル投影が利用できない場合にのみ修復カードが表示されます。クリックすると読み取り専用ハンドルを介してログを 1 つずつ読み取り、公式 `coldSnapshot` で投影を再構築して `session_projcache` に保存します。
51
+
52
+ 古いプラグイン領域のスキャン、JSON コピー、セッション/エージェントの起動、モデルの呼び出しは一切行わず、アーカイブやスケジュールも変更しません。実行中のセッションはスキップされ、失敗した項目は個別に再試行できます。完了後は公式セッションリストが更新され、候補が再確認されます。
53
+
54
+ ## 孤立サブエージェントのクリーンアップ
55
+
56
+ 親セッションが外部ツールやホストによって削除された場合、残された孤立サブエージェントがディスク上に残ることがあります。アーカイブマネージャーの「整理」パネルでこれらの孤立セッションを検出し、ディスク占有容量を計算してワンクリックで物理削除できます。
57
+
58
+ ## 検索とプレビュー
59
+
60
+ - 「アーカイブ済み」と「未アーカイブ」の両タブで、タイトル/本文検索、プロジェクト絞り込み、お気に入り、更新日フィルター、作成日ソートを共有。どちらのタブからでもスターの付け外しが可能です。
61
+ - 検索はタイトルだけでなく会話本文(ユーザーとアシスタントのメッセージ)も自動的に対象とします。日付フィルターはユーザー現地の終日を含み、プロジェクトやお気に入りと組み合わせて絞り込めます。
62
+ - 一致した箇所にはスニペットとハイライトが表示されます。「アーカイブ済み」ではスニペットまたは「詳細 → クイックプレビュー」をクリックして復元せずに文脈を確認でき、「未アーカイブ」ではクリックして会話を直接開きます。
63
+ - プレビューは Markdown の表、引用、コードブロックをロールラベル付きでレンダリングします。ハイライトを確認したい場合は原文表示に切り替え可能です。最新の最大 8 件のメッセージ、または最初の一致箇所の前後を表示します。1 メッセージあたり最大 2,000 UTF-16 コードユニットで安全に切り詰めます。
64
+ - 検索クエリは最大 200 文字、1 バッチあたり最大 20 セッションを順次読み取ります。ツール、添付ファイル、推論、システムメッセージ、プラグイン挿入データは除外されます。
65
+ - 永続的な全文インデックスは保持しないため、長大なセッションが多い場合はプロジェクトや日付で絞り込んでから検索してください。
66
+
67
+ ## スクリーンショット
68
+
69
+ ### 1. アーカイブ設定管理(アコーディオンカードとダークモードチェックボックス)
70
+ 「設定 → アーカイブセッション → アーカイブ済み」で、統合ドロワーカード、40px 超コンパクト行、ネイティブダークモードチェックボックスを使用して検索、お気に入り、プレビュー、復元、クリーンアップを実行:
71
+
72
+ ![アーカイブ済み: 共有検索フィルター、お気に入り、コンパクト行](assets/screenshots/archived-sessions.webp)
73
+
74
+ 「未アーカイブ」に切り替えると、長期間活動のないセッションの整理提案、ワンクリックアーカイブ、プロジェクト一括操作が利用可能:
75
+
76
+ ![未アーカイブ: スマートアイドル整理とプロジェクト一括アーカイブ](assets/screenshots/unarchived-sessions.webp)
77
+
78
+ ### 2. 中央寄せフルスクリーンワークスペースパネル(サイドバー直通エントリ)
79
+ サイドバーエントリを有効にすると、メインサイドバーから直接 960px 中央寄せのフル機能ワークスペースパネルを展開:
80
+
81
+ ![メインワークスペースパネル: 専用サイドバーエントリと 960px 中央寄せ表示](assets/screenshots/main-view-panel.webp)
82
+
83
+ ### 3. ネイティブサイドバー全行右クリックとカスケードメニュー
84
+ プライマリサイドバーのワークスペース行またはセッション行を直接右クリックして、操作メニューおよびワークスペース間セッション移動のサブメニューを開く:
85
+
86
+ | ワークスペース操作(フォルダを開く/パスをコピー) | ワークスペース間のセッション移動(カスケードサブメニュー) |
87
+ | :---: | :---: |
88
+ | <img src="assets/screenshots/workspace-context-menu.webp" alt="Workspace Actions Menu" width="100%"> | <img src="assets/screenshots/session-move-menu.webp" alt="Move Session Menu" width="100%"> |
89
+
90
+ ## インストール手順
91
+
92
+ DeepSeek Harness 環境が必要です。以下の例では `web` プロファイルを使用しています。環境に合わせて調整してください。
93
+
94
+ ### エージェントに依頼してインストール
95
+ お使いのコンピュータでターミナルコマンドを実行できるエージェントに次のプロンプトを送信してください:
96
+
97
+ ```text
98
+ 公式 npm レジストリから最新の @michengai/dsh-archive-manager を DSH の web プロファイルにインストールし、アクティベーションを確認してリロード手順を説明してください。
99
+ ```
100
+
101
+ ### 手動でインストール
102
+
103
+ ```powershell
104
+ [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
105
+ $OutputEncoding = [System.Text.Encoding]::UTF8
106
+ dsh plugin --profile web add @michengai/dsh-archive-manager@latest --registry=https://registry.npmjs.org/
107
+ ```
108
+
109
+ インストール後、DSH Web を再起動し、ブラウザでページを更新(または `Ctrl+Shift+R` でハードリフレッシュ)してください。「設定 → アーカイブセッション」を開いて利用を開始します。更新時は同じインストールコマンドを再実行するだけです。
110
+
111
+ - **ホスト対応範囲**:DeepSeek Harness `0.2.x` 全シリーズ(`>=0.2.0-rc.1 <0.3.0-0`)。全 RC 版(`0.2.0-rc.1`, `0.2.0-rc.2`, `0.2.1-rc.1`〜`0.2.1-rc.5`, `0.2.2-rc.1`)で検証済みです。
112
+ - `0.2.0-rc.1` 未満の旧バージョンホストはサポート終了しました。`0.1.x` をご利用の場合はプラグイン `1.0.20` をご利用ください。
113
+ - **リバースプロキシ対応**:`/app/dsh/` などのサブパス配下に配置されたリバースプロキシ構成にも完全対応。API エンドポイントはページのベース URI(`document.baseURI`)に基づいて動的に解決されます。
114
+
115
+ ## プラグイン設定
116
+
117
+ DSH 標準のプラグイン設定に準拠しています:
118
+ > **サイドバー → プラグイン → `Archive Manager` をクリック**(ホストの `plugins.bundle.config` スロット)
119
+
120
+ ### 1. エントリ表示位置 (`entryLocation`)
121
+ - **すべての場所 (`both`)**:左サイドバーにアイコンを表示し、「設定 → アーカイブセッション」の項目も維持します。
122
+ - **サイドバーのみ (`sidebar`)**:左サイドバーにアイコンを表示し、設定ページの項目を登録解除して設定画面をスッキリさせます。
123
+ - **設定のみ (`settings`)**(デフォルト):左サイドバーを最小限に保ち、「設定 → アーカイブセッション」からアクセスします。
124
+
125
+ ### 2. オンライン更新ポリシー (`onlineUpdate` / `updater`)
126
+ - **設定方法**:企業のセキュリティコンプライアンス環境などでは、Cordis 設定ファイル(bundle patch)から更新を無効化できます:
127
+ ```yaml
128
+ updater: false # または onlineUpdate: false
129
+ ```
130
+ 設定すると起動時にアップデータが無効化され、未検証の外部バージョンがインストールされるのを防ぎます。
131
+
132
+ ## 使用ガイド
133
+
134
+ | 操作 | 手順 |
135
+ | --- | --- |
136
+ | **単一会話をアーカイブ** | サイドバーのセッションメニューから **セッションをアーカイブ** を選択 |
137
+ | **ワークスペース全体をアーカイブ** | ワークスペースメニューから **セッションをアーカイブ** を選択(インプレース確認が表示されます) |
138
+ | **検索と絞り込み** | **設定 → アーカイブセッション** またはサイドバーの **アーカイブ** をクリック。タイトルと本文を網羅して検索。Codex 風メニューで表示とソートを切り替え |
139
+ | **カレンダー操作** | 日付カプセルをクリックして軽量カレンダーを開く。全期間・プリセット対応。矢印・Home/End・PageUp/Down による完全なキーボード操作 |
140
+ | **クイックプレビュー** | 一致スニペットまたは **詳細 → クイックプレビュー** をクリックして復元せずに内容を確認 |
141
+ | **並び順の調整** | 最近アーカイブした順、更新日時、作成日時、タイトル順でソート |
142
+ | **会話の復元** | 行の復元アイコンをクリック。**詳細 → 復元して開く** で直接再開 |
143
+ | **グループ全体を一括アーカイブ** | **未アーカイブ** でグループの **…** メニューから全チャットのアーカイブを確認 |
144
+ | **お気に入り登録** | 行の星標アイコンをクリック。表示メニューからスター付きのみに絞り込み可能 |
145
+ | **アイドルチャットの整理** | **未アーカイブ** でアイドル日数を入力。実行中やお気に入りは自動保護され、候補を確認して実行 |
146
+ | **セッション ID をコピー** | **詳細** メニューから **セッション ID をコピー** を選択 |
147
+ | **孤立サブエージェントの整理** | 整理パネルで孤立サブエージェントを検出して物理削除 |
148
+ | **アーカイブの取り消し** | アーカイブ直後の通知から本バッチでアーカイブされたセッションを一括復元 |
149
+ | **完全削除** | セッションを選択して削除を実行。ログ、キャッシュ、インデックスを物理的に完全消去 |
150
+
151
+ ### お気に入りとアイドル整理
152
+
153
+ コンパクトなプロジェクトグループは折りたたみ可能です。スターや復元・アーカイブアイコンが右側に配置され、アーカイブされたセッションのメニューには「復元して開く」と「削除」が含まれます。
154
+
155
+ - タブを問わずスターアイコンと「お気に入りのみ」ドロップダウンを使用して重要なチャットをすばやく見つけられます。お気に入りはアーカイブ、復元、ブラウザ変更をまたいでホスト側に永続化されます。
156
+ - 「未アーカイブ」では、1〜36,500 日のアイドル日数を指定して現在のフィルター下で候補をプレビューできます。確認前に個別の候補のチェックを外すことも可能です。お気に入り、現在のチャット、実行中セッション(サブエージェントを含む)、承認待ちタスクは自動的に保護されます。
157
+ - 一括アーカイブ、復元、削除は進捗と成功・スキップ・失敗件数を表示します。一部が失敗しても全体の処理は停止せず、失敗項目のみを再試行できます。
158
+ - **アーカイブの取り消し(Undo)** は、現在のバッチでアーカイブされたセッション(再試行成功分を含む)を復元します。この操作は現在の管理ページを開いている間のみ有効で、更新や終了を行うとクリアされます。完全削除は取り消せません。
159
+
160
+ ### アーカイブされた会話の閲覧と継続
161
+
162
+ ネイティブな会話ナビゲーションにより、アーカイブ状態を維持したまま過去のログを閲覧・継続できます:
163
+
164
+ - **セッションタイトルをクリック**:ネイティブ DSH 会話を開き、メッセージ、添付ファイル、ツール実行詳細を確認。アーカイブ状態を保ったままチャットを継続できます。
165
+ - **詳細 → 復元して開く**:セッションのアーカイブを解除し、アクティブなワークスペースで作業を再開します。
166
+
167
+ ## 検索 API の互換性(インテグレーター向け)
168
+
169
+ 正式な API は `workspaceRegistry.searchSessionContent({ sessionIds, query })` であり、アーカイブ済みと未アーカイブの両方のセッションを網羅します。1〜20 件のセッション ID と 1〜200 文字の空でないクエリを指定します。重複する ID は自動的に除外されます。戻り値の形式は `{ items: [{ sessionId, seq, snippet }], failures: [{ sessionId, message }] }` です。個別の読み取り失敗は `failures` に記録され、不正な入力はリクエスト自体が拒否されます。
170
+
171
+ `searchArchivedContent` は従来のアーカイブ専用レガシーエントリとして引き続き利用可能です。いずれも既存のホスト Typert 接続と認証境界を使用し、追加の HTTP エンドポイントや認証設定は不要です。
172
+
173
+ ## 更新
174
+
175
+ アクティブな DSH プロファイルで上記のインストールコマンドを再実行するだけで更新が完了します。企業のセキュリティポリシーなどで更新を制限したい環境では、Cordis 設定を介してアップデータを無効化できます。
176
+
177
+ ## よくある質問
178
+
179
+ ### 旧バージョンからアップグレードした後、過去のキャッシュはどうなりますか?
180
+
181
+ 本プラグインは公式の投影キャッシュテーブルを置き換えることはなく、古いプラグインキャッシュのスキャンや移行も行いません。アーカイブリストを開いても完全なログを読み直したり、欠落したキャッシュを補填するために公式投影を書き戻したりすることはありません。セッションログはホストが管理し、ホストが必要に応じてタイトルなどの派生投影をオンデマンドで再構築します。
182
+
183
+ **公式キャッシュが存在しないコールドセッションは、リスト上で一時的にタイトルが表示されない場合がありますが、リストの再読み込みだけで再構築されるとは限りません。** ログを開くことでタイトルが復元され、セッションをアクティブとして復元することでネイティブな書き込みパスを通じてキャッシュが保存されます。過去の古いプラグインキャッシュファイルはそのまま保持され、自動的に読み込まれたり削除されたりすることはありません。詳細は [更新履歴](CHANGELOG.md) をご確認ください。
184
+
185
+ ### インストールしたのにエントリが表示されません
186
+ DSH Web を再起動し、ブラウザをスーパーリロード(`Ctrl+Shift+R`)してください。使用中のプロファイルに正しくインストールされたかご確認ください。
187
+
188
+ ### アーカイブと削除の違いは何ですか?
189
+ アーカイブは後から復元できるように一時的に会話を片付ける操作です。**完全削除は取り消すことができず**、セッションログや添付ファイルも物理的に削除されます。削除時は確認ダイアログが表示されます。
190
+
191
+ ### Codex UI と併用できますか?
192
+ はい。[Codex UI](https://github.com/MichengAI/dsh-codex-ui) の外観とサイドバー操作を維持したまま、**設定 → アーカイブセッション** からスムーズに利用できます。
193
+
194
+ ### 他のアーカイブプラグインとの共存について
195
+ 本プラグインは設定セクション ID `archive-manager` を使用して登録されます。他のセッションアーカイブプラグインがインストールされていても独立して共存・動作します。
196
+
197
+ ## ソースコードからのインストール
198
+
199
+ <details>
200
+ <summary>未リリースの改修や開発検証を行う場合は展開してください</summary>
201
+
202
+ 任意のディレクトリで以下のコマンドを実行します:
203
+
204
+ ```powershell
205
+ [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
206
+ $OutputEncoding = [System.Text.Encoding]::UTF8
207
+
208
+ git clone https://github.com/MichengAI/dsh-archive-manager.git
209
+ Set-Location .\dsh-archive-manager
210
+ pnpm install --frozen-lockfile
211
+ pnpm build
212
+ dsh plugin --profile web add .
213
+ ```
214
+
215
+ インストール後、DSH Web を再起動し、ブラウザをリフレッシュしてください。ソースコードは [src](src) 配下にあり、TypeScript Strict モードで管理されています。GitHub と npm の双方にビルド済みの `lib` が含まれています。
216
+
217
+ </details>
218
+
219
+ ## DSH 製品エコシステム
220
+
221
+ デスクトップ作業環境には [DSH Codex Desktop](https://github.com/MichengAI/dsh-codex-desktop/releases) をご利用ください。既存の [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) 環境には、各プラグインの README に従って個別に追加できます:
222
+
223
+ | プラグイン | 主な機能 |
224
+ | --- | --- |
225
+ | [Codex UI](https://github.com/MichengAI/dsh-codex-ui) | プロジェクトと会話の整理、タスク検索、メッセージナビゲーション |
226
+ | [Agency Agents](https://github.com/MichengAI/dsh-agency-agents) | 各種専門家エージェントの選択と召喚 |
227
+ | [Skills Manager](https://github.com/MichengAI/dsh-skills-manager) | ローカルスキルの検索、有効化、作成、インポート |
228
+ | [Archive Manager](https://github.com/MichengAI/dsh-archive-manager) | アーカイブされた会話の検索、復元、物理クリーンアップ |
229
+ | [IM Connect](https://github.com/MichengAI/dsh-im-connect) | 各種メッセージングアプリを介したタスクの送信と受信 |
230
+ | [Automation](https://github.com/MichengAI/dsh-automation) | 定期タスクのスケジュール管理と実行結果の確認 |
231
+ | [BTW](https://github.com/MichengAI/dsh-btw) | メインタスクを中断せずに横から質問できるサイドチャット |
232
+ | [Simplify](https://github.com/MichengAI/dsh-simplify) | `/simplify` で Git の変更内容に基づきコードをリファクタリング |
233
+ | [PUA](https://github.com/MichengAI/dsh-pua) | エージェントに失敗原因の調査と完了前検証を促す |
234
+ | [Code Review](https://github.com/MichengAI/dsh-code-review) | `/review` で独立したコードレビューを依頼し、現在のチャットでレポートを受信 |
235
+ | [Codex Pet](https://github.com/MichengAI/dsh-codex-pet) | デスクトップペットを通じて会話通知を確認し、ツールの承認や質問に応答 |
236
+
237
+ ## ライセンス
238
+
239
+ [Apache License 2.0](LICENSE) の下で提供されています。