ArtifactLoop
Turn agent-delivered Markdown into a polished, reviewable reading view — and carry precise feedback back into the conversation.
ArtifactLoop is a plugin for DeepSeek Harness. When an agent delivers a Markdown file through a file-editing tool, ArtifactLoop registers it as an artifact, renders it on demand with a deterministic reading-view engine, and shows it in a unified artifact library. Readers can annotate exact text selections, collect comments across multiple passages, and append a structured feedback packet to the current conversation draft — the agent then revises the Markdown, and the loop starts again.
How it works
agent delivers Markdown through a file tool
│ source file is read-only to ArtifactLoop; the original stays in place
▼
turn-tail card in chat ──► open reading view
│
▼
deterministic renderer ──► disposable HTML projection (LRU cache)
│
▼
selection-anchored comments ──► review tray ──► feedback packet ──► conversation draft
Markdown remains the only source of truth. ArtifactLoop never creates, overwrites, moves, renames, or deletes source files; all derived data (projections, annotations, review state) lives in the plugin's own data directory and DSH storage. Rendering never calls a model and never consumes model tokens — token usage begins only when the user actually sends the drafted feedback.
Status
In development — no stable release yet. The v1 specification is at 0.1.0-draft.3 and in final review. The current development build installs on unmodified DeepSeek Harness 0.1.0-rc.7 and reports renderer health in the artifact view; artifact registration, reading projections, annotations, and feedback insertion are being implemented slice by slice.
Features (v1 scope)
- Trustworthy recognition — only Markdown delivered by successful agent file-tool operations becomes an artifact. No workspace scanning, no guessing about shell output.
- Chat-flow entry — each turn that delivers Markdown gets a card at its tail with an "open reading view" action.
- Deterministic rendering — polished typography, native MathML, and static syntax highlighting, produced by a pinned Python rendering core. Identical input bytes always produce identical HTML.
- On-demand projection cache — HTML is rendered when a document is opened and kept in an LRU cache; evicted projections are rebuilt from the source at any time.
- Precise annotations — comments anchor to exact text selections with strict, deterministic re-anchoring after the document changes. No fuzzy matching, no model guessing.
- User-controlled feedback — selected annotations become a structured JSON packet appended to the conversation draft through the public composer API. ArtifactLoop never auto-submits.
- Hardened preview — script-free sandboxed iframe, strict Content Security Policy, capability-token URLs, and workspace path containment.
Requirements
| Component | Requirement |
|---|---|
| DeepSeek Harness | exactly 0.1.0-rc.7 (Web profile) |
| Node.js | ^22.19.0 || >=24.0.0 |
| Python | 3.10+ on the host machine (pure-Python renderer dependencies ship inside the package) |
Installation
ArtifactLoop has not been published to npm yet. Once released, installation will be:
dsh plugin --profile web add dsh-artifactloop
For development, clone this repository, build with pnpm build, and install the packed tarball into an isolated DSH profile. See CONTRIBUTING.md.
Data and privacy
- Source Markdown is opened read-only; an integration test suite verifies byte-for-byte workspace immutability across every plugin operation, including uninstall.
- All derived data lives under
$DSH_HOME/artifactloop/v1and the DSH storage domainartifactloop. Deleting them never affects your files. - No telemetry, no crash upload, no network requests at runtime; remote images are blocked in previews.
Known limitations (v1)
- Markdown (
.md) only; other formats are out of scope. - Files written by shell commands are not collected — attribution never guesses.
- Reading view and chat alternate through view switching; a side-by-side layout is a candidate for a later version.
- No revision-history browsing: annotations on changed text are shown with their saved quotes and clearly marked as stale.
Contributing
The specification is open for review. Please read CONTRIBUTING.md before proposing changes, and report security-sensitive findings following SECURITY.md.
还没有评论,来写第一条。