Monaco Editor
Create and manage sandboxed JavaScript tools for DeepSeek Harness with a Monaco editor and model-driven tool lifecycle.
Project overview
Every tool also declares where it EXISTS: location: 'global' — stored in the shared settings namespace; available in every workspace until removed. location: 'workspace' — stored in a per-workspace file under /workspace-tools/, keyed by the canonical workspace root; visible only to sessions of that workspace (registered into each matching agent's own tool scope).
Node-env tests alias @deepseek-ai/dsh-client-runtime/client to source and monaco-editor to a mock (see vitest.config.ts). Known Limitations and Deferred Work Custom tool names cannot shadow tools owned by other packages; a collision surfaces as a per-tool registration failure in customtoolslist. Workspace confinement is lexical, not symlink-proof (see the scope table). No per-tool test-run button in the UI yet; tools are exercised through model calls or a headless run.