dsh-data-quality 0.3.6 → 0.3.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,17 @@ All notable changes to this project are documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.3.7] - 2026-09-07
9
+
10
+ ### Fixed
11
+
12
+ - Align the `@deepseek-ai/dsh-*` peer ranges to `>=0.1.2-rc.1 <0.2.0`: the older `>=0.1.0-rc.8 <0.2.0` band resolved to only the `0.1.0-rc.8` prerelease under registry-driven resolution and broke fresh tarball installs; no behavior change.
13
+
14
+ ### Docs
15
+
16
+ - Refresh the five-language README support-version wording: the verified GitHub tag `dsh-v0.1.3-alpha.1` now leads the compatibility claim, while npm `0.1.2-rc.1` stays the published dependency-pin line (peers `>=0.1.2-rc.1 <0.2.0`); no behavior change.
17
+
18
+
8
19
  ## [0.3.6] - 2026-09-04
9
20
 
10
21
  ### Fixed
package/README.es.md CHANGED
@@ -11,7 +11,7 @@ Todo el cálculo es TypeScript puro dentro del proceso del harness — el modelo
11
11
 
12
12
  | Componente | Versión |
13
13
  |---|---|
14
- | DeepSeek Harness | `0.1.2-rc.1` (adaptado el 2026-09-02): el sobre de sesión conserva su campo ignorable solo para compatibilidad de lectura de logs almacenados - Session.append aún no puede estamparlo, por lo que el comportamiento de la puerta no cambia. |
14
+ | DeepSeek Harness | `dsh-v0.1.3-alpha.1` (adaptado el 2026-09-02): el sobre de sesión conserva su campo ignorable solo para compatibilidad de lectura de logs almacenados - Session.append aún no puede estamparlo, por lo que el comportamiento de la puerta no cambia. Verificado el 2026-09-06 contra el master checkout dsh-v0.1.3-alpha.1 (cadena completa de puertas + smoke de instalación de perfil). |
15
15
  | Node.js | `^22.19.0 \|\| >=24.0.0` |
16
16
  | Gestor de paquetes | `pnpm@11.7.0` |
17
17
  | Plataforma | Windows / macOS / Linux (plugin solo de host) |
@@ -23,7 +23,7 @@ Todo el cálculo es TypeScript puro dentro del proceso del harness — el modelo
23
23
  - **Herramienta `data_clean`** — reglas declarativas de limpieza en orden: `dedupe` (por grupo de columnas), `fill-missing` (constant/mean/median/forward), `coerce-type` (number/date/boolean; los fallos se cuentan y quedan como faltantes), `normalize-unit` (p. ej. sufijos 万/亿 a unidades base), `trim`, `map-values` (mapeo de enumeraciones). Devuelve un registro de auditoría por regla más una vista previa acotada; solo escribe el dataset limpio cuando se indica `outputPath` y nunca sobrescribe el origen.
24
24
  - **Herramienta `data_verify`** — reglas declarativas de verificación: `not-null`, `unique`, `range`, `regex`, `enum`, `cross-column` (p. ej. `startDate < endDate`), `freshness` (columna de fecha dentro de N días de una fecha de referencia). pass/fail por regla con evidencia acotada de filas fallidas; un fallo global es un resultado normal `passed: false`, no un error de herramienta.
25
25
  - **Informes duraderos** — cada ejecución de perfilado/limpieza/verificación/citas persiste en el dominio de almacenamiento `data_quality` (backend JSON), con clave de marca de tiempo más huella de la ruta del dataset; la clave se devuelve como `reportKey` en los resultados. Los informes de limpieza también persisten la vista previa acotada, de modo que todo resultado visible para el modelo es reconstruible a partir de su `reportKey`.
26
- - **Eventos de sesión** — en hosts que los soportan con seguridad, las ejecuciones añaden eventos `data-quality/profile` / `data-quality/clean` / `data-quality/verify` (con la marca `ignorable` donde se admite). En 0.1.1-rc.2 el append se omite por diseño — el informe del dominio de almacenamiento es siempre la copia duradera (véase «Known limitations»).
26
+ - **Eventos de sesión** — en hosts que los soportan con seguridad, las ejecuciones añaden eventos `data-quality/profile` / `data-quality/clean` / `data-quality/verify` (con la marca `ignorable` donde se admite). En la línea publicada `0.1.2-rc.1` (como en las líneas rc anteriores) el append se omite por diseño — el informe del dominio de almacenamiento es siempre la copia duradera (véase «Known limitations»).
27
27
 
28
28
  ## Quick start
29
29
 
@@ -154,7 +154,7 @@ Los localizadores recorren el documento del dataset: CSV/TSV cargan como `{ colu
154
154
 
155
155
  ## Known limitations
156
156
 
157
- - **Los eventos de sesión son adaptativos.** 0.1.1-rc.2 no tiene superficie de registro de eventos de sesión para plugins y su `Session.append` no puede estampar la marca `ignorable`, así que añadir un tipo `data-quality/*` desconocido haría ilegible el registro de sesión al restaurarlo. Por eso el plugin solo añade cuando el host conoce el vocabulario o soporta el flag `ignorable`; en rc.2 el informe del dominio de almacenamiento es el registro duradero.
157
+ - **Los eventos de sesión son adaptativos.** La línea publicada `0.1.2-rc.1` (como las líneas rc anteriores) no tiene superficie de registro de eventos de sesión para plugins y su `Session.append` no puede estampar la marca `ignorable`, así que añadir un tipo `data-quality/*` desconocido haría ilegible el registro de sesión al restaurarlo. Por eso el plugin solo añade cuando el host conoce el vocabulario o soporta el flag `ignorable`; en la línea publicada el informe del dominio de almacenamiento es el registro duradero.
158
158
  - **Dialecto CSV** — coma/tab con comillas RFC-4180, fila de cabecera obligatoria, líneas en blanco omitidas; sin autodetección de delimitador ni líneas de comentario.
159
159
  - **El parseo de tipos es estricto** — los números no llevan separadores de miles; las fechas son `YYYY-MM-DD` / `YYYY/MM/DD` / datetimes estilo ISO (UTC); los booleanos son `true/false/yes/no/1/0`. Todo lo demás se perfila como `string`/`mixed` — límpialo con `coerce-type` si es intencionado.
160
160
  - **JSON debe ser tabular para las herramientas** (array de objetos planos); `verifyCitations` recorre documentos JSON arbitrarios.
package/README.hi.md CHANGED
@@ -11,7 +11,7 @@
11
11
 
12
12
  | घटक | संस्करण |
13
13
  |---|---|
14
- | DeepSeek Harness | `0.1.2-rc.1` (2026-09-02 को अनुकूलित): सत्र लिफ़ाफ़ा अपना ignorable फ़ील्ड केवल संग्रहीत-लॉग पठन संगतता के लिए रखता है - Session.append अभी भी इसे स्टैम्प नहीं कर सकता, इसलिए गेट व्यवहार अपरिवर्तित है। |
14
+ | DeepSeek Harness | `dsh-v0.1.3-alpha.1` (2026-09-02 को अनुकूलित): सत्र लिफ़ाफ़ा अपना ignorable फ़ील्ड केवल संग्रहीत-लॉग पठन संगतता के लिए रखता है - Session.append अभी भी इसे स्टैम्प नहीं कर सकता, इसलिए गेट व्यवहार अपरिवर्तित है। 2026-09-06 को dsh-v0.1.3-alpha.1 master checkout के विरुद्ध सत्यापित (पूर्ण गेट श्रृंखला + प्रोफ़ाइल इंस्टॉल स्मोक)। |
15
15
  | Node.js | `^22.19.0 \|\| >=24.0.0` |
16
16
  | पैकेज मैनेजर | `pnpm@11.7.0` |
17
17
  | प्लेटफ़ॉर्म | Windows / macOS / Linux (केवल होस्ट प्लगिन) |
@@ -23,7 +23,7 @@
23
23
  - **`data_clean` टूल** — क्रमबद्ध घोषणात्मक क्लीनिंग नियम: `dedupe` (स्तंभ समूह से), `fill-missing` (constant/mean/median/forward), `coerce-type` (number/date/boolean; विफलताएँ गिनी जाती हैं और अनुपस्थित बन जाती हैं), `normalize-unit` (जैसे 万/亿 प्रत्यय को आधार इकाई में), `trim`, `map-values` (एनुम मैपिंग)। प्रति-नियम ऑडिट लॉग और सीमित पूर्वावलोकन लौटाता है; केवल `outputPath` दिए जाने पर साफ़ डेटासेट लिखता है और मूल फ़ाइल को कभी अधिलेखित नहीं करता।
24
24
  - **`data_verify` टूल** — घोषणात्मक सत्यापन नियम: `not-null`, `unique`, `range`, `regex`, `enum`, `cross-column` (जैसे `startDate < endDate`), `freshness` (संदर्भ तिथि से N दिनों के भीतर तिथि स्तंभ)। प्रति-नियम pass/fail और सीमित असफल-पंक्ति साक्ष्य; समग्र असफलता सामान्य `passed: false` परिणाम है, टूल त्रुटि नहीं।
25
25
  - **टिकाऊ रिपोर्ट** — हर प्रोफ़ाइल/क्लीन/सत्यापन/उद्धरण रन `data_quality` स्टोरेज डोमेन (JSON बैकएंड) में सहेजा जाता है, कुंजी = रन टाइमस्टैम्प + डेटासेट-पथ फ़िंगरप्रिंट; कुंजी टूल परिणामों में `reportKey` के रूप में लौटती है। क्लीन रिपोर्ट सीमित पूर्वावलोकन भी सहेजती हैं, इसलिए हर मॉडल-दृश्य परिणाम केवल `reportKey` से पुनर्निर्मित किया जा सकता है।
26
- - **सत्र ईवेंट** — जिन होस्ट पर सुरक्षित रूप से संभव है, रन `data-quality/profile` / `data-quality/clean` / `data-quality/verify` ईवेंट जोड़ते हैं (जहाँ समर्थित हो वहाँ `ignorable` चिह्न सहित)। 0.1.1-rc.2 पर append जानबूझकर छोड़ा जाता है — स्टोरेज-डोमेन रिपोर्ट हमेशा टिकाऊ प्रति होती है (देखें «Known limitations»)।
26
+ - **सत्र ईवेंट** — जिन होस्ट पर सुरक्षित रूप से संभव है, रन `data-quality/profile` / `data-quality/clean` / `data-quality/verify` ईवेंट जोड़ते हैं (जहाँ समर्थित हो वहाँ `ignorable` चिह्न सहित)। प्रकाशित `0.1.2-rc.1` लाइन पर (पहले की rc लाइनों की तरह) append जानबूझकर छोड़ा जाता है — स्टोरेज-डोमेन रिपोर्ट हमेशा टिकाऊ प्रति होती है (देखें «Known limitations»)।
27
27
 
28
28
  ## Quick start
29
29
 
@@ -154,7 +154,7 @@ const result = await ctx.dataQuality.verifyCitations({
154
154
 
155
155
  ## Known limitations
156
156
 
157
- - **सत्र ईवेंट अनुकूली हैं।** 0.1.1-rc.2 में प्लगिन सत्र-ईवेंट पंजीकरण सतह नहीं है और उसका `Session.append` `ignorable` चिह्न नहीं लगा सकता; अज्ञात `data-quality/*` प्रकार जोड़ने से सत्र लॉग पुनः स्थापना पर अस्वीकार हो जाएगा। इसलिए प्लगिन केवल तब जोड़ता है जब होस्ट शब्दावली जानता हो या `ignorable` append फ़्लैग समर्थित हो; rc.2 पर स्टोरेज-डोमेन रिपोर्ट ही टिकाऊ रिकॉर्ड है।
157
+ - **सत्र ईवेंट अनुकूली हैं।** प्रकाशित `0.1.2-rc.1` लाइन (पहले की rc लाइनों की तरह) में प्लगिन सत्र-ईवेंट पंजीकरण सतह नहीं है और उसका `Session.append` `ignorable` चिह्न नहीं लगा सकता; अज्ञात `data-quality/*` प्रकार जोड़ने से सत्र लॉग पुनः स्थापना पर अस्वीकार हो जाएगा। इसलिए प्लगिन केवल तब जोड़ता है जब होस्ट शब्दावली जानता हो या `ignorable` append फ़्लैग समर्थित हो; प्रकाशित लाइन पर स्टोरेज-डोमेन रिपोर्ट ही टिकाऊ रिकॉर्ड है।
158
158
  - **CSV बोली** — RFC-4180 उद्धरण के साथ अल्पविराम/टैब, हेडर पंक्ति आवश्यक, रिक्त पंक्तियाँ छोड़ी जाती हैं; डिलीमीटर स्व-पहचान या टिप्पणी पंक्तियाँ नहीं।
159
159
  - **प्रकार पार्सिंग सख़्त है** — संख्याओं में सहस्र विभाजक नहीं; तिथियाँ `YYYY-MM-DD` / `YYYY/MM/DD` / ISO-शैली datetime (UTC); बूलियन `true/false/yes/no/1/0`। बाक़ी सब `string`/`mixed` प्रोफ़ाइल होता है — इरादा हो तो `coerce-type` से क्लीन करें।
160
160
  - **टूल के लिए JSON तालिकीय होना चाहिए** (सपाट ऑब्जेक्ट की सरणी); `verifyCitations` मनमाने JSON दस्तावेज़ों पर चलता है।
package/README.md CHANGED
@@ -17,7 +17,7 @@ All computation is plain TypeScript in the harness process — the model never d
17
17
 
18
18
  | Component | Version |
19
19
  |---|---|
20
- | DeepSeek Harness | `0.1.2-rc.1` (adapted 2026-09-02): the session envelope keeps its ignorable field for stored-log read compatibility only - Session.append still cannot stamp it, so audit-gate behavior is unchanged. |
20
+ | DeepSeek Harness | `dsh-v0.1.3-alpha.1` (adapted 2026-09-02): the session envelope keeps its ignorable field for stored-log read compatibility only - Session.append still cannot stamp it, so audit-gate behavior is unchanged. Verified 2026-09-06 against the dsh-v0.1.3-alpha.1 master checkout (full gate chain + profile install smoke). |
21
21
  | Node.js | `^22.19.0 \|\| >=24.0.0` |
22
22
  | Package manager | `pnpm@11.7.0` |
23
23
  | Platform | Windows / macOS / Linux (host-only plugin) |
@@ -30,7 +30,7 @@ All computation is plain TypeScript in the harness process — the model never d
30
30
  - **`data_verify` tool** — declarative verification rules: `not-null`, `unique`, `range`, `regex`, `enum`, `cross-column` (e.g. `startDate < endDate`), `freshness` (date column within N days of a reference date). Per-rule pass/fail with capped failing-row evidence; an overall failure is a normal `passed: false` result, not a tool error.
31
31
  - **`data_report` tool** — read persisted reports back from the `data_quality` storage domain: by exact `reportKey` (path-safe validation, missing keys fail loud) or by `kind` (chronological listing). Returns the report envelope(s) — kind, dataset, timestamp, and the full stored report. `format: html` renders one profile/clean report as a self-contained offline HTML document (inline CSS/JS, no external requests) with the DAMA six-dimension scorecard and the profile/cleaning summary tables.
32
32
  - **Durable reports** — every profile/clean/verify/citation run persists to the `data_quality` storage domain (JSON backend), keyed by run timestamp plus a dataset-path fingerprint; the key is returned as `reportKey` in tool results. Clean reports also persist the bounded preview and the contract summary, so every model-visible result is reconstructable from its `reportKey`; each clean run additionally persists a `clean-diff` before/after profile report.
33
- - **Session events** — on hosts that can carry them safely, runs append `data-quality/profile` / `data-quality/clean` / `data-quality/verify` events (with the `ignorable` marker where supported). On 0.1.1-rc.2 the append is skipped by design — the storage-domain report is always the durable copy (see "Known limitations").
33
+ - **Session events** — on hosts that can carry them safely, runs append `data-quality/profile` / `data-quality/clean` / `data-quality/verify` events (with the `ignorable` marker where supported). On the published `0.1.2-rc.1` line (as on earlier rc lines) the append is skipped by design — the storage-domain report is always the durable copy (see "Known limitations").
34
34
 
35
35
  ## Quick start
36
36
 
@@ -161,7 +161,7 @@ Locators walk the dataset document: CSV/TSV load as `{ columns, rows }` (so `row
161
161
 
162
162
  ## Known limitations
163
163
 
164
- - **Session events are adaptive.** 0.1.1-rc.2 has no plugin session-event registration surface and its `Session.append` cannot stamp the `ignorable` marker, so appending an unknown `data-quality/*` type would make the session log unreadable on restore. The plugin therefore appends only when the host knows the vocabulary or supports the `ignorable` append flag; on rc.2 the storage-domain report is the durable record.
164
+ - **Session events are adaptive.** The published `0.1.2-rc.1` line (like the earlier rc lines) has no plugin session-event registration surface and its `Session.append` cannot stamp the `ignorable` marker, so appending an unknown `data-quality/*` type would make the session log unreadable on restore. The plugin therefore appends only when the host knows the vocabulary or supports the `ignorable` append flag; on the published line the storage-domain report is the durable record.
165
165
  - **CSV dialect** — comma/tab with RFC-4180 quoting, header row required, blank lines skipped, no delimiter auto-detection or comment lines.
166
166
  - **Type parsing is strict** — numbers have no thousands separators; dates are `YYYY-MM-DD` / `YYYY/MM/DD` / ISO-like datetimes (UTC); booleans are `true/false/yes/no/1/0`. Everything else profiles as `string`/`mixed` — clean it with `coerce-type` when intended.
167
167
  - **JSON must be tabular for the tools** (array of flat objects); `verifyCitations` walks arbitrary JSON documents.
package/README.pt.md CHANGED
@@ -11,7 +11,7 @@ Todo o cálculo é TypeScript puro no processo do harness — o modelo nunca faz
11
11
 
12
12
  | Componente | Versão |
13
13
  |---|---|
14
- | DeepSeek Harness | `0.1.2-rc.1` (adaptado em 2026-09-02): o envelope de sessão mantém seu campo ignorable apenas para compatibilidade de leitura de logs armazenados - o Session.append ainda não consegue estampá-lo, então o comportamento da porta não muda. |
14
+ | DeepSeek Harness | `dsh-v0.1.3-alpha.1` (adaptado em 2026-09-02): o envelope de sessão mantém seu campo ignorable apenas para compatibilidade de leitura de logs armazenados - o Session.append ainda não consegue estampá-lo, então o comportamento da porta não muda. Verificado em 2026-09-06 contra o checkout master dsh-v0.1.3-alpha.1 (cadeia completa de portas + smoke de instalação de perfil). |
15
15
  | Node.js | `^22.19.0 \|\| >=24.0.0` |
16
16
  | Gerenciador de pacotes | `pnpm@11.7.0` |
17
17
  | Plataforma | Windows / macOS / Linux (plugin apenas de host) |
@@ -23,7 +23,7 @@ Todo o cálculo é TypeScript puro no processo do harness — o modelo nunca faz
23
23
  - **Ferramenta `data_clean`** — regras declarativas de limpeza em ordem: `dedupe` (por grupo de colunas), `fill-missing` (constant/mean/median/forward), `coerce-type` (number/date/boolean; falhas contadas e viram ausentes), `normalize-unit` (p. ex. sufixos 万/亿 para unidades base), `trim`, `map-values` (mapeamento de enumerações). Retorna um log de auditoria por regra mais uma prévia limitada; só grava o dataset limpo quando `outputPath` é dado e nunca sobrescreve a origem.
24
24
  - **Ferramenta `data_verify`** — regras declarativas de verificação: `not-null`, `unique`, `range`, `regex`, `enum`, `cross-column` (p. ex. `startDate < endDate`), `freshness` (coluna de data dentro de N dias de uma data de referência). pass/fail por regra com evidência limitada de linhas falhas; uma falha geral é um resultado normal `passed: false`, não um erro de ferramenta.
25
25
  - **Relatórios duráveis** — cada execução de perfilamento/limpeza/verificação/citações persiste no domínio de armazenamento `data_quality` (backend JSON), com chave de timestamp mais impressão digital do caminho do dataset; a chave é retornada como `reportKey` nos resultados. Os relatórios de limpeza também persistem a pré-visualização limitada, de modo que todo resultado visível ao modelo é reconstruível a partir do seu `reportKey`.
26
- - **Eventos de sessão** — em hosts que os suportam com segurança, as execuções anexam eventos `data-quality/profile` / `data-quality/clean` / `data-quality/verify` (com a marca `ignorable` onde suportado). Em 0.1.1-rc.2 o append é omitido por design — o relatório do domínio de armazenamento é sempre a cópia durável (ver «Known limitations»).
26
+ - **Eventos de sessão** — em hosts que os suportam com segurança, as execuções anexam eventos `data-quality/profile` / `data-quality/clean` / `data-quality/verify` (com a marca `ignorable` onde suportado). Na linha publicada `0.1.2-rc.1` (como nas linhas rc anteriores) o append é omitido por design — o relatório do domínio de armazenamento é sempre a cópia durável (ver «Known limitations»).
27
27
 
28
28
  ## Quick start
29
29
 
@@ -154,7 +154,7 @@ Os localizadores percorrem o documento do dataset: CSV/TSV carregam como `{ colu
154
154
 
155
155
  ## Known limitations
156
156
 
157
- - **Os eventos de sessão são adaptativos.** 0.1.1-rc.2 não tem superfície de registo de eventos de sessão para plugins e o seu `Session.append` não consegue estampar a marca `ignorable`, logo anexar um tipo `data-quality/*` desconhecido tornaria o log de sessão ilegível ao restaurar. Por isso o plugin só anexa quando o host conhece o vocabulário ou suporta o flag `ignorable`; em rc.2 o relatório do domínio de armazenamento é o registo durável.
157
+ - **Os eventos de sessão são adaptativos.** A linha publicada `0.1.2-rc.1` (como as linhas rc anteriores) não tem superfície de registo de eventos de sessão para plugins e o seu `Session.append` não consegue estampar a marca `ignorable`, logo anexar um tipo `data-quality/*` desconhecido tornaria o log de sessão ilegível ao restaurar. Por isso o plugin só anexa quando o host conhece o vocabulário ou suporta o flag `ignorable`; na linha publicada o relatório do domínio de armazenamento é o registo durável.
158
158
  - **Dialeto CSV** — vírgula/tab com aspas RFC-4180, linha de cabeçalho obrigatória, linhas em branco ignoradas; sem autodetecção de delimitador nem linhas de comentário.
159
159
  - **O parsing de tipos é estrito** — números sem separadores de milhares; datas são `YYYY-MM-DD` / `YYYY/MM/DD` / datetimes estilo ISO (UTC); booleanos são `true/false/yes/no/1/0`. Todo o resto é perfilado como `string`/`mixed` — limpe com `coerce-type` se for intencional.
160
160
  - **JSON tem de ser tabular para as ferramentas** (array de objetos planos); `verifyCitations` percorre documentos JSON arbitrários.
package/README.zh.md CHANGED
@@ -11,7 +11,7 @@
11
11
 
12
12
  | 组件 | 版本 |
13
13
  |---|---|
14
- | DeepSeek Harness | `0.1.2-rc.1`(2026-09-02 已适配):会话信封保留 ignorable 字段但仅用于存量日志读取兼容——Session.append 仍无法盖章,门控行为不变。 |
14
+ | DeepSeek Harness | `dsh-v0.1.3-alpha.1`(2026-09-02 已适配):会话信封保留 ignorable 字段但仅用于存量日志读取兼容——Session.append 仍无法盖章,门控行为不变。已于 2026-09-06 对照 dsh-v0.1.3-alpha.1 master 检出核验(完整门禁链 + profile 安装冒烟)。 |
15
15
  | Node.js | `^22.19.0 \|\| >=24.0.0` |
16
16
  | 包管理器 | `pnpm@11.7.0` |
17
17
  | 平台 | Windows / macOS / Linux(纯宿主插件) |
@@ -23,7 +23,7 @@
23
23
  - **`data_clean` 工具** —— 有序声明式清洗规则:`dedupe`(按列组)、`fill-missing`(常量/均值/中位数/前向填充)、`coerce-type`(number/date/boolean,失败计数并置缺失)、`normalize-unit`(万/亿 等单位后缀归一)、`trim`、`map-values`(枚举映射)。返回逐规则审计日志与有界预览;仅在给出 `outputPath` 时落盘,且绝不覆盖源文件。
24
24
  - **`data_verify` 工具** —— 声明式核查规则:`not-null`、`unique`、`range`、`regex`、`enum`、`cross-column`(如 `startDate < endDate`)、`freshness`(日期列距参考日期不超过 N 天)。逐规则 pass/fail 并附有界失败行证据;整体失败是正常结果 `passed: false`,不是工具错误。
25
25
  - **持久化报告** —— 每次梳理/清洗/核查/引用检查都写入 `data_quality` storage domain(JSON 后端),键为运行时间戳加数据集路径指纹;工具结果以 `reportKey` 返回该键。清洗报告同时持久化有界预览,因此任何模型可见结果都能仅凭 `reportKey` 重建。
26
- - **会话事件** —— 宿主支持时,运行会追加 `data-quality/profile` / `data-quality/clean` / `data-quality/verify` 事件(支持处带 `ignorable` 标记)。在 0.1.1-rc.2 上按设计跳过 append —— storage domain 报告始终是持久副本(见「Known limitations」)。
26
+ - **会话事件** —— 宿主支持时,运行会追加 `data-quality/profile` / `data-quality/clean` / `data-quality/verify` 事件(支持处带 `ignorable` 标记)。在已发布的 `0.1.2-rc.1` 线上(与更早的 rc 线一样)按设计跳过 append —— storage domain 报告始终是持久副本(见「Known limitations」)。
27
27
 
28
28
  ## Quick start
29
29
 
@@ -154,7 +154,7 @@ const result = await ctx.dataQuality.verifyCitations({
154
154
 
155
155
  ## Known limitations
156
156
 
157
- - **会话事件是自适应的。** 0.1.1-rc.2 没有插件会话事件注册面,`Session.append` 也无法打 `ignorable` 标记;追加未知 `data-quality/*` 类型会让会话日志在恢复时被拒读。因此插件仅在宿主认识该词汇或支持 `ignorable` append 时才追加;在 rc.2 上 storage domain 报告即持久记录。
157
+ - **会话事件是自适应的。** 已发布的 `0.1.2-rc.1` 线(与更早的 rc 线一样)没有插件会话事件注册面,`Session.append` 也无法打 `ignorable` 标记;追加未知 `data-quality/*` 类型会让会话日志在恢复时被拒读。因此插件仅在宿主认识该词汇或支持 `ignorable` append 时才追加;在已发布线上 storage domain 报告即持久记录。
158
158
  - **CSV 方言** —— 逗号/制表符分隔、RFC-4180 引号、首行必须是表头、跳过空白行;无分隔符自动探测、无注释行。
159
159
  - **类型解析是严格的** —— 数字不带千分位;日期为 `YYYY-MM-DD` / `YYYY/MM/DD` / ISO 风格时间(UTC);布尔为 `true/false/yes/no/1/0`。其余一律按 `string`/`mixed` 梳理 —— 如有意图请用 `coerce-type` 清洗。
160
160
  - **JSON 对工具必须是表格**(扁平对象数组);`verifyCitations` 可行走任意 JSON 文档。
package/lib/index.js CHANGED
@@ -1172,7 +1172,7 @@ function computeAccuracy(stats, table, declaredSchema) {
1172
1172
  * @module dsh-data-quality/version
1173
1173
  */
1174
1174
  /** The package version reported in persisted reports. */
1175
- const VERSION = "0.3.6";
1175
+ const VERSION = "0.3.7";
1176
1176
  /**
1177
1177
  * Version of the persisted report schema. Bump it whenever a report's
1178
1178
  * canonical shape changes in a way old consumers cannot read (the durable
@@ -4,7 +4,7 @@
4
4
  * @module dsh-data-quality/version
5
5
  */
6
6
  /** The package version reported in persisted reports. */
7
- export declare const VERSION = "0.3.6";
7
+ export declare const VERSION = "0.3.7";
8
8
  /**
9
9
  * Version of the persisted report schema. Bump it whenever a report's
10
10
  * canonical shape changes in a way old consumers cannot read (the durable
@@ -4,7 +4,7 @@
4
4
  * @module dsh-data-quality/version
5
5
  */
6
6
  /** The package version reported in persisted reports. */
7
- export const VERSION = '0.3.6';
7
+ export const VERSION = '0.3.7';
8
8
  /**
9
9
  * Version of the persisted report schema. Bump it whenever a report's
10
10
  * canonical shape changes in a way old consumers cannot read (the durable
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-data-quality",
3
- "version": "0.3.6",
3
+ "version": "0.3.7",
4
4
  "description": "Deterministic data profiling, cleaning, and verification for DeepSeek Harness: a ctx.dataQuality capability seam (Service Definition / local Provider / tool Consumers) with data_profile, data_clean, and data_verify model tools, a frozen cross-plugin verifyCitations contract, durable reports in a storage domain, and data-quality/* session events on hosts that support them.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -97,11 +97,11 @@
97
97
  "packageManager": "pnpm@11.7.0",
98
98
  "peerDependencies": {
99
99
  "@deepseek-ai/cordis": "^4.0.2",
100
- "@deepseek-ai/dsh-session": ">=0.1.0-rc.8 <0.2.0",
101
- "@deepseek-ai/dsh-storage": ">=0.1.0-rc.8 <0.2.0",
102
- "@deepseek-ai/dsh-storage-domain": ">=0.1.0-rc.8 <0.2.0",
103
- "@deepseek-ai/dsh-storage-json": ">=0.1.0-rc.8 <0.2.0",
104
- "@deepseek-ai/dsh-tools": ">=0.1.0-rc.8 <0.2.0",
100
+ "@deepseek-ai/dsh-session": ">=0.1.2-rc.1 <0.2.0",
101
+ "@deepseek-ai/dsh-storage": ">=0.1.2-rc.1 <0.2.0",
102
+ "@deepseek-ai/dsh-storage-domain": ">=0.1.2-rc.1 <0.2.0",
103
+ "@deepseek-ai/dsh-storage-json": ">=0.1.2-rc.1 <0.2.0",
104
+ "@deepseek-ai/dsh-tools": ">=0.1.2-rc.1 <0.2.0",
105
105
  "@deepseek-ai/schemastery": "^3.18.2"
106
106
  },
107
107
  "dependencies": {
package/src/version.ts CHANGED
@@ -5,7 +5,7 @@
5
5
  */
6
6
 
7
7
  /** The package version reported in persisted reports. */
8
- export const VERSION = '0.3.6'
8
+ export const VERSION = '0.3.7'
9
9
 
10
10
  /**
11
11
  * Version of the persisted report schema. Bump it whenever a report's