dsh-cc-loader
v0.1.1
Published
Shared parse layer for the dsh-cc ecosystem: parses Claude Code .claude/ (project + global) into a standalone .dsh intermediate representation (IR), classifying every component DIRECT/ADAPTED/UNSUPPORTED/BLOCKED and filtering unsupported ones out.
Maintainers
Readme
dsh-cc-loader
Shared parse layer for the dsh-cc ecosystem: parses Claude Code .claude/ assets (project + global ~/.claude) and Claude Code plugins (plugin.json / marketplace.json / plugin root) into a standalone in-memory IR.
- Memory IR, zero-write path: nothing is written to disk; the source of truth stays the
.claudefiles and plugin manifests themselves, so DSH stays in sync with Claude Code. - Component classification: every component is DIRECT / ADAPTED / UNSUPPORTED / BLOCKED; unsupported and blocked components never reach the adapters.
- Permission engine: CC
settings.jsonallow/deny/ask rule parsing and deny → ask → allow folding (bare names, command globs, path anchors, domains, params, skill/agent names). - Plugin discovery (M4):
parsePluginManifest,parseMarketplace,discoverPluginRoot(single entry point inventorying a plugin's skills/commands/agents/mcp/lsp/hooks),discoverMarketplace,pluginComponentName(plugin-<plugin>-<component>DSH-safe namespacing).
Consumed by dsh-cc-skills, dsh-cc-permissions, dsh-cc-agents, dsh-cc-hooks and dsh-cc-mcp.
Install
npm install dsh-cc-loaderQuick use
import { loadClaude } from 'dsh-cc-loader'
const ir = await loadClaude({ cwd: process.cwd(), pluginRoots: ['/path/to/my-plugin'] })
console.log(ir.report) // DIRECT/ADAPTED/UNSUPPORTED counts
console.log(ir.components.plugins) // per-plugin IR blocksMIT — discovery logic derived from dsh-claude-compat (MIT, © biedongbin).
