Plugin directory / Developer / dsh-monaco
dsh-monaco
Verified · install-tested on dsh DevViking-Persike
What it does
DeepSeek Harness plugin: serves the Monaco editor distribution over a host HTTP route, so an editor plugin needs no CDN
Works — verified, early-stage project
DeepSeek Harness plugin: serves the Monaco editor distribution over a host HTTP route, so an editor plugin needs no CDN It installs cleanly and boots without issues in our testing. It's early-stage but functional.
“Verified” means our automated CI actually ran dsh plugin add in a clean profile and it booted — nothing more. Feature descriptions and version compatibility are the author’s claims. This is not a security audit and not an endorsement of third-party code.
README
dsh-monaco
Serves the Monaco Editor distribution to the browser over a host HTTP route, for DeepSeek Harness plugins that need a real code editor in the page.
Why a route instead of a bundle
The harness browser plugin channel delivers exactly one file per plugin (/plugins/<id>/client.js), and the dynamic bundler emits no extra chunks or assets. Monaco is a multi-file distribution — a loader, per-language modules, and a stylesheet — so it cannot arrive that way.
This plugin mounts those files under a route of its own, reading them from the installed monaco-editor package. The editor therefore stays local: no CDN at runtime, and no third-party origin inside a tool that reads the operator's source tree.
Install
dsh plugin --profile web add github:DevViking-Persike/dsh-monaco
Restart dsh. The distribution is then available under /monaco.
Use it from a client plugin
Monaco publishes itself through its own AMD loader:
await loadScript('/monaco/loader.js')
window.require.config({ paths: { vs: '/monaco' } })
window.require(['vs/editor/editor.main'], () => {
window.monaco.editor.create(host, { value: '', language: 'typescript' })
})
Configuration
| Field | Default | Meaning |
|---|---|---|
route |
/monaco |
Absolute URL prefix, no trailing slash. |
- id: dsh-monaco
name: 'dsh-monaco'
config:
route: /vendor/monaco
Model Experience
None. This plugin serves static bytes to the browser and registers no tool, prompt section, or session event, so nothing it does reaches a model request or consumes context.
Safety
- Every request path is resolved against the distribution root and then proved to be inside it.
resolvecollapses..first, so an escape is caught by the containment test rather than by pattern-matching request text — including percent-encoded attempts, which reach the server intact. - A read failure under the root answers
404, the same as an unknown path, so the browser cannot learn which files exist from a distinguishable error. - Only
GETandHEADare served; anything else answers405. - An extension absent from the content-type table is served as
application/octet-streamrather than guessed, so a wrong type never makes the browser execute something as script.
Known Limitations and Deferred Work
- The route serves the whole distribution, including language modules a given page never loads. Serving a subset would need to know each consumer's languages up front, which the route cannot see.
- Responses carry a one-week immutable
cache-control. That is safe because the distribution is version-pinned by the installed package, but a Monaco upgrade needs a cache-busting route change or a hard reload to take effect in an open tab. - Files are read per request with no in-process cache; the OS page cache absorbs this, and holding a 24 MB distribution in heap to avoid it has no current consumer.
- Monaco's web workers are not configured here. A consumer that wants them must serve its own worker entry and set
MonacoEnvironment; without one Monaco runs its language services on the main thread.
License
MIT — see LICENSE. NOTICE.md carries attribution for Monaco Editor (© Microsoft, MIT) and the DeepSeek Harness project whose plugin conventions this follows.
Install
Install the catalog once, then DeepSeek Harness can find and install any plugin from this site automatically:
dsh plugin add dshbase-catalog Then say "install dsh-monaco for me" — your agent finds it in the directory and installs it. Docs: dshbase-catalog · verified packs.
This plugin is GitHub source (not published to npm) — install it straight from the repo:
Web profile:
dsh plugin --profile web add github:DevViking-Persike/dsh-monaco Headless (CLI) profile:
dsh plugin --profile headless add github:DevViking-Persike/dsh-monaco Test report
Verified: L1 install + L2 load + L3 runtime from GitHub source on dsh 0.1.0-rc.6.