dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
DeepSeek Harness (dsh) のための日本語ネイティブ TUI。
状態: Phase 0(走路骨格)完了。描画は未着手。 自作バンドルが DSH の Cordis 木に載り、自前の入口(C)から起動し、C が壊れれば
dsh --profile子プロセス(B)へフォールバックし、session/eventの生イベントを捕捉できる。 検証はnode scripts/verify-bundle.mjs(12検査)。
dsh の TUI サーフェスを、日本語を第一級に扱う形で自作する。 既存の dsh-TUI を参考にしつつ、 コードは共有せず、描画層から自分で設計する。
| # | 目的 | 設計要求 |
|---|---|---|
| P1 | 見た目を自分で設計できる | 描画層を自前で握る。装飾演出を既定で入れない |
| P2 | 日本語ネイティブ | 文言を最初からカタログ化。日本語を言語パックに追い出さない |
| P3 | 上流更新で崩れにくい | 依存する上流の非公開契約を最小化し、その数を常時計測する |
| P4 | UX 研究の土台 | UI 層とハーネス層を分離し、UI の反復試行を安くする |
| P5 | 将来ハーネスごと差し替える(思想として保持) | ハーネス境界を1箇所に閉じ込める |
| P6 | ハーネスチューニング研究 | ハーネスの挙動を外から差し替え可能に保つ |
dsh.bundle.patch)。承認・ユーザー質問・モデル切替を
人対話で行うには、これ以外の経路が存在しない(公式 SDK / ACP には承認チャネルが無い)dsh --profile 子プロセスへフォールバックする26d2c3f8)を fork し、
src/ink/ に置いて自前で拡張する。Ink 本体はマウス選択・ヒットテスト・スクロール固定を持たないため、
これらは自作する作業を引き継ぐ場合は
docs/HANDOFF.mdを先に読んでください。 今の状態・動かし方・アーキテクチャ・DSH の API で実測した落とし穴・既知の穴・次の課題が そこに集約されています。
| 文書 | 内容 |
|---|---|
docs/design/0001-architecture-and-roadmap.md | 設計書とロードマップ(決定ログ D1〜D9、Phase -1〜5、リスク R1〜R8) |
docs/reports/2026-10-18-phase0-walking-skeleton.md | Phase 0 完了レポート(達成項目・設計を変えた発見・やっていないこと) |
docs/research/2026-10-18-dsh-bundle-authoring.md | バンドル/Cordis プラグインの書き方(公式実物からの抽出) |
docs/research/2026-10-18-dsh-headless-recipe.md | 公式 dsh-headless から抽出したエージェント駆動手順 |
docs/research/2026-10-18-sandbox-and-dsh-home.md | 実行環境の制約と DSH_HOME 差し替えによる検証方法 |
docs/research/2026-10-18-dsh-integration-surfaces.md | DSH の統合面・バンドル契約・SDK プロトコル・Ink 反証 |
docs/research/2026-10-18-dsh-core-public-surface.md | DSH 本体の公開インターフェース |
docs/research/2026-10-18-dsh-tui-seam.md | 参考実装が DSH とどう接続しているか |
docs/research/2026-10-18-dsh-tui-feature-inventory.md | 参考実装の機能・UX 棚卸し |
docs/research/2026-10-18-renderer-options.md | TypeScript TUI レンダラ基盤の比較 |
docs/research/2026-10-18-dsh-third-party-tui-web.md | DSH と第三者 TUI の外部情報 |
調査ノートには環境依存のローカル絶対パスをマスクしてある($HOME/<workspace>/...)。
pnpm install
pnpm build
node scripts/verify-bundle.mjs # 構造検査(A〜D)
COMMANDCODE_API_KEY=... node scripts/verify-bundle.mjs # 実モデル実行まで(E)
検証は $HOME/.dsh に一切書き込まない。DSH_HOME をワークスペース内の .dsh-home/ に向けて
プロファイルとバンドル解決を完結させる(理由)。
入口は lib/bin.js(dsh-forjp)。環境変数で挙動を切り替えられる:
| 変数 | 値 | 意味 |
|---|---|---|
FORJP_ENTRY | auto(既定) | C を試し、失敗したら B へフォールバック |
in-process | C のみ。失敗したら異常終了 | |
child | B を強制 | |
FORJP_PROFILE | 既定 forjp | プロファイル名 |
DSH_FORJP_HOST_PACKAGE | 未設定 | ホスト @deepseek-ai/dsh のパッケージディレクトリを明示 |
MIT(LICENSE)。
fork 元の Ink も MIT であり、src/ink/ に取り込む時点で
Ink のライセンス表示を同梱する。
pnpm install
pnpm build
pnpm profile:install # $DSH_HOME(既定 ~/.dsh)へプロファイルを設置
COMMANDCODE_API_KEY=... dsh --profile forjp-tui
Enter で送信、Ctrl+C または Esc 2回で終了pnpm test:uipnpm verify:host --host <dsh のパッケージディレクトリ>pnpm profile:install --home .dsh-home