Back to marketplace

dsh-action-parity

Security

dongsheng123132/dsh-action-parity

Cross-surface action binding and replay parity evidence for DeepSeek Harness. Verifies that business actions are consistently implemented and reached from CLI, MCP, and GUI surfaces, with content-addressed reports.

  • action-parity
  • ai-agent
  • conformance
  • cross-surface
  • deepseek-harness
  • dsh
  • dsh-plugin
GitHub Stars
3GitHub
Views
0DSH Plugin Hub
Forks
0GitHub
Open issues
0GitHub Issues
Manifest version
0.2.0dsh-action-parity
Latest push
Aug 20, 2026GitHub
License
MITJavaScript
Plugin type
HostRuns in the DSH Host

README

View source

DSH Action Parity

CI MIT license Node.js 22+ Awesome DSH Plugins

Evidence that a business action is implemented once and reached consistently from CLI, MCP and GUI surfaces in DeepSeek Harness. Version 0.2 adds a formal Codex plugin manifest, a proof-only MCP server, real ToolRuntime smoke coverage and a namespace-export regression test for the stock DSH Web loader.

This plugin does not execute business actions and does not test buttons by pixels. It verifies a manifest of stable Action IDs, content-addressed action-core and binding declarations, and structural replay observations produced by each interface.

What it verifies

  • every CLI, MCP and GUI binding names the same stable actionId and coreActionId;
  • GUI bindings expose data-action-id:<actionId> while CLI and MCP use stable machine identifiers;
  • core modules, binding declarations and replay fixtures still match their declared SHA-256;
  • the same fixture yields the same result digest, success state and state-version transition on every surface;
  • stale mutations fail closed with STALE_STATE and do not advance state;
  • confirmation-required actions enforce confirmation on every surface;
  • missing/stale evidence and every parity failure are disclosed in a deterministic content-addressed report.

Inputs containing secret-, prompt-, chat-, raw input/output-, argv-, stdout- or stderr-shaped fields are rejected. Paths must remain inside workspaceRoot; symlink inputs and output directories are rejected. Only the explicit artifactDir is written, with atomic publication and SHA-256 read-back verification.

Install

dsh plugin --profile web add github:dongsheng123132/dsh-action-parity

The bundle registers dsh_action_parity_inspect and dsh_action_parity_verify.

The package deliberately exposes only namespace exports and declares standard ToolDefinition objects without bundling a second DSH runtime. This keeps it loadable by the stock DSH Web profile while preserving the same shared, interface-free verification core for DSH tools, CLI and MCP.

CLI

dsh-action-parity inspect --workspace-root examples/basic --manifest action-parity.manifest.json
dsh-action-parity verify --workspace-root examples/basic --manifest action-parity.manifest.json --observations observations.jsonl --artifact-dir artifacts

Exit code 0 means verified, 2 means evidence was processed but parity failed, and 1 means invalid or unsafe input.

See examples/basic for a mutation whose CLI, MCP and GUI bindings share one core, including success and stale-state fixtures.

Codex and proof-only MCP

The formal Codex bundle exposes two stdio MCP tools:

  • action_parity_manifest_inspect validates an inline manifest;
  • action_parity_observations_verify checks inline JSONL envelopes against that manifest.

These MCP tools are intentionally proof-only: they do not read the filesystem, dereference declaration paths, execute actions or write artifacts. Therefore declaration content hashes are reported as not verified. Use the DSH tools or CLI when you need workspace-bounded file hash verification and an atomically published, read-back-verified report.

Development

npm test
npm run check
npm run smoke:plugin
npm run smoke:mcp
npm run smoke:dsh
npm run smoke:web-loader

MIT

Comments

0
Newest first