dsh-industry-research 0.3.5 → 0.3.6

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
@@ -1,10 +1,17 @@
1
- # Changelog
1
+ # Changelog
2
2
 
3
3
  All notable changes to this project are documented in this file.
4
4
 
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.6] - 2026-09-08
9
+
10
+ ### Docs
11
+
12
+ - Repair GBK mojibake in historical CHANGELOG entries (em/en dashes, arrows, comparison signs, and two mangled Chinese taxonomy terms) and drop the hard-coded Chinese disclaimer prefix from the EN/ES/PT/HI README headlines; all restorations match the clean pre-corruption text; no behavior change.
13
+
14
+
8
15
  ## [0.3.5] - 2026-09-07
9
16
 
10
17
  ### Docs
@@ -46,7 +53,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
46
53
 
47
54
  ### Added
48
55
 
49
- - Multi-perspective bull/bear debate synthesis in `industry_report`: `synthesizePerspectives` deterministically derives bull and bear perspective points from the loaded artifacts and evidence, `renderPerspectivesNote` writes a `perspectives-note.md` artifact (appended to the SHA-256 ledger), and the report result gains a `perspectives` outcome 鈥?a forked subagent job when `ctx.jobs` is mounted, otherwise `skipped(jobs unavailable)`.
56
+ - Multi-perspective bull/bear debate synthesis in `industry_report`: `synthesizePerspectives` deterministically derives bull and bear perspective points from the loaded artifacts and evidence, `renderPerspectivesNote` writes a `perspectives-note.md` artifact (appended to the SHA-256 ledger), and the report result gains a `perspectives` outcome a forked subagent job when `ctx.jobs` is mounted, otherwise `skipped(jobs unavailable)`.
50
57
 
51
58
  ### Fixed
52
59
 
@@ -56,13 +63,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
56
63
 
57
64
  ### Added
58
65
 
59
- - Deterministic `chain.json` 鈫?SVG network renderer (`src/chain-svg.ts`): tier-column layout, directed arrow edges, and dual-rule bottleneck detection (funnel: in-degree 鈮?2 and out-degree 鈮?1; hub: in-degree 鈮?2 and out-degree 鈮?2) with highlight colors. `industry_map` gains a `renderSvg` flag that writes `chain.svg` beside `chain.json` and returns the bottleneck summary; all user text is XML-escaped and the output is byte-stable for the same input.
66
+ - Deterministic `chain.json` SVG network renderer (`src/chain-svg.ts`): tier-column layout, directed arrow edges, and dual-rule bottleneck detection (funnel: in-degree 2 and out-degree 1; hub: in-degree 2 and out-degree 2) with highlight colors. `industry_map` gains a `renderSvg` flag that writes `chain.svg` beside `chain.json` and returns the bottleneck summary; all user text is XML-escaped and the output is byte-stable for the same input.
60
67
  - Status assertions with dates: chain nodes and company cards may carry a `status` (`public`/`private`/`acquired`/`IPO`) that must carry a non-future `statusAsOf`; missing or future dates fail validation loud.
61
- - Price discipline and ticker validation: company cards accept sourced `metrics` (every value requires `source` + `asOf`) and a `ticker` checked against built-in formats (A-share 6 digits, US 1鈥? letters, HK 1鈥? digits), with the `scan.strictTicker` config exemption.
62
- - Research depth routing (`src/depth.ts`): `industry_map` / `industry_track` / `company_scan` accept a `depth` argument (quick/standard/comprehensive, default standard) that deterministically scales web collection 鈥?quick uses minimal source counts, comprehensive uses maximum 鈥?with loud failure out of range.
68
+ - Price discipline and ticker validation: company cards accept sourced `metrics` (every value requires `source` + `asOf`) and a `ticker` checked against built-in formats (A-share 6 digits, US 1–5 letters, HK 1–5 digits), with the `scan.strictTicker` config exemption.
69
+ - Research depth routing (`src/depth.ts`): `industry_map` / `industry_track` / `company_scan` accept a `depth` argument (quick/standard/comprehensive, default standard) that deterministically scales web collection quick uses minimal source counts, comprehensive uses maximum with loud failure out of range.
63
70
  - Per-company scan failure isolation: `company_scan` accepts a `companies` batch argument; one company's failure (bad file, path escape, validation) no longer aborts the batch and is reported in a `failures` list with its reason while the rest produce normally.
64
71
  - Artifact version ledger (`src/versions.ts` + `versions.jsonl` at the industry root): `industry_map` / `company_scan` / `industry_report` append a root-relative path + SHA-256 + injected timestamp + change type on every artifact write; artifact reads verify against the ledger and fail loud on a hash mismatch (unrecorded artifacts are skipped).
65
- - Built-in industry taxonomy anchor table (`src/taxonomy.ts`, 鍥芥皯缁忔祹琛屼笟鍒嗙被 澶х被 code-name-keywords); chain nodes may declare a `taxonomyCode` that must hit the table, with loud failure for unknown codes.
72
+ - Built-in industry taxonomy anchor table (`src/taxonomy.ts`, 国民经济行业分类 大类 code-name-keywords); chain nodes may declare a `taxonomyCode` that must hit the table, with loud failure for unknown codes.
66
73
  - Evidence category labels: timeline entries may carry an `evidenceCategory` (`confirmed-catalyst` / `market-narrative` / `forum-buzz` / `technical-confirmation` / `macro-amplifier` / `background-noise`) validated on write; the auto-draft groups timeline entries by category.
67
74
  - Delivery contract validation (`validateDeliveryContract`): `industry_report` runs a deterministic pre-production check (complete blocks, status assertions with dates, value assertions with source + asOf, no placeholder residue) and fails loud instead of emitting a half-assembled report.
68
75
  - Research-state memory (`src/research-state.ts` + `research-state.json` per industry): `industry_map` / `industry_track` persist the last run's depth, latest artifact hashes, source URLs, evidence-category counts, gaps, and an injected timestamp, and return a deterministic "vs last run" delta (new/removed sources, unchanged evidence); a corrupt state fails loud and the write is registered in `versions.jsonl`.
@@ -71,10 +78,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
71
78
 
72
79
  ### Deviations
73
80
 
74
- - **chain.json Slot client visualization UI** 鈥?needs a new client face plus packaging changes; the deterministic `chain.svg` artifact already covers the core value.
75
- - **Industry-expert subagent team (model orchestration)** 鈥?covered by failure isolation, depth routing, and adversarial review; a full model team exceeds this repo's determinism-first principle.
76
- - **Exa external retrieval service** 鈥?third-party API dependency, out of scope.
77
- - **Skill self-evolution (Hermes shadow agent)** 鈥?exceeds the DSH skill-provider mechanism.
81
+ - **chain.json Slot client visualization UI** needs a new client face plus packaging changes; the deterministic `chain.svg` artifact already covers the core value.
82
+ - **Industry-expert subagent team (model orchestration)** covered by failure isolation, depth routing, and adversarial review; a full model team exceeds this repo's determinism-first principle.
83
+ - **Exa external retrieval service** third-party API dependency, out of scope.
84
+ - **Skill self-evolution (Hermes shadow agent)** exceeds the DSH skill-provider mechanism.
78
85
 
79
86
  ## [0.1.3] - 2026-08-23
80
87
 
@@ -110,10 +117,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
110
117
  ### Added
111
118
 
112
119
  - Industry/company research domain pack: four workspace-bound tools and two methodology skills.
113
- - `industry_map` 鈥?validate and persist an industry chain map (`chain.json`): upstream/midstream/downstream nodes, edges, and metric slots where every value requires a `sourceRef` (unsourced values are rejected; value-less slots are explicit gaps). Seed notes/files and an optional `ctx.web` digest are registered as citable sources (`sources.json`).
114
- - `industry_track` 鈥?public-source policy/news tracking over the official `ctx.web` seam (never a hand-rolled fetch): per-topic search, host allow/block lists, `since` filtering, bounded snapshot fetches with SHA-256 provenance hashes, and append + dedupe into `timeline.jsonl` with a retention cap. Fails loud when `ctx.web` is unmounted or `offline: true`.
115
- - `company_scan` 鈥?company cards (`card.json` + `card.md`) from user-supplied workspace data files (hashed, with Markdown outlines and figure-candidate lines so every number cites a file and a line) plus an optional `ctx.web` citation complement. Text formats only in v1 (no PDF).
116
- - `industry_report` 鈥?report assembly with two paths: the frozen-contract `ctx.researchReport` engine (`assemble` 鈫?sealed directory + per-claim verdicts) when mounted, or an honest builtin fallback (`reports/<YYYYMMDD-HHmmss>/report.md` + `manifest.json` with a SHA-256 source-traceability table, claims marked `unverified`, `engine: 'builtin-fallback'`).
120
+ - `industry_map` validate and persist an industry chain map (`chain.json`): upstream/midstream/downstream nodes, edges, and metric slots where every value requires a `sourceRef` (unsourced values are rejected; value-less slots are explicit gaps). Seed notes/files and an optional `ctx.web` digest are registered as citable sources (`sources.json`).
121
+ - `industry_track` public-source policy/news tracking over the official `ctx.web` seam (never a hand-rolled fetch): per-topic search, host allow/block lists, `since` filtering, bounded snapshot fetches with SHA-256 provenance hashes, and append + dedupe into `timeline.jsonl` with a retention cap. Fails loud when `ctx.web` is unmounted or `offline: true`.
122
+ - `company_scan` company cards (`card.json` + `card.md`) from user-supplied workspace data files (hashed, with Markdown outlines and figure-candidate lines so every number cites a file and a line) plus an optional `ctx.web` citation complement. Text formats only in v1 (no PDF).
123
+ - `industry_report` report assembly with two paths: the frozen-contract `ctx.researchReport` engine (`assemble` sealed directory + per-claim verdicts) when mounted, or an honest builtin fallback (`reports/<YYYYMMDD-HHmmss>/report.md` + `manifest.json` with a SHA-256 source-traceability table, claims marked `unverified`, `engine: 'builtin-fallback'`).
117
124
  - Methodology skills `industry-research-method` and `company-research-method` (chain decomposition, supply/demand discipline, sourcing and gap-declaration discipline, compliance wording) published from the packaged `skills/` directory.
118
125
  - Typed Cordis events `industry-research/map`, `industry-research/track`, and `industry-research/report` emitted after each committed artifact.
119
- - Fail-loud Schemastery config (`industryRoot`, `fetchTimeoutMs`, `timelineMaxEntries`, `sourceAllowlist`/`sourceBlocklist`, `offline`, `skillsDir`, `track.*`, `scan.*`); vitest suites over the real 0.1.0-rc.6 `Context`/`Session`/`ToolRuntime`/`SkillRegistry`/`WebRuntime`; a keyless offline end-to-end suite over the 鐧介厭 fixtures.
126
+ - Fail-loud Schemastery config (`industryRoot`, `fetchTimeoutMs`, `timelineMaxEntries`, `sourceAllowlist`/`sourceBlocklist`, `offline`, `skillsDir`, `track.*`, `scan.*`); vitest suites over the real 0.1.0-rc.6 `Context`/`Session`/`ToolRuntime`/`SkillRegistry`/`WebRuntime`; a keyless offline end-to-end suite over the 白酒 fixtures.
package/README.es.md CHANGED
@@ -21,7 +21,7 @@
21
21
 
22
22
  ---
23
23
 
24
- **仅供研究,不构成投资建议 — Solo con fines de investigación; no constituye asesoramiento de inversión.** Este paquete solo apoya la investigación: sin trading, sin predicción de precios, sin fuentes de pago o con inicio de sesión.
24
+ **Solo con fines de investigación; no constituye asesoramiento de inversión.** Este paquete solo apoya la investigación: sin trading, sin predicción de precios, sin fuentes de pago o con inicio de sesión.
25
25
 
26
26
  ## Compatibility
27
27
 
package/README.hi.md CHANGED
@@ -21,7 +21,7 @@
21
21
 
22
22
  ---
23
23
 
24
- **仅供研究,不构成投资建议 — केवल अनुसंधान हेतु; निवेश सलाह नहीं।** यह पैक केवल अनुसंधान सहायता करता है: कोई ट्रेडिंग नहीं, कोई मूल्य पूर्वानुमान नहीं, कोई सशुल्क/लॉगिन-सुरक्षित स्रोत नहीं।
24
+ **केवल अनुसंधान हेतु; निवेश सलाह नहीं।** यह पैक केवल अनुसंधान सहायता करता है: कोई ट्रेडिंग नहीं, कोई मूल्य पूर्वानुमान नहीं, कोई सशुल्क/लॉगिन-सुरक्षित स्रोत नहीं।
25
25
 
26
26
  ## Compatibility
27
27
 
package/README.md CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
  ---
24
24
 
25
- **仅供研究,不构成投资建议 — Research only, not investment advice.** This pack does research support only: no trading, no price prediction, no paid/login-walled sources.
25
+ **Research only, not investment advice.** This pack does research support only: no trading, no price prediction, no paid/login-walled sources.
26
26
 
27
27
  ## Compatibility
28
28
 
package/README.pt.md CHANGED
@@ -21,7 +21,7 @@
21
21
 
22
22
  ---
23
23
 
24
- **仅供研究,不构成投资建议 — Apenas para pesquisa; não constitui aconselhamento de investimento.** Este pacote só apoia pesquisa: sem trading, sem previsão de preços, sem fontes pagas ou com login.
24
+ **Apenas para pesquisa; não constitui aconselhamento de investimento.** Este pacote só apoia pesquisa: sem trading, sem previsão de preços, sem fontes pagas ou com login.
25
25
 
26
26
  ## Compatibility
27
27
 
package/lib/index.js CHANGED
@@ -3672,7 +3672,7 @@ function buildIndustryReportTool(ctx, config) {
3672
3672
  * @module dsh-industry-research/version
3673
3673
  */
3674
3674
  /** The package version. */
3675
- const VERSION = "0.3.5";
3675
+ const VERSION = "0.3.6";
3676
3676
  //#endregion
3677
3677
  //#region src/index.ts
3678
3678
  /**
@@ -4,5 +4,5 @@
4
4
  * @module dsh-industry-research/version
5
5
  */
6
6
  /** The package version. */
7
- export declare const VERSION = "0.3.5";
7
+ export declare const VERSION = "0.3.6";
8
8
  //# sourceMappingURL=version.d.ts.map
@@ -4,5 +4,5 @@
4
4
  * @module dsh-industry-research/version
5
5
  */
6
6
  /** The package version. */
7
- export const VERSION = '0.3.5';
7
+ export const VERSION = '0.3.6';
8
8
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "dsh-industry-research",
3
- "version": "0.3.5",
4
- "description": "Industry and company research domain pack for DeepSeek Harness: methodology skills, an industry-chain structure model (industry_map), public-source policy/news tracking over ctx.web (industry_track), company scan cards (company_scan), and auditable research reports with an optional ctx.researchReport sealing bridge and a builtin Markdown fallback (industry_report). Research only 鈥?not investment advice.",
3
+ "version": "0.3.6",
4
+ "description": "Industry and company research domain pack for DeepSeek Harness: methodology skills, an industry-chain structure model (industry_map), public-source policy/news tracking over ctx.web (industry_track), company scan cards (company_scan), and auditable research reports with an optional ctx.researchReport sealing bridge and a builtin Markdown fallback (industry_report). Research only not investment advice.",
5
5
  "author": "dsh-industry-research contributors",
6
6
  "repository": {
7
7
  "type": "git",
package/src/version.ts CHANGED
@@ -5,4 +5,4 @@
5
5
  */
6
6
 
7
7
  /** The package version. */
8
- export const VERSION = '0.3.5'
8
+ export const VERSION = '0.3.6'