ЁЯЫбя╕П dsh-defend

September 6, 2026 ┬╖ View on GitHub

ЁЯЫбя╕П dsh-defend

  • 1024 рд╕реНрдЯреЛрд░ рдЪреИрдирд▓: рдПрдХ рдмрд╛рд░ npm i -g dsh1024, рдлрд┐рд░ dsh1024 plugin --profile web add dsh-defend (deepseek1024.com рдЗрдВрд╕реНрдЯреЙрд▓ рд░реИрдВрдХрд┐рдВрдЧ рдореЗрдВ рдЧрд┐рдирд╛ рдЬрд╛рддрд╛ рд╣реИ)ред

DeepSeek Harness рдХреЗ рд▓рд┐рдП рдкреНрд░реЙрдореНрдкреНрдЯ-рдЗрдВрдЬреЗрдХреНрд╢рди, рдЬреЗрд▓рдмреНрд░реЗрдХ рдФрд░ рд╕реАрдХреНрд░реЗрдЯ-рд▓реАрдХ рд╕реБрд░рдХреНрд╖рд╛ред

рдирд┐рдпрдо рдЬреНрдЮрд╛рдд рдХреЛ рддрдп рдХрд░рддреЗ рд╣реИрдВред рдмрд╛рдХреА рдХреЛ рдЗрдВрдЯрд░рд╕реЗрдкреНрд╢рди рддрдп рдХрд░рддрд╛ рд╣реИ тАФ рдФрд░ рд╕рдм рдХреБрдЫ рдСрдбрд┐рдЯреЗрдб рд░рд╣рддрд╛ рд╣реИред

License DSH plugin Node CI Version npm version npm downloads

English ┬╖ чоАф╜Уф╕нцЦЗ ┬╖ Espa├▒ol ┬╖ Portugu├кs ┬╖ рд╣рд┐рдиреНрджреА


рд╕рдВрдЧрддрддрд╛

рд╕рддрд╣рд╕реНрдерд┐рддрд┐
HarnessDeepSeek Harness 0.1.2-rc.1 (peer рд░реЗрдВрдЬ >=0.1.2-rc.1 <0.2.0; 2026-09-02 рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд): рд╕рддреНрд░ рд▓рд┐рдлрд╝рд╛рдлрд╝рд╛ рдЕрдкрдирд╛ ignorable рдлрд╝реАрд▓реНрдб рдХреЗрд╡рд▓ рд╕рдВрдЧреНрд░рд╣реАрдд-рд▓реЙрдЧ рдкрдарди рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рд░рдЦрддрд╛ рд╣реИ - Session.append рдЕрднреА рднреА рдЗрд╕реЗ рд╕реНрдЯреИрдореНрдк рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдЗрд╕рд▓рд┐рдП рдЧреЗрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реИред
Node^22.19.0 || >=24.0.0
рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдорд╕рднреА (рдХреЗрд╡рд▓ host; рдХреЛрдИ рдиреЗрдЯрд┐рд╡ рдХреЛрдб рдирд╣реАрдВ, рдХреЛрдИ рдиреЗрдЯрд╡рд░реНрдХ рдирд╣реАрдВ)
рдореЙрдбрд▓рдХреЛрдИ рднреА (рдкрд╣рдЪрд╛рди рдореЙрдбрд▓ рддрдХ рд╕рд╛рдордЧреНрд░реА рдкрд╣реБрдБрдЪрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣реЛрддреА рд╣реИ)

рдЖрдкрдХреЛ рдХреНрдпрд╛ рдорд┐рд▓рддрд╛ рд╣реИ

dsh-defend рдПрдЬреЗрдВрдЯ рдХреЗ рд╕рд╛рдордиреЗ рджреЛ рд╕реНрд╡рддрдВрддреНрд░ рдкрд░рддреЗрдВ рд░рдЦрддрд╛ рд╣реИ:

  1. рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА-рдбрд┐рд▓реАрдЯ рдЧрд╛рд░реНрдб тАФ 8┬╖14/8┬╖16 рдкреЛрд╕реНрдЯрдореЙрд░реНрдЯрдо рд╕рдмрдХ рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рд░реВрдкред tools/pre-execute рдкрд░, рдкреБрдирд░рд╛рд╡рд░реНрддреА рд░реВрдк рд╕реЗ рд╣рдЯрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╢реЗрд▓ рдХрдорд╛рдВрдб рддрдм рддрдХ рдЕрд╕реНрд╡реАрдХрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВ рдЬрдм рддрдХ рд╣рд░ рд▓рдХреНрд╖реНрдп рд╕рддреНрд░ рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ рдХреЗ рднреАрддрд░ рдПрдХ рд╕реНрдкрд╖реНрдЯ рдирд┐рд░рдкреЗрдХреНрд╖ рдкрде рди рд╣реЛ рдФрд░ рд╕рдВрд░рдХреНрд╖рд┐рдд рдЙрдкрд╕рд░реНрдЧреЛрдВ (рд╣реЛрдо рдХреЙрдиреНрдлрд╝рд┐рдЧ, .dsh/.claude, рд╕рд┐рд╕реНрдЯрдо рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБ) рд╕реЗ рдмрд╛рд╣рд░ рди рд╣реЛред dry-run рдЪрд┐рд╣реНрди (-WhatIf, --dry-run, git clean -n) рдкрд╛рд╕ рд╣реЛрддреЗ рд╣реИрдВ тАФ рд╡реЗ рдареАрдХ рд╡рд╣реА рдЬрд╛рдБрдЪ рд╣реИрдВ рдЬреЛ рд╕рдмрдХ рдорд╛рдБрдЧрддрд╛ рд╣реИред
  2. рдкрд╣рдЪрд╛рди рдкрд░рдд тАФ рдЪрд╛рд░ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдкрд░рд┐рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рд╕реЗ рдкреЛрд░реНрдЯреЗрдб (рд╕рднреА Apache-2.0, рджреЗрдЦреЗрдВ THIRD_PARTY_NOTICES.md): 25 Prompt-Injection-Payloads рдирд┐рдпрдо, рд╢реБрджреНрдз-TypeScript Aho-Corasick рдСрдЯреЛрдореЗрдЯрди рдкрд░ 25 Jailbreak-Detector рдкреИрдЯрд░реНрди, Secret-Key-Leaker-Detect рд╡ рдЬрд╛рд░реАрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕рдВрджрд░реНрднреЛрдВ рд╕реЗ 12 рд╕реАрдХреНрд░реЗрдЯ рд╡реНрдпрд╛рдХрд░рдг, рдФрд░ Prompt-Attack-Dataset рдХреЛ рд░рд┐рдЧреНрд░реЗрд╢рди рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╕ рдХрд╛ рддрд╕ рд░рдЦрд╛ рдЧрдпрд╛ред

рддреАрди рдЗрдВрдЯрд░рд╕реЗрдкреНрд╢рди рдмрд┐рдВрджреБ, рдПрдХ рдирд┐рд░реНрдгрдп рдореЙрдбрд▓:

рдмрд┐рдВрджреБрд╕реНрдХреИрди рдХреА рдЧрдИ рд╕рд╛рдордЧреНрд░реАрдирд┐рд░реНрдгрдп
agent/pre-stepрдЖрд╡рдХ рд╕рдВрджреЗрд╢allow тЖТ next(); ask тЖТ рд╕реНрд╡реАрдХреГрддрд┐; block тЖТ рдЪрд░рдг рдЕрд╕реНрд╡реАрдХрд╛рд░
tools/pre-executeрдЯреВрд▓ рддрд░реНрдХallow тЖТ next(); ask тЖТ рд╕реНрд╡реАрдХреГрддрд┐; block тЖТ deny
tools/post-executeрдЯреВрд▓ рдкрд░рд┐рдгрд╛рдоallow тЖТ next(); ask тЖТ рд╕реНрд╡реАрдХреГрддрд┐; block тЖТ рд╕реБрдзрд╛рд░рд╛рддреНрдордХ рдлрд╝реАрдбрдмреИрдХ

рдбрд┐рдлрд╝реЙрд▓реНрдЯ: рд╣рд░ рдкрд░рд┐рд╡рд╛рд░ рдХреЗ рд▓рд┐рдП ask, critical рд╕реАрдХреНрд░реЗрдЯ рдХреЗ рд▓рд┐рдП block (рдЕрдкрд╕реНрдЯреНрд░реАрдо рдХреА рддреБрд░рдВрдд-рдмрд╛рдзрд┐рдд рд╢реИрд▓реА)ред рдХреЛрдИ рд╕реНрд╡реАрдХреГрддрд┐ рдЙрддреНрддрд░рджрд╛рддрд╛ рдирд╣реАрдВ = fail closedред рд╣рд░ рдкрд╛рд╕-рдереНрд░реВ next() рдмреБрд▓рд╛рддрд╛ рд╣реИ тАФ рдбрд╛рдЙрдирд╕реНрдЯреНрд░реАрдо рдиреАрддрд┐ рдкреНрд▓рдЧрдЗрди рдХрднреА рд╢реЙрд░реНрдЯ-рд╕рд░реНрдХрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддреЗред

рддреНрд╡рд░рд┐рдд рд╢реБрд░реБрдЖрдд

# 1. рдмрдВрдбрд▓ рдХреЛ рдЕрдкрдиреЗ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ
dsh plugin --profile web add "github:PerryLink/dsh-defend#main"

# рдпрд╛ npm рд╕реЗ (рдкреНрд░рдХрд╛рд╢рд┐рдд рд░рд┐рд▓реАрдЬрд╝)
dsh plugin --profile web add dsh-defend

# 2. рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░реЗрдВ рдФрд░ рдкрдВрдХреНрддрд┐ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ
dsh --profile web --dump-config | grep -A3 'id: dsh-defend'

рдЗрдВрд╕реНрдЯреЙрд▓ рдФрд░ рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓

  • git рдЪреИрдирд▓ (рдирд╡реАрдирддрдо main): dsh plugin --profile web add "github:PerryLink/dsh-defend#main" тАФ prepare рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗрд╡рд▓ рдкреНрд░реЛрдбрдХреНрд╢рди рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рд╕реЗ рдмрд┐рд▓реНрдб рдХрд░рддреА рд╣реИред
  • npm рдЪреИрдирд▓ (рдкреНрд░рдХрд╛рд╢рд┐рдд рд░рд┐рд▓реАрдЬрд╝): dsh plugin --profile web add dsh-defendред
  • tarball рдЪреИрдирд▓: рдЗрд╕ рд░реЗрдкреЛ рдореЗрдВ pnpm pack, рдлрд┐рд░ dsh plugin --profile web add ./dsh-defend-<version>.tgzред
  • рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓: dsh plugin --profile web remove dsh-defend (рдпрд╛ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдкреИрдЪ рд╕реЗ рдкрдВрдХреНрддрд┐ рд╣рдЯрд╛рдПрдБ)ред

рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди

рд╕рднреА рд╕рдорд╛рдпреЛрдЬрди Schemastery Config рдлрд╝реАрд▓реНрдб рд╣реИрдВ (cordis.yml рд╕реЗ рдмрджрд▓реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ)ред id-рд▓рдХреНрд╖рд┐рдд рдУрд╡рд░рд░рд╛рдЗрдб рдкреВрд░реА рдкрдВрдХреНрддрд┐ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ тАФ рдЬрд╝рд░реВрд░рдд рдХреА рд╣рд░ рдХреБрдВрдЬреА рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреЗрдВред cordis.patch.yml рд╣рд░ рдХреБрдВрдЬреА рдХреЛ рдЗрдирд▓рд╛рдЗрди рд╕рдордЭрд╛рддрд╛ рд╣реИред

рдХреБрдВрдЬреАрдбрд┐рдлрд╝реЙрд▓реНрдЯрдЕрд░реНрде
enabledtrueрджреЛрдиреЛрдВ рдкрд░рддреЛрдВ рдХрд╛ рдореБрдЦреНрдп рд╕реНрд╡рд┐рдЪ
actiondenyрд╡рд┐рдирд╛рд╢рдХрд╛рд░реА-рдбрд┐рд▓реАрдЯ рдЧрд╛рд░реНрдб рдХреНрд░рд┐рдпрд╛ (deny / ask)
toolNames['bash','persistent-bash','terminal-bash']рд╡реЗ рдЯреВрд▓ рдирд╛рдо рдЬрд┐рдирдХреЗ рддрд░реНрдХ рдЧрд╛рд░реНрдб рд╕рдореАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ
detection.enabledtrueрдкрд╣рдЪрд╛рди рдкрд░рдд рд╕реНрд╡рд┐рдЪ
detection.maxScanChars10000рдкреНрд░рддрд┐ рдЗрдВрдЯрд░рд╕реЗрдкреНрд╢рди рд╕реНрдХреИрди рд╕реАрдорд╛ (рдХреЗрд╡рд▓ рд╢реАрд░реНрд╖)
detection.normalizeUnicodetrueрд╕реНрдХреИрди рд╕реЗ рдкрд╣рд▓реЗ рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ NFKC-рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдХрд░реЗрдВ (lookalike-Unicode рдмрд╛рдпрдкрд╛рд╕ рд░реЛрдХрддрд╛ рд╣реИ)
detection.secretMinEntropy3.0рд╕реАрдХреНрд░реЗрдЯ рд╣рд┐рдЯ рд╕реНрд╡реАрдХрд╛рд░рдиреЗ рд╣реЗрддреБ рдиреНрдпреВрдирддрдо Shannon рдПрдВрдЯреНрд░реЙрдкреА (bits/char); 0 рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ
detection.injectionActionaskрдЗрдВрдЬреЗрдХреНрд╢рди рдкрд░рд┐рд╡рд╛рд░: allow / ask / block
detection.jailbreakActionaskрдЬреЗрд▓рдмреНрд░реЗрдХ рдкрд░рд┐рд╡рд╛рд░: allow / ask / block
detection.secretActionaskрд╕реАрдХреНрд░реЗрдЯ рдкрд░рд┐рд╡рд╛рд░: allow / ask / block
detection.secretBlockCriticaltruecritical рд╕реАрдХреНрд░реЗрдЯ secretAction рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рд╣рдореЗрд╢рд╛ block
detection.audittruedefend/detection рд╕рддреНрд░ рдСрдбрд┐рдЯ рдЗрд╡реЗрдВрдЯ рд▓рд┐рдЦреЗрдВ
detection.allowUnmarkedAuditfalseрдРрд╕реЗ рд╣реЛрд╕реНрдЯ рдкрд░ рд╕рддреНрд░ рдСрдбрд┐рдЯ рд▓рд┐рдЦрдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВ рдЬрд┐рдирдХрд╛ Session.append ignorable рдорд╛рд░реНрдХрд░ рд╕реЗ рдкреБрд░рд╛рдирд╛ рд╣реИ (рдЕрдм рддрдХ рдХреА рд╕рднреА рдкреНрд░рдХрд╛рд╢рд┐рдд рд▓рд╛рдЗрдиреЗрдВ), рдЕрдкреНрд░рд╛рдкреНрдп рд╕рддреНрд░ рдХрд╛ рдЬреЛрдЦрд┐рдо рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реБрдП
detection.maxReportEntries200рдореЗрдореЛрд░реА рдореЗрдВ рд░рд┐рдВрдЧ-рдмрдлрд╝рд░ рд╕реАрдорд╛
registerCommandtrue/defend рдХрдорд╛рдВрдб рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВ
registerTooltruedefend_report рдЯреВрд▓ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВ

рдЯреВрд▓ рдФрд░ рд╕рддрд╣реЗрдВ

рд╕рддрд╣рдкреНрд░рдХрд╛рд░рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ
defend_reportрдЯреВрд▓рдпреЛрдЧ (рджрд░реНрдЬ/рдмреНрд▓реЙрдХ/рдкреВрдЫреЗ), рдкреНрд░рддрд┐-рдкрд░рд┐рд╡рд╛рд░ рдЧрд┐рдирддреА рдФрд░ рд╣рд╛рд▓ рдХреА 20 рдкрд╣рдЪрд╛рди тАФ рдХрднреА рдорд┐рд▓рд╛рди рдЯреЗрдХреНрд╕реНрдЯ рдирд╣реАрдВ
/defendрдХрдорд╛рдВрдбрд╡рд╣реА рд╕рд╛рд░рд╛рдВрд╢ рдЯреЗрдХреНрд╕реНрдЯ рд░реВрдк рдореЗрдВ
agent/pre-stepрд╢реНрд░реЛрддрд╛рдЖрд╡рдХ рд╕рдВрджреЗрд╢ рд╕реНрдХреИрди (enter/reject)
tools/pre-executeрд╢реНрд░реЛрддрд╛рддрд░реНрдХ рд╕реНрдХреИрди (deny/ask) + рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА-рдбрд┐рд▓реАрдЯ рдЧрд╛рд░реНрдб
tools/post-executeрд╢реНрд░реЛрддрд╛рдкрд░рд┐рдгрд╛рдо рд╕реНрдХреИрди (block рдлрд╝реАрдбрдмреИрдХ)

рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдФрд░ рдбреЗрдЯрд╛

  • рдЕрдиреБрдорддрд┐рдпрд╛рдБ: ask рдирд┐рд░реНрдгрдп рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕реНрд╡реАрдХреГрддрд┐ рд╕реАрдо рд╕реЗ рдЬрд╛рддреЗ рд╣реИрдВ; рдХреБрдЫ рднреА рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдпрд╛ рдмрд╛рдпрдкрд╛рд╕ рдирд╣реАрдВ рд╣реЛрддрд╛ред рдкреНрд▓рдЧрдЗрди рдЕрдкрдиреЗ рд╡рд░реНрдХрд╢реЙрдк рдореИрдирд┐рдлрд╝реЗрд╕реНрдЯ рдореЗрдВ session:append рд╡ network:none рдШреЛрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред
  • рдбреЗрдЯрд╛: рдбрд┐рд╕реНрдХ рдкрд░ рдХреБрдЫ рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛; рд░рд┐рдкреЛрд░реНрдЯ рд░рд┐рдВрдЧ-рдмрдлрд╝рд░ рдХреЗрд╡рд▓ рдореЗрдореЛрд░реА рдореЗрдВ рдФрд░ рд╕реАрдорд┐рдд рд╣реИред рдХреЛрдИ рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрд░реЛрдз рдирд╣реАрдВ, рдХреЛрдИ рд╕рдмрдкреНрд░реЛрд╕реЗрд╕ рдирд╣реАрдВред
  • рд╕рддреНрд░ рд▓реЙрдЧ: defend/detection рдЗрд╡реЗрдВрдЯ рдореЗрдВ рдирд┐рдпрдо id, рдкрд░рд┐рд╡рд╛рд░, рд╢реНрд░реЗрдгреА, рдЧрдВрднреАрд░рддрд╛, рд╕реАрдХреНрд░реЗрдЯ рдкреНрд░рдХрд╛рд░, рдирд┐рд░реНрдгрдп рд╡ рд╕реНрдХреИрди рддрдереНрдп рд╣реЛрддреЗ рд╣реИрдВ тАФ рдорд┐рд▓рд╛рди рдЯреЗрдХреНрд╕реНрдЯ рдХрднреА рд▓реЙрдЧ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдБрдЪрддрд╛, рдФрд░ рд╕реАрдХреНрд░реЗрдЯ рдкрд╣рдЪрд╛рди рдирд┐рд░реНрдорд╛рдг рд╕реЗ рд╣реА рдХреЗрд╡рд▓-рдкреНрд░рдХрд╛рд░ рд╣реЛрддреА рд╣реИред

рд╕реБрд░рдХреНрд╖рд╛ рд╕реАрдорд╛рдПрдБ

  • рдкрд╣рдЪрд╛рди, рдкреНрд░рд╡рд░реНрддрди рдирд╣реАрдВред рдЧрд╛рд░реНрдб рдФрд░ рдкрд╣рдЪрд╛рди рдкрд░рдд рдХреЗрд╡рд▓ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕реАрдо рдкрд░ deny/ask/block рдирд┐рд░реНрдгрдп рдмрдирд╛рддреА рд╣реИрдВ; рд╕реИрдВрдбрдмреЙрдХреНрд╕ рд╡ рд╕реНрд╡реАрдХреГрддрд┐ рдкреНрд░рдгрд╛рд▓рд┐рдпрд╛рдБ рд╣реА рдкреНрд░рд╡рд░реНрддрди рдкреНрд░рд╛рдзрд┐рдХрд╛рд░ рд╣реИрдВред
  • Fail closedред рд╕реНрд╡реАрдХреГрддрд┐ рдЙрддреНрддрд░рджрд╛рддрд╛, рд╕рддреНрд░ рдпрд╛ рд╕реЗрд╡рд╛ рд╕рддрд╣ рдХреЗ рдмрд┐рдирд╛, рд╕рдЦреНрддрддрдо рдирд┐рд░реНрдгрдп рдкрд░ рдЧрд┐рд░рддрд╛ рд╣реИ тАФ рдХрднреА рдореВрдХ рдкрд╛рд╕-рдереНрд░реВ рдирд╣реАрдВред
  • рдХреЛрдИ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдмрд╛рд╣рд░ рдирд╣реАрдВ рдЬрд╛рддреАред рд╕реНрдХреИрди рд╕реНрдерд╛рдиреАрдп рд╣реИ; рдСрдбрд┐рдЯ рдЗрд╡реЗрдВрдЯ рд╕реИрдирд┐рдЯрд╛рдЗрдЬрд╝реНрдб рд╣реИрдВ; рд╕реАрдХреНрд░реЗрдЯ рдХрднреА рд▓реЙрдЧ, рджрд┐рдЦрд╛рдП рдпрд╛ рд░рд┐рдкреЛрд░реНрдЯ рдирд╣реАрдВ рд╣реЛрддреЗред
  • рд╕реАрдорд┐рдд рдХрд╛рд░реНрдпред рд╕реНрдХреИрди рд╕реАрдорд╛рдПрдБ, рдкреНрд░рддрд┐ рдирд┐рдпрдо рдПрдХ рдкрд╣рдЪрд╛рди рд╡ рд░рд┐рдВрдЧ-рдмрдлрд╝рд░ рдХреЛрдЯрд╛ рд╢рддреНрд░реБрддрд╛рдкреВрд░реНрдг рдЗрдирдкреБрдЯ рдХреЛ рдЕрд╕реАрдорд┐рдд рд╕рдВрд╕рд╛рдзрди рдЦрд╛рдиреЗ рд╕реЗ рд░реЛрдХрддреЗ рд╣реИрдВред

рдЬреНрдЮрд╛рдд рд╕реАрдорд╛рдПрдБ

  • рдкрд╣рдЪрд╛рди рдЕрдВрддрд░рд╛рд▓ред рдирд┐рдпрдо рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреЛрд░реНрдЯреЗрдб рд╢рдмреНрджрд╛рд╡рд▓реА рд╡ рдЙрдирдХреЗ рд╕рд╣рд┐рд╖реНрдгреБ рд░реВрдкреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИ; рдирдИ рд╡рд╛рдХреНрдпрд░рдЪрдирд╛, lookalike-Unicode рдПрдиреНрдХреЛрдбрд┐рдВрдЧ (NFKC рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рднрд╛рд╡реА рдХрд╛рд░реНрдп рд╣реИ) рдФрд░ рдмрд╣реБ-рдЪрд░рдгреАрдп рд╣рдорд▓реЗ рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВред рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдорд╛рдкрд╛ рдЧрдпрд╛ рдЖрдзрд╛рд░ (рдЕрдкрд╕реНрдЯреНрд░реАрдо рдбреЗрдЯрд╛рд╕реЗрдЯ рдкрд░ 27/28) рдЯреЗрд╕реНрдЯ рдореЗрдВ рдХреАрд▓рд┐рдд рд╣реИ рддрд╛рдХрд┐ рд░рд┐рдЧреНрд░реЗрд╢рди рджрд┐рдЦреЗред
  • рдореЙрдбрд▓-рд╕реНрддрд░ рдХреЗ рдлрд╝реИрд╕рд▓реЗ рдирд╣реАрдВред dsh-defend рдирд┐рдпрддрд╛рддреНрдордХ рд╣реИ; рдХрднреА рдореЙрдбрд▓ рдирд╣реАрдВ рдмреБрд▓рд╛рддрд╛ рдФрд░ рдирдИ рдордВрд╢рд╛ рдирд╣реАрдВ рдЖрдБрдХ рд╕рдХрддрд╛ред
  • рд╕рдВрджреЗрд╢ рдЕрд╕реНрд╡реАрдХреГрддрд┐ рдореВрдХ рд╣реИред agent/pre-step рдХрд╛ reject рдореЙрдбрд▓ рдХреЛ рдХрд╛рд░рдг рдирд╣реАрдВ рджреЗрддрд╛ (рд╕реАрдо рдореЗрдВ рдХрд╛рд░рдг рдХреНрд╖реЗрддреНрд░ рдирд╣реАрдВ); рдСрдбрд┐рдЯ рдЗрд╡реЗрдВрдЯ рдирд┐рдпрдо рддрдереНрдп рджрд░реНрдЬ рдХрд░рддрд╛ рд╣реИред
  • рд╕рддреНрд░ рдСрдбрд┐рдЯ рдФрд░ ignorable рдорд╛рд░реНрдХрд░ред рдСрдбрд┐рдЯ рдРрдкреЗрдВрдб рдПрдирд╡рд▓рдк рдХреЗ ignorable: true рдорд╛рд░реНрдХрд░ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдХреЛрдИ рднреА рд╣рд╛рд░реНрдиреЗрд╕ рдмрд┐рд▓реНрдб рд▓реЙрдЧ рд▓реЛрдб рдХрд░ рд╕рдХреЗред рдЕрдм рддрдХ рдХреА рд╕рднреА рдкреНрд░рдХрд╛рд╢рд┐рдд рд▓рд╛рдЗрдиреЗрдВ (0.1.0-rc.1тАУ0.1.0-rc.8, 0.1.1-rc.1тАУ0.1.1-rc.2) рдЙрд╕реЗ рдЪреБрдкрдЪрд╛рдк рдЧрд┐рд░рд╛ рджреЗрддреА рд╣реИрдВ тАФ рдЗрд╡реЗрдВрдЯ рдмрд┐рдирд╛ рдорд╛рд░реНрдХ рдХреЗ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХрдбрд╝реЗ рдмрд┐рд▓реНрдб рдкрд░ рд╕рддреНрд░ рдЕрдкреНрд░рд╛рдкреНрдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ; рд╣реЛрд╕реНрдЯ 0.1.2-rc.1 рдПрдирд╡рд▓рдк рдлрд╝реАрд▓реНрдб рдХреЛ рдХреЗрд╡рд▓ рд╕рдВрдЧреНрд░рд╣реАрдд-рд▓реЙрдЧ рдкрдарди рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рд░рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди Session.append рдЕрдм рднреА рдЙрд╕реЗ рд╕реНрдЯреИрдореНрдк рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдФрд░ рд░реАрдб рдкрде рдмрд┐рдирд╛-рдорд╛рд░реНрдХ рд╡рд╛рд▓реЗ рдЕрдЬреНрдЮрд╛рдд рдШрдЯрдирд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ (defend/detection рдкрдВрдЬреАрдХреГрдд рдирд╣реАрдВ рд╣реИ), рдЗрд╕рд▓рд┐рдП рд╡рд╣рд╛рдБ рд▓рд┐рдЦрдирд╛ рднреА рд╕рддреНрд░ рдХреЛ рд▓реЛрдб-рдЕрдпреЛрдЧреНрдп рдмрдирд╛ рджреЗрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП dsh-defend рдРрд╕реЗ рд╣реЛрд╕реНрдЯ рдХреЛ рдкрд╣рд▓реЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИ (рдкреАрдпрд░-рд╕рдВрд╕реНрдХрд░рдг рдкреВрд░реНрд╡-рдЬрд╛рдВрдЪ + рд▓реМрдЯрд╛рдП рдЧрдП рдПрдирд╡рд▓рдк рдХреА рдЬрд╛рдВрдЪ) рдФрд░ рдПрдХ рдмрд╛рд░ рдХреА рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рд╕рд╛рде рд╕рддреНрд░-рд▓реЙрдЧ рдСрдбрд┐рдЯ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред detection.allowUnmarkedAudit: true рд╕реЗрдЯ рдХрд░рдХреЗ рджреЛрдмрд╛рд░рд╛ рдЪрд╛рд▓реВ рдХрд░реЗрдВ; рдореМрдЬреВрджрд╛ рдмрд┐рдирд╛-рдорд╛рд░реНрдХ defend/detection рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдПрдирд╡рд▓рдк рдореЗрдВ "ignorable": true рдЬреЛрдбрд╝рдХрд░ рдорд░рдореНрдордд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рджреЗрдЦреЗрдВ issue #2ред

рд╡рд┐рдХрд╛рд╕

pnpm install        # node ^22.19 || >=24
pnpm run typecheck  # tsc: src + tests рд╕реНрдерд╛рдиреАрдп рд╣рд╛рд░реНрдиреЗрд╕ рдЪреЗрдХрдЖрдЙрдЯ рдХреЗ рд╡рд┐рд░реБрджреНрдз
pnpm run typecheck:ci  # tsc рдкреНрд░рдХрд╛рд╢рд┐рдд 0.1.2-rc.1 рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╡рд┐рд░реБрджреНрдз (рдмрд┐рдирд╛ paths)
pnpm test           # vitest: 75 рдЯреЗрд╕реНрдЯ, 8 рд╕реБрдЗрдЯ (рдкрд╣рдЪрд╛рди рдмреЗрдВрдЪрдорд╛рд░реНрдХ рд╕рд╣рд┐рдд)
pnpm run build      # tsdown рдмрдВрдбрд▓ + tsc рдШреЛрд╖рдгрд╛рдПрдБ (lib/)
pnpm run verify:self-contained  # рдирд┐рд░реНрднрд░рддрд╛ рд╕реНрдкреЗрдХ registry рд╕реЗ рд╣рд▓ рд╣реЛрддреА рд╣реИрдВ
pnpm run verify:artifacts       # рдирд┐рд░реНрдорд┐рдд ESM рдлрд╝реЗрд╕ + рдкреНрд░рдХрд╛рд╢рд┐рдд рдлрд╝рд╛рдЗрд▓реЗрдВ рдореМрдЬреВрдж
pnpm pack           # рдкреНрд░рдХрд╛рд╢рд┐рдд tarball

Benchmark

рд░реЗрдб-рдЯреАрдо рдмреЗрдВрдЪрдорд╛рд░реНрдХ (105 рдирдореВрдиреЛрдВ рдкрд░ рдкреНрд░рддрд┐-рд╢реНрд░реЗрдгреА P/R/F1 + 27/28 fixture рдлрд╝реНрд▓реЛрд░) benchmark/RESULTS.md рдореЗрдВ рд╣реИ; node --experimental-strip-types benchmark/run.mjs рд╕реЗ рджреЛрдмрд╛рд░рд╛ рдмрдирд╛рдПрдБ (рдХреЛрдИ рдирдИ рдирд┐рд░реНрднрд░рддрд╛ рдирд╣реАрдВ, рдХреЛрдИ build рдирд╣реАрдВ)ред

Topics

dsh, dsh-plugin, deepseek-harness, deepseek, cordis, security, prompt-injection, jailbreak, secret-scanning, ai-safety

Contributors

  • @PerryLink тАФ рдирд┐рд░реНрдорд╛рддрд╛ рдФрд░ рдореЗрдВрдЯреЗрдирд░: рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА-рдбрд┐рд▓реАрдЯ рдЧрд╛рд░реНрдб, рдЪрд╛рд░-рдкрд░рд┐рд╕рдВрдкрддреНрддрд┐ рдкрд╣рдЪрд╛рди рдкреЛрд░реНрдЯ, рдЗрдВрдЯрд░рд╕реЗрдкреНрд╢рди рд╡рд╛рдпрд░рд┐рдВрдЧ, рдСрдбрд┐рдЯ рд╕рддрд╣ рдФрд░ рдкрд╛рдБрдЪ-рднрд╛рд╖рд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ред
  • @cuohua тАФ рдмрд┐рдирд╛ рдорд╛рд░реНрдХ рдХреЗ рд▓рд┐рдЦреЗ рдЧрдП defend/detection рдЗрд╡реЗрдВрдЯ рд╕реЗ рдХрдбрд╝реЗ рдмрд┐рд▓реНрдб рдкрд░ рд╕рддреНрд░ рдЕрдкреНрд░рд╛рдкреНрдп рд╣реЛрдиреЗ рдХреА рд╕рдЯреАрдХ рд░рд┐рдкреЛрд░реНрдЯ (#2); runtime рд╣реЛрд╕реНрдЯ-рдХреНрд╖рдорддрд╛ рдкрд╣рдЪрд╛рди рдФрд░ ignorable рдорд╛рд░реНрдХрд░ рдЕрдиреБрд╢рд╛рд╕рди рд╕реАрдзреЗ рдЙрд╕реА рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕реЗ рдирд┐рдХрд▓реЗ рд╣реИрдВред

рдпрд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ PerryLink рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд░рдХреНрд╖рд┐рдд 33 DeepSeek Harness рдкреНрд▓рдЧрдЗрдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдЕрдЧрд░ рдпрд╣ рдЖрдкрдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИ, рддреЛ рдмрд╛рдХреА рднреА рдХрд░реЗрдВрдЧреЗ:

PluginOne-liner
dsh-dsh-auto-reviewрдЕрдиреБрдореЛрджрди рд╢реНрд░реГрдВрдЦрд▓рд╛ рдкрд░ рджреНрд╡рд┐рддреАрдп-рдореЙрдбрд▓ рд╕реНрд╡рддрдГ-рд╕рдореАрдХреНрд╖рд╛, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╡рд┐рдлрд▓-рдмрдВрдж
dsh-dsh-background-agentsрд╡реЗрдм UI рд╕рд╛рдЗрдбрдмрд╛рд░, рд╕рдВрджреЗрд╢ рдФрд░ рдЕрд╡рд░реЛрдзрди рдХреЗ рд╕рд╛рде рдЯрд┐рдХрд╛рдК рдкреГрд╖реНрдарднреВрдорд┐ рдЪрд╛рдЗрд▓реНрдб рдПрдЬреЗрдВрдЯ
dsh-dsh-budgetDeepSeek Harness рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧрдд рдкреНрд░рд╢рд╛рд╕рди: рдмрдЬрдЯ, рдХрд╛рд░реНрдмрди рдФрд░ рд╡рд┐рд▓рдВрдмрддрд╛ рдПрдХ рдкреИрдирд▓ рдореЗрдВред
dsh-dsh-checkpoint-rewindClaude Code /rewind-рд╕рдорддреБрд▓реНрдп: рд╕реНрдиреИрдкрд╢реЙрдЯ, рд╕рддреНрд░ рдлрд╝реЙрд░реНрдХ, рдПрдХ-рдмрд╛рд░ рдкреБрдирд░реНрд╕реНрдерд╛рдкрдирд╛
dsh-dsh-claude-moveClaude Code рд╕рддреНрд░, рдореЗрдореЛрд░реА, рдХреМрд╢рд▓ рдФрд░ CLAUDE.md рдХреЛ DSH рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ
dsh-dsh-clickDeepSeek Harness рдХреЗ рд▓рд┐рдП рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдиреЗрдЯрд┐рд╡ рдбреЗрд╕реНрдХрдЯреЙрдк рдирд┐рдпрдВрддреНрд░рдг тАФ Windows рдкрд╣рд▓реЗред
dsh-dsh-composer-historyрд╡реЗрдм рдХрдВрдкреЛрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП рдЯрд░реНрдорд┐рдирд▓-рд╢реИрд▓реА рдЗрдирдкреБрдЯ рдЗрддрд┐рд╣рд╛рд╕: рддреАрд░, Ctrl+R рдЦреЛрдЬ
dsh-dsh-data-qualityрдбреЗрдЯрд╛рд╕реЗрдЯ рдЧреБрдгрд╡рддреНрддрд╛ рдЬрд╛рдБрдЪ рд╡ рдЙрджреНрдзрд░рдг рд╕рддреНрдпрд╛рдкрди (рдпрд╣рд╛рдБ рдЙрдкрднреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕рдВрдЦреНрдпрд╛-рд╕реЗрддреБ)
dsh-dsh-doublecheckрдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ-рдЕрдиреБрд╢рд╛рд╕рди рд░рдХреНрд╖рдХ: рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреА рдкреВрдЫрддрд╛рдЫ, рдкрд░реАрдХреНрд╖рдг рджреНрд╡рд╛рд░, рдкреНрд░рддрд┐рджреНрд╡рдВрджреНрд╡реА рд╕рдореАрдХреНрд╖рд╛
dsh-dsh-drawDeepSeek Harness рдХреЗ рд▓рд┐рдП рдПрдХреАрдХреГрдд рд╕реНрдереИрддрд┐рдХ-рдЫрд╡рд┐ рдирд┐рд░реНрдорд╛рдг рд░реВрдЯрд┐рдВрдЧред
dsh-dsh-fastDeepSeek Harness рдХреЗ рд▓рд┐рдП рд░реАрдб-рдУрдирд▓реА рдкреНрд░рджрд░реНрд╢рди рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХреНрд╕ред
dsh-dsh-fund-researchрдЪреАрдиреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдореНрдпреВрдЪреБрдЕрд▓ рдлрдВрдб рдХреЗ рд▓рд┐рдП рдирд┐рдпрддрд╛рддреНрдордХ рдЕрдиреБрд╕рдВрдзрд╛рди рд░рд┐рдкреЛрд░реНрдЯ
dsh-dsh-githubDSH рдХреЗ рд▓рд┐рдП GitHub PR/issues рдПрдХреАрдХрд░рдг, рд╣рд░ рд▓реЗрдЦрди рдЕрдиреБрдореЛрджрди-рджреНрд╡рд╛рд░рд┐рдд
dsh-dsh-industry-researchрдЙрджреНрдпреЛрдЧ-рдЕрдиреБрд╕рдВрдзрд╛рди рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрд╢рди рдЬреЛ рдЗрд╕ рдкреНрд▓рдЧрд┐рди рдХреЗ ctx.researchReport.assemble рд╕реЗ рдбрд┐рд▓реАрд╡рд░реЗрдмрд▓ рд╕реАрд▓ рдХрд░рддрд╛ рд╣реИ
dsh-dsh-libraryDeepSeek Harness рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЬреНрдЮрд╛рдирдХреЛрд╢ред
dsh-dsh-local-aiDeepSeek Harness рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп-рдореЙрдбрд▓ (Ollama) рдПрдХреАрдХрд░рдгред
dsh-dsh-lsp-actionsрднрд╛рд╖рд╛ рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ LSP рдирд┐рджрд╛рди, рдлрд╝реЙрд░реНрдореЗрдЯрд┐рдВрдЧ, рдкреВрд░реНрдгрддрд╛, рдХреЛрдб рдХреНрд░рд┐рдпрд╛рдПрдБ рдФрд░ рдирд╛рдо рдмрджрд▓рдирд╛
dsh-dsh-maskPII рдорд╛рд╕реНрдХрд┐рдВрдЧ рдорд┐рдбрд▓рд╡реЗрдпрд░: рдореЙрдбрд▓ рд╕реАрдорд╛ рдкрд░ рдЕрдирд╛рдо рдХрд░реЗрдВ, рдбрд┐рд╕реНрдкреНрд▓реЗ рд▓реЗрдпрд░ рдкрд░ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
dsh-dsh-mcp-panelрдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рд╡рд╛рд▓рд╛ MCP рд░рдирдЯрд╛рдЗрдо рдкреИрдирд▓: /mcp рдХрдорд╛рдВрдб + рд╕реНрдерд┐рддрд┐, рдЯреВрд▓ рдФрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╡рд╛рд▓рд╛ Settings рдЯреИрдм
dsh-dsh-mementoрдЕрдиреБрдореЛрджрди-рджреНрд╡рд╛рд░рд┐рдд рдХреНрд░реЙрд╕-рд╕рддреНрд░ рдореЗрдореЛрд░реА: ctx.memory рд╕реАрдо + SQLite + рдореЗрдореЛрд░реА рдЯреВрд▓
dsh-dsh-observeDeepSeek Harness рдХреЗ рд▓рд┐рдП OpenTelemetry рдФрд░ Langfuse рдЕрд╡рд▓реЛрдХрдиреАрдпрддрд╛ рдирд┐рд░реНрдпрд╛рддрдХред
dsh-dsh-output-stylesClaude Code outputStyles-рд╕рдорддреБрд▓реНрдп рд░рдирдЯрд╛рдЗрдо рд╢реИрд▓реА рдмрджрд▓рд╛рд╡
dsh-dsh-permission-rulesрдСрдбрд┐рдЯ рдХреЗ рд╕рд╛рде Claude Code-рд╢реИрд▓реА рдШреЛрд╖рдгрд╛рддреНрдордХ allow/deny/ask рдЕрдиреБрдорддрд┐ рдирд┐рдпрдо
dsh-dsh-plugin-guideрдорд╛рдБрдЧ рдкрд░ рдПрдЬреЗрдВрдЯ рдХреМрд╢рд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд▓рдЧрдЗрди-рд╡рд┐рдХрд╛рд╕ рдЬреНрдЮрд╛рди рдЖрдзрд╛рд░
dsh-dsh-research-reportрд╕рд╛рдордЧреНрд░реА-рдкрддрд╛ рд╕рд╛рдХреНрд╖реНрдп рдФрд░ рд╕реАрд▓рдмрдВрдж рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рд╡рд╛рд▓рд╛ рд╕рддреНрдпрд╛рдкрди-рдпреЛрдЧреНрдп рдЕрдиреБрд╕рдВрдзрд╛рди-рд░рд┐рдкреЛрд░реНрдЯ рдЗрдВрдЬрди
dsh-dsh-scoreDeepSeek Harness рдкреНрд▓рдЧрд┐рдиреЛрдВ рдХреА рдмрд╣реБ-рдЖрдпрд╛рдореА рдЧреБрдгрд╡рддреНрддрд╛ рд╕реНрдХреЛрд░рд┐рдВрдЧред
dsh-dsh-session-pinрдЯрд┐рдХрд╛рдК рдХреНрд░рдо рдХреЗ рд╕рд╛рде рд╡реЗрдм рд╕рд╛рдЗрдбрдмрд╛рд░ рдореЗрдВ рд╕рддреНрд░ рдкрд┐рди рдХрд░реЗрдВ
dsh-dsh-session-syncDeepSeek Harness рдХреЗ рд▓рд┐рдП рдХреНрд░реЙрд╕-рдбрд┐рд╡рд╛рдЗрд╕ рд╕рддреНрд░ рд╕рд┐рдВрдХ тАФ рдЖрдкрдХреЗ рд╕рддреНрд░ рд╕реНрдЯреЛрд░ рдХрд╛ рдПрдХ рд╕рдорд░реНрдкрд┐рдд git рдорд┐рд░рд░ред
dsh-dsh-skill-pack-securityрд╕реБрд░рдХреНрд╖рд╛-рдСрдбрд┐рдЯ рдХреМрд╢рд▓ рдкреИрдХ: рдЧреБрдкреНрдд рд╕реНрдХреИрди, рдирд┐рд░реНрднрд░рддрд╛ рдФрд░ рдЖрдкреВрд░реНрддрд┐-рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╕рдореАрдХреНрд╖рд╛
dsh-dsh-talkDeepSeek Harness рдХреЗ рд▓рд┐рдП рдЖрд╡рд╛рдЬрд╝-рдкреНрд░рдердо рд╕рддреНрд░ рд▓реВрдк: рдмреЛрд▓реЗрдВ рдФрд░ рдЙрддреНрддрд░ рд╕реБрдиреЗрдВред
dsh-dsh-test-driveDeepSeek Harness рдкреНрд▓рдЧрд┐рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдкреГрдердХ рдЗрдВрд╕реНрдЯреЙрд▓-рдПрдВрдб-рд╕реНрдореЛрдХ рдЯреЗрд╕реНрдЯ рдбреНрд░рд╛рдЗрд╡ред
dsh-dsh-translateDeepSeek Harness рдХреЗ рд▓рд┐рдП рд╡реЗрдВрдбрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдЕрдиреБрд╡рд╛рдж рдФрд░ рдирд┐рдпрддрд╛рддреНрдордХ JSON рдорд░рдореНрдорддред

License

Apache License 2.0 ┬й 2026 dsh-defend contributors

DSH Desktop рдорд╛рд░реНрдХреЗрдЯ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ

рд╕рднреА PerryLink рдкреНрд▓рдЧрдЗрди DSH Desktop рдХреЗ рдмрд┐рд▓реНрдЯ-рдЗрди рдорд╛рд░реНрдХреЗрдЯ рдореЗрдВ рджреЗрдЦреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ: Market тЖТ Sources тЖТ add source тЖТ рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ https://perrylink-dsh-catalog.perrylink.workers.dev/catalog-source.json тЖТ рдЪреБрдиреЗрдВред рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдорд╛рд░реНрдХреЗрдЯ рдХреЗ npm-identity рд╕рддреНрдпрд╛рдкрди рдФрд░ рдЖрдкрдХреА рдкреБрд╖реНрдЯрд┐ рд╕реЗ рд╣реА рд╣реЛрддрд╛ рд╣реИред