norma-project-explorer
Read-only VS Code-style project tree for Norma Harness and DeepSeek Harness
- Stars
- 1
- Language
- TypeScript
- Created
- Aug 21, 2026
- Updated
- Aug 21, 2026
Introduction
Norma Project Explorer
English | 中文
A compact, read-only project tree for the Norma Harness session sidebar. The folder control sits beside Workspace search and switches the session-list area to the active project's files.
Screenshots
| Workspace overview | Plugin source tree |
|---|---|
![]() | ![]() |
Features
- Lazy, Workspace-scoped directory loading.
- VS Code-inspired colored badges for common source, configuration, document, data, and image formats.
- Theme-native filenames, hover states, folders, and collapsed-directory indicators.
- Double-click delegation to the host's existing
openPathoperation. - No file editing, model-context injection, filesystem watcher, or independent permission store.
Compatibility
This repository is the source package used by Norma Harness. It currently depends on the Workspace directory APIs and the sidebar.workspaces.headerAction list slot carried by the norma/custom DeepSeek Harness branch.
It is not yet a standalone npm bundle and cannot currently be installed into an unmodified DeepSeek Harness profile with dsh plugin add. The source is public now so the implementation, security properties, and further development can happen in the open without overstating upstream compatibility.
Source Integration
Place this repository at packages/client/ui-project-explorer in a compatible Norma Harness source tree. The host must provide Workspace-scoped listFiles and openPath operations, and the Web client must expose sidebar.workspaces.headerAction. Register the client package in the Web bundle and client TypeScript aggregate, then build the package and Web frontend.
Security
The component never reads the filesystem directly. Directory traversal checks, Workspace-root enforcement, hidden-entry filtering, and path opening remain owned by the Harness host. No credentials, environment variables, file contents, or model prompts pass through this plugin.
Development
The package follows the DeepSeek Harness monorepo toolchain. From a compatible source tree:
pnpm exec tsc -p packages/client/ui-project-explorer/tsconfig.json
pnpm exec tsdown --env.DSH_BUILD_FACE client -F '@norma-harness/ui-project-explorer/client'
pnpm exec vitest run packages/client/ui-project-explorer/tests
Roadmap
- Package the required host capability and client component as an installable
dsh.bundle. - Add keyboard navigation and filesystem refresh events.
- Keep editing, deletion, and model-context insertion outside this focused plugin.

