ALwith-ai / alwith-dsh

목록에 있음

Interactive ACP v2 bridge for DeepSeek Harness (dsh) — streaming, run-state reporting, permissions. ALwith Desktop is its reference client.

main기타 소스 보기

설치

npx -y @deepseek-ai/dsh plugin --profile web add github:ALwith-ai/alwith-dsh

이 설치 명령은 GitHub 저장소 주소에서 생성된 확인되지 않은 시작점입니다.

README

유지 관리자가 작성한 문서 스냅샷입니다.

GitHub에서 보기 ↗
커밋 8059925동기화 2026. 8. 18.

alwith-dsh

English | 中文

An interactive ACP v2 bridge for DeepSeek Harness (dsh): exposes a dsh agent as a chat backend that desktop/editor clients can host — token-level streaming, run-state reporting (state_update), permission bridging, and cancellation. Ships as an out-of-tree plugin: no fork of dsh, dependencies pinned to exact npm versions.

Maintained by ALwith; ALwith Desktop is its reference client (the desktop form of dsh). Upstream's own ACP surface is deliberately automation-only (fresh sessions, committed output only); this bridge provides the interactive side.

Status: developer preview. Covers session/new + prompt + streaming + run-state reporting + cancel + session/resume (live-first reattach, cold resume from JSONL persistence, client-driven replayFrom history replay) + sandbox-first tools with escalation approvals + in-session model switching (session/set_config_option) + LLM session titles (deterministic first, one background generate upgrades) + all dsh presets (standard / minimal / anchored / code PTC on the Bun-patched official worker runtime / cordis creator with the vm-realm dynamic-plugin toolset and the bundled cordis-plugin-development skill) + host-facing plugins / sessions management CLIs.

Layout

FileResponsibility
src/bridge.tsACP v2 server plugin (adapted from upstream's automation-only v1 bridge, MIT)
src/codec.tsPure wire-format translation (adapted from the upstream codec)
src/plugins.tsPlugin manifest: the composition as data (per-preset roster, core protection, overrides)
src/compose.tsComposes the runtime from the manifest (no dsh loader/profile — deterministic, runs on Bun)
src/plugins-cli.tsplugins subcommand: list and toggle plugins without a live session
src/sessions-cli.tssessions subcommand: session-log inspection through dsh's own persistence
skills/Skills bundled into presets (vendored from dsh's cordis preset, MIT)
src/main.tsstdio entry for hosts to spawn

Run

DEEPSEEK_API_KEY=… bun src/main.ts   # ACP v2 server over stdio
bun test                              # protocol tests with a mock adapter; no real model calls

session/resume semantics: an omitted replayFrom means context-only restore; { type: "start" } replays the whole conversation as session/update frames. Session logs live under $ALWITH_DSH_SESSIONS_ROOT (default ~/.alwith-dsh/sessions).

Plugins

The composition per preset is fixed here in code (deterministic), but users keep dsh's two degrees of freedom — per-plugin enable/disable and per-plugin config — through an overrides file ($ALWITH_DSH_PLUGINS_FILE, default ~/.alwith-dsh/plugins.json), read at spawn so changes apply to new sessions:

bun src/main.ts plugins list --preset standard   # every row of the preset, JSON
bun src/main.ts plugins set tool-web disabled    # validated before writing
{ "disabled": ["tool-web"], "config": { "bash-sandbox": { "timeoutMs": 120000 } } }

Core rows (session, llm, sandbox, approvals, …) cannot be disabled, and disabling a row another enabled row requires is rejected with the exact fix — both fail loud before anything is written. config entries shallow-merge over the row defaults.

License

MIT; portions adapted from upstream @deepseek-ai/dsh-acp are noted in THIRD_PARTY_NOTICES.md.

프로젝트 파일 및 신호

표시된 항목은 디렉터리 스냅샷에서 감지된 공개 저장소 신호입니다.

테스트감지됨

저장소 정보

언어
TypeScript
라이선스
MIT
마지막 업데이트
2026. 8. 16. 오후 2:37

신중하게 설치하기

소스 코드, 권한, 수명 주기 스크립트, 의존성 및 네트워크 접근을 검토하고 신뢰하지 않는 플러그인은 격리 환경에서 테스트하세요.