Back to home@githezhihao

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 overviewPlugin source tree
Norma Harness project explorer showing the DeepSeek Harness workspace rootNorma Harness project explorer showing TypeScript and CSS file badges

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 openPath operation.
  • 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.

License

MIT