21 点
A 🃏 entry in the sidebar footer opens the 21 table in the right details column. - The table, dealer-mood badge, lifetime record, a chatter feed (dealer banter plus a staggered card-flip draw animation), and an emoji quick-bar.
이것은 DeepSeek Harness(DSH) 플러그인입니다. 이 사이트는 GitHub README, 설치 정보, 유지보수 상태, 공개 보안 시그널을 모아 보여줍니다.
업스트림에서 중국어 README를 제공하지 않아 저장소 원본 내용을 표시합니다.
dsh-blackjack
DeepSeek-dealt 21 点 (Blackjack) for the DeepSeek Harness. The DeepSeek model plays dealer — it deals, decides, and trash-talks as one of two selectable personas — while every round is event-sourced into the session log, so hands replay and fork identically. One package ships both the host game service and the browser sidebar UI (a dual-face bundle), installed in a single dsh plugin add.
English · 中文
Install status
- ✅ Complete GitHub install (verified against
dsh web): one package = host service + browser UI. The plugin declares bothdsh.bundle(the host plugin row) anddsh.client(the web frontend entry); once installed the host layer mounts and the client module system picks the UI up into the frontend boot graph automatically.- All dependencies are the published
@deepseek-ai/*npm packages (0.1.0-rc.6) — no sibling monorepo checkout, no unpublished internal packages.
Features
Host side
- Two dealer personas you pick per session (durable through
blackjack/personaevents):- 🐟 大肥鱼 / Big Fat Fish — a gluttonous, lazy deep-sea fish ("咕噜咕噜").
- 😼 雌小鬼 / Brat — a smug, cheeky brat who calls you "杂鱼".
- Model-dealt decisions: the dealer decides hit/stand through an auxiliary LLM call, one visible step at a time.
- Cross-round memory: the dealer's prompts carry the running score and the shared chatter history.
- Event sourcing:
blackjack/game-start|hit|stand|dealer-hit|settle|banter|emotion|personaare durable session events; the fold replays identically. - Graceful degrade: with the LLM route absent or failing, the dealer falls back to per-persona preset lines.
Browser UI
- A 🃏 entry in the sidebar footer opens the 21 table in the right details column.
- The table, dealer-mood badge, lifetime record, a chatter feed (dealer banter plus a staggered card-flip draw animation), and an emoji quick-bar.
- Talks to the host through a self-mounted
blackjackRemote namespace; the UI holds no game state of its own.
UI preview
The screenshots below come from verified dsh web sessions. The exact cards, dealer lines, and record counters vary with the session log, but they show the complete browser half: the sidebar entry, the table, the chatter feed, and the action bar.




Install (complete: host + UI)
The plugin is a dsh dual-face bundle (dsh.bundle → cordis.patch.yml + dsh.client → lib/client.js):
dsh plugin --profile <name> add github:<owner>/dsh-blackjack
A git install fetches sources, so the first add needs the self-contained prepare build allowed once — copy the pnpm key into the profile's pnpm-workspace.yaml under allowBuilds (see the official publishing guide) and re-run add. Only allow sources you trust.
Verify and boot:
dsh --profile <name> --dump-config # shows the "# == dsh-blackjack" layer
dsh --profile <name> # web surface: dsh web / dsh --profile <name> web
After restarting dsh web, a 🃏 entry in the sidebar footer means the UI is live: the host layer shows in --dump-config, and the client module system automatically scans the dsh.client declaration and weaves the UI into the frontend boot graph (__DSH_BOOT__) — no extra configuration.
Configuration (override in your profile's cordis.patch.yml):
- id: blackjack
config:
dealerPersona: 雌小鬼 # initial persona; the durable pick is per-session
randomBanterChance: 0.3 # unsolicited taunt probability after a hit
Gameplay
Standard Blackjack over one deterministic 52-card deck (seed stored in the game-start event): Aces 11/1, face cards 10, hit/stand, dealer draws to ≥17. Busts lose immediately; equal totals push.
Repo layout
dsh-blackjack/
├── cordis.patch.yml # bundle patch: mounts the `blackjack` host row
├── src/
│ ├── game/ # pure rules engine (zero deps), bundled inline
│ ├── service/ # host plugin: @Remote verbs, fold, LLM dealer, banter
│ ├── client/ # browser half: React 21 table (BlackjackPanel et al.)
│ ├── css-modules.d.ts # CSS Modules type declarations
│ └── typert.remote-client.ts # `blackjack` Remote types + runtime contribution (self-mounted)
├── tests/ # host unit tests (92)
├── tests-client/ # browser-half tests (44, jsdom + __ModuleLoader__ stub)
├── tsdown.config.ts # host build: tsc (native decorators) → bundle → types
├── tsdown.client.config.ts # browser-half build: closure-factory client bundle
├── tsdown.client.ts # official client build preset (from the dsh base, CSS Modules inline)
├── web-platform.ts # platform module table (shell-shared module list)
└── package.json # dsh.bundle + dsh.client dual-face manifest + self-contained prepare build
Dev: pnpm install, pnpm run build, pnpm test (136 tests: 92 host + 44 UI). All @deepseek-ai/* deps are the published packages — no sibling monorepo checkout needed.
License
Tag this repository with the dsh-plugin topic so dsh users can find it.
보안 및 설치 증거
이 점수는 공개 저장소 메타데이터와 이 사이트에 등록된 설치 증거에만 기반하며, 코드 보안 감사와 다릅니다.
공개 플러그인 카탈로그에서 왔으며, 공개 GitHub 저장소로 연결됩니다.
저장소가 MIT 라이선스를 선언했습니다.
최근 180일 내 코드 업데이트가 있습니다.
재현 가능한 정확한 설치 메타데이터가 아직 등록되지 않았습니다. 저장소 설명에 따라 직접 확인하세요.
검사한 패키지 메타데이터에 설치 라이프사이클 스크립트가 선언되지 않았습니다.