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 구성.
    • 런타임에 필요한 선언된 입력(환경 변수).
  • 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 … 새 프리셋 버전으로 업그레이드합니다(diff 미리보기 포함).
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`

내부 작동 방식

  1. 캡처 – CLI는 ~/.dsh/profiles/<profile>(플러그인, 순서, cordis.patch.yml, 환경 변수 선언)을 읽고 모든 아티팩트에 콘텐츠 주소 지정 해시가 있는 Release 문서를 빌드합니다.
  2. 게시 – Release가 Hub API에 업로드되고 해시가 불변성을 보장합니다.
  3. 적용
    • --plan은 Release 해시, 현재 프로필의 사전 조건 해시, 만료 타임스탬프를 포함하는 JSON 계획을 생성합니다.
    • 사용자(또는 감독하는 인간)가 계획 ID를 승인합니다.
    • CLI는 임시 디렉터리에 새 플러그인을 스테이징하고 구조 검사와 dsh --dump-config를 실행하여 패치를 검증합니다.
    • 성공하면 스테이징된 디렉터리가 라이브 프로필을 원자적으로 교체하고 이전 버전은 롤백용 개정으로 유지됩니다.
  4. 보안 검사
    • 설치 전에 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.13pnpm으로 구축되었으며 TypeScript로 타입 검사되고 Node 내장 테스트 러너로 테스트됩니다.
  • 기여 지침, 행동 강령, 거버넌스 모델이 제공됩니다.
  • CLI는 MIT 라이선스로 오픈소스입니다.

보안 및 개인정보 보호 하이라이트

  • 콘텐츠 주소 지정 릴리스(sha256)는 변조를 방지합니다.
  • 모든 플러그인 소스는 고정됩니다(npm 무결성 해시 또는 전체 Git 커밋 ID).
  • 계획은 30분 후 만료되며 로컬 프로필이 변경되면 중단됩니다.
  • 비밀은 로컬 머신을 떠나지 않으며 변수 이름만 게시됩니다.
  • 선택적 텔레메트리는 완전히 익명이며 비활성화할 수 있습니다.

라이선스

MIT – 자유롭게 사용, 수정, 배포할 수 있습니다.


결론 – DSH Hub CLI는 팀이 완전한 DeepSeek Harness 구성을 재현 가능하고 감사 가능한 방식으로 공유할 수 있게 하여 취약한 "이 플러그인 목록을 설치" 프로세스를 AI 에이전트도 안전하게 호출할 수 있는 단일 명령의 버전 관리 작업으로 전환합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트