dsh-einvoice

workflowtested: passnpmApache-2.0

Chinese e-invoice (OFD/XML) inbox: ingest, parse, deduplicate, queue for review, record receipts and archive locally — 10 `invoice.*` tools, nothing uploaded.

下载量 / Downloads
2,250
依赖体积 / node_modules
7.83 MB
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

Install

dsh plugin --profile web add dsh-einvoice

Sandbox test results

StageResult
1 install✓
2 list✓
3 mount✓
4 boot—

Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).

README

<div align="center">

dsh-einvoice

Official repository. The only official repository of this package, maintained by PerryLink. Same-name repositories under other accounts are not affiliated. Apache-2.0.

![npm](https://www.npmjs.com/package/dsh-einvoice)

![CI](https://github.com/PerryLink/dsh-einvoice/actions)

![License](LICENSE)

![dsh-plugin](https://github.com/topics/dsh-plugin)

![docs](https://perrylink.github.io/dsh-plugins/)

![Gitee](https://gitee.com/perrylink/dsh-plugins)

![dshfind](https://dshfind.com/plugins/PerryLink/dsh-einvoice?ref=badge)

![DSH Market](https://dsh.market/)

![Node](#)

![npm downloads](https://www.npmjs.com/package/dsh-einvoice)

File-level Chinese e-invoice (OFD/XML) ingest, parse, dedup and local archive.

Status: alpha / public-synthetic / partial / not counted / not GA. No customer evidence, customer data, or production-readiness claim.

[English](README.md) · [简体中文](README-zh.md) · [Español](README-es.md) · [Português](README-pt.md) · [हिन्दी](README-hi.md)

dsh plugin --profile <profile> add dsh-einvoice

</div>

⭐ If this helps, a star makes it easier for the next person to find it. Nothing is gated behind it.

Workflow: local input → plugin → local output. No model call is required.

Real local test run; no model or network call.

Install

Install and verify:

dsh plugin --profile <profile> add dsh-einvoice
dsh --profile <profile> --dump-config | grep dsh-einvoice

Uninstall:

dsh plugin --profile <profile> remove dsh-einvoice

Install channels

npm is the recommended channel; the others are for pinning or offline use.

  • npm (recommended): dsh plugin --profile <profile> add dsh-einvoice
  • git channel: dsh plugin --profile <profile> add github:PerryLink/dsh-einvoice
  • tarball: pnpm pack then dsh plugin --profile <profile> add ./dsh-einvoice-<version>.tgz
  • 1024 store: npm i -g dsh1024 then dsh1024 plugin --profile <profile> add dsh-einvoice

What it does

File-level Chinese e-invoice (OFD/XML) ingest, parse, dedup and local archive. Runs locally on DeepSeek Harness. The table below is the exact tool surface; the examples use the real command surface.

Input and output stay local; nothing is uploaded.

Tools

Tool names and descriptions are kept in English to match the runtime output.

Tool · Purpose · Risk

invoice.ingest · Ingest one local OFD/XML, compute SHA-256, store the original, idempotent by bytes · R1 local write

invoice.parse · Parse old OFD Attachs/original_invoice.xml or 数电票 Tags/CustomTag.xml; return eight fields, lines, evidence and unknown fields · R0

invoice.query · Query the local pool by entity, period, lifecycle or text · R0

invoice.dedup · Group duplicates by invoice number or seller + date + total · R0

invoice.review_queue · Queue parsed invoices for manual local review; optional buyer-tax-id mismatch flags · R1 local write

invoice.record_receipt · Hash a local receipt, append it and move lifecycle; verification_source=local_receipt, tax_verified=false · R1 local write

invoice.redlink · Bind a negative red invoice to its blue invoice and store deltas · R1 local write

invoice.archive · Build a manifest + originals + receipts ZIP under the local archive directory · R1 local write

invoice.check · Verify manifest/member hashes, missing files and traversal · R0

invoice.restore · Restore a verified archive into the local restore root · R1 local write

Quick start

dsh plugin --profile <profile> add dsh-einvoice
dsh --profile <profile> --dump-config | grep dsh-einvoice

Examples

Fixture-backed example

Input: fixtures/public/mit/invoice-github-sample.xml

Command: pnpm test

Acceptance row:

req_id · metric · threshold · actual · pass · source · counted

SKU-04-A01 · 八字段完整率(S1 合成样本) · >=0.98 · 1 · true · public/synthetic · false

This is a fixture-backed acceptance row, not a customer run; no output is invented.

Limits

  • Public/synthetic only; no customer data or customer evidence.
  • Alpha/partial, not counted, no GA or production-readiness claim.
  • No model or network call unless a tool explicitly says so.
  • The exact per-tool boundaries are in the table and ACCEPTANCE.csv.

Public sample

Public/synthetic fixtures live in fixtures/; ACCEPTANCE.csv records the public checks with counted=false.

Development

pnpm install --frozen-lockfile
pnpm build && pnpm lint && pnpm typecheck && pnpm test

Compatibility

Surface · Status

Harness · dsh >=0.2.1-rc.3 <0.3.0

Node · >=24.9.0 <25

Platforms · All; local files only

Data · No network, no model call, no upload

Permissions & data

  • Runs locally; no network, no model call, no upload.
  • Public/synthetic fixtures only; no customer data, no customer evidence.
  • Alpha/partial; not counted, no GA or production-readiness claim.

Related work

Sibling packages and family indexes: [ds

…(truncated)

Rendered from the README published on npm. Formatted only, not edited.

Versions

Published on npm::13,最后更新 2026-11-04

Links

GitHub · Homepage · npm

Same category