bleakbelladonnals/dsh-artifact-harbor0

dsh-artifacts

Artifact Harbor — secure, session-aware artifact previews for DeepSeek Harness Web

包名
dsh-artifacts
版本
0.1.0
许可证
MIT
最近更新
2026年8月27日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:bleakbelladonnals/dsh-artifact-harbor

Artifact Harbor logo

Artifact Harbor

Your agent's files, safely docked and fully traceable.

A session-native artifact browser for DeepSeek Harness Web.

[![CI](https://github.com/bleakbelladonnals/dsh-artifact-harbor/actions/workflows/ci.yml/badge.svg)](https://github.com/bleakbelladonnals/dsh-artifact-harbor/actions/workflows/ci.yml)
[![MIT License](https://img.shields.io/badge/license-MIT-22c9ac.svg)](https://github.com/bleakbelladonnals/dsh-artifact-harbor/blob/84c41e8ec543c2a1897f1956cfa24276c4a2a206/LICENSE)
[![DSH 0.1.1-rc.2](https://img.shields.io/badge/DSH-0.1.1--rc.2-5865f2.svg)](#compatibility)
[![Node 22.19+](https://img.shields.io/badge/Node-22.19%2B-339933.svg)](#compatibility)




[中文](https://github.com/bleakbelladonnals/dsh-artifact-harbor/blob/84c41e8ec543c2a1897f1956cfa24276c4a2a206/README.zh.md) · [Architecture](https://github.com/bleakbelladonnals/dsh-artifact-harbor/blob/84c41e8ec543c2a1897f1956cfa24276c4a2a206/ARCHITECTURE.md) · [Security](https://github.com/bleakbelladonnals/dsh-artifact-harbor/blob/84c41e8ec543c2a1897f1956cfa24276c4a2a206/SECURITY.md) · [Validation](https://github.com/bleakbelladonnals/dsh-artifact-harbor/blob/84c41e8ec543c2a1897f1956cfa24276c4a2a206/docs/validation.md)

Artifact Harbor overview

[!NOTE] Artifact Harbor is a community project, not an official DeepSeek product. v0.1 is a developer preview pinned to one tested DSH release.

Why Artifact Harbor?

An agent can create a report, diagram, image, or PDF in seconds—but finding it again and understanding where it came from should not require leaving the conversation. Artifact Harbor adds a compact Artifacts action to the current DSH Session and keeps every file anchored to its Workspace and provenance.

DockInspectTraceProtect
Markdown, HTML, PNG/JPEG/WebP, SVG, and PDFPath, MIME, size, time, SHA-256, and Git statusSession, Turn, and Tool Call with explicit confidenceRealpath containment, bounded reads, sanitization, CSP, and empty iframe sandbox

Built for the session you are in

  • Session-native UI — opens inside DSH Web; no detached desktop viewer.
  • Live arrival board — debounced watcher updates create, edit, rename, and delete events.
  • Explainable provenance — labels attribution as exact, temporal, or unknown.
  • Workspace-only discovery — never scans the whole Home directory.
  • Local by design — no cloud sync, upload, public sharing, or artifact telemetry.
  • Bilingual — English and Chinese UI and documentation.

How it works

DSH Session header
  └── Artifacts
       ├── list + secure preview + metadata
       └── GET/SSE (sessionId + relative path only)
               │
               ▼
       Artifact Harbor Host
       ├── Session → immutable Workspace root
       ├── bounded discovery + incremental index
       ├── SHA-256 + MIME + Git metadata
       ├── Session/Turn/Tool Call provenance
       └── sanitized, sandboxed preview response

The browser cannot choose an absolute Workspace path. The Host resolves the active Session, canonicalizes its Workspace with realpath, and re-checks containment before every preview. See ARCHITECTURE.md for the full trust boundary.

Install from source

The npm package has not been published. Build a reviewable local tarball instead:

git clone https://github.com/bleakbelladonnals/dsh-artifact-harbor.git
cd dsh-artifact-harbor

corepack enable
pnpm install --frozen-lockfile
pnpm build
npm pack --ignore-scripts

dsh plugin --profile web add "$PWD/dsh-artifacts-0.1.0.tgz"
dsh web

Open a Session whose cwd is a registered Workspace. The Artifacts action appears in the Session header and refreshes as supported files change.

To uninstall:

dsh plugin --profile web remove dsh-artifacts

Uninstalling releases routes, SSE streams, watchers, timers, and in-memory indexes. Relative metadata remains under $DSH_HOME/state/dsh-artifacts until the user chooses to remove it; artifact content and Session logs are never cached there.

Compatibility

ComponentSupported in v0.1
DeepSeek Harness@deepseek-ai/dsh@0.1.1-rc.2 exactly
Node.js^22.19.0 or >=24.0.0
DSH surfaceWeb profile / Session header
Package managerpnpm 10.20.0

DSH APIs are pre-1.0. Later release candidates are not claimed compatible until tested.

Security model

Artifact content is untrusted—even when an agent created it. HTML and SVG are sanitized on the Host, served with a strict no-network/no-navigation CSP, and rendered without scripts, same-origin access, forms, popups, or downloads. Absolute paths, traversal variants, and Workspace-escaping symlinks fail closed. Large files remain visible as metadata but are not read into preview memory.

Read SECURITY.md before using untrusted Workspaces. Report vulnerabilities through a private security advisory.

Development

pnpm lint
pnpm typecheck
pnpm test
pnpm build
pnpm test:e2e
npm pack --dry-run --ignore-scripts

The v0.1 gate currently covers 26 unit tests and 12 end-to-end tests. All DSH integration tests use disposable profiles, homes, workspaces, and caches. See the reproducible validation record.

Project lineage

Artifact Harbor is based on agentuse/artifacts, imported at commit 4eaf604fc89f94d4f80ccf1afe2e4c0ebe48c225. It replaces the standalone CLI/server/viewer shell with native DSH Host and Web modules, session provenance, live indexing, and a stricter preview boundary. The original MIT notice is preserved verbatim.

See UPSTREAM.md and the detailed upstream audit.


Built for local-first agent workflows. No upload required.