upstream-radar 0.4.0 → 0.5.0

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/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  <h1 align="center">Upstream Radar</h1>
9
9
 
10
- <p align="center"><strong>Dependency changes that wake your DSH Agent only when your project is actually affected.</strong></p>
10
+ <p align="center"><strong>Always-on vulnerability and breaking-change radar for DeepSeek Harness plugins.</strong></p>
11
11
 
12
12
  <p align="center">
13
13
  English · <a href="README.zh-CN.md">简体中文</a>
@@ -15,6 +15,7 @@
15
15
 
16
16
  <p align="center">
17
17
  <a href="https://www.npmjs.com/package/upstream-radar"><img alt="npm version" src="https://img.shields.io/npm/v/upstream-radar?style=flat-square&color=2563eb"></a>
18
+ <a href="https://github.com/MicroMilo/upstream-radar/stargazers"><img alt="GitHub stars" src="https://img.shields.io/github/stars/MicroMilo/upstream-radar?style=flat-square&color=f59e0b"></a>
18
19
  <a href="https://github.com/MicroMilo/upstream-radar/actions/workflows/ci.yml"><img alt="CI" src="https://img.shields.io/github/actions/workflow/status/MicroMilo/upstream-radar/ci.yml?branch=main&style=flat-square&label=CI"></a>
19
20
  <a href="examples/dsh/README.md"><img alt="Tested with DSH 0.1.0-rc.6" src="https://img.shields.io/badge/tested_with_DSH-0.1.0--rc.6-5b5bd6?style=flat-square"></a>
20
21
  <a href="https://github.com/MicroMilo/upstream-radar/releases"><img alt="GitHub release" src="https://img.shields.io/github/v/release/MicroMilo/upstream-radar?style=flat-square"></a>
@@ -22,21 +23,83 @@
22
23
  </p>
23
24
 
24
25
  <p align="center">
25
- <a href="#run-the-proof">Run the proof</a> ·
26
+ <a href="#see-one-incident">See one incident</a> ·
26
27
  <a href="#install-in-dsh">Install in DSH</a> ·
28
+ <a href="#run-the-proof">Run the proof</a> ·
27
29
  <a href="#how-the-loop-works">How it works</a> ·
28
30
  <a href="ROADMAP.md">Roadmap</a>
29
31
  </p>
30
32
 
31
33
  ---
32
34
 
33
- A vulnerability feed can tell you that a package is affected. It usually cannot tell you which DSH plugin brought that exact version into your profile, whether the vulnerable path reaches your project, or whether the available upgrade breaks DSH on the way out.
35
+ A vulnerability feed stops at “package X is affected.” Upstream Radar keeps going: it identifies the exact installed dependency path, maintains one durable incident, and wakes a [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) Agent with the project evidence needed for a useful investigation.
36
+
37
+ ```text
38
+ OSV advisory or npm release
39
+ -> exact installed plugin path
40
+ -> new / updated / resolved incident
41
+ -> project-specific DSH Agent analysis task
42
+ ```
43
+
44
+ **No matching installed path means no Agent wake-up.** Version matching and compatibility facts are calculated by code; the model handles only repository-specific judgment.
45
+
46
+ ## See one incident
47
+
48
+ If an advisory affects only one of two installed `parser` versions, Radar reports the path that actually matched:
49
+
50
+ ```text
51
+ [HIGH][NEW] Dependency vulnerability
52
+ Project: Payments API (payments-api)
53
+ Plugin: plugin@1.0.0
54
+ Affected: parser@2.9.0
55
+ Advisory: GHSA-demo-2026-parser / CVE-2026-1234
56
+ Paths:
57
+ plugin@1.0.0 -> logger@4.0.2 -> parser@2.9.0
58
+ Fixed versions: 3.0.0
59
+ Route: payments-platform via feishu:payments-security
60
+ ```
61
+
62
+ That incident becomes a plugin-originated DSH notice. It is not copied into a generic chatbot prompt.
34
63
 
35
- Upstream Radar closes that loop inside [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness):
64
+ | Upstream signal | Radar proves deterministically | DSH Agent investigates |
65
+ | --- | --- | --- |
66
+ | Vulnerability or malicious package | affected `name@version`, every installed path, fixed versions, incident state | whether project code reaches it, attacker input can reach it, and the least disruptive fix |
67
+ | Candidate npm release | version boundary and Node.js, peer, export, entrypoint, bundle, and dependency changes | which APIs or Cordis configuration would break and what migration is appropriate |
36
68
 
37
- - **Exact path, not a package-name guess.** It preserves physical dependency nodes, duplicate versions, and the root-to-package path that actually matched.
38
- - **An incident, not alert spam.** It stores `new`, `updated`, and `resolved` state and keeps only the current task for each incident.
39
- - **Program facts before model judgment.** Version matching and compatibility boundaries stay deterministic; the DSH Agent investigates only project-specific reachability and migration impact.
69
+ ## Install in DSH
70
+
71
+ Upstream Radar is an npm-published DSH bundle, so no install-time build permission is required:
72
+
73
+ ```bash
74
+ dsh plugin --profile web add upstream-radar@latest
75
+ ```
76
+
77
+ Generate the inventory from the DSH profile instead of writing the dependency graph by hand:
78
+
79
+ ```bash
80
+ pnpm dlx upstream-radar@latest init \
81
+ --profile web \
82
+ --project-name "My DSH project" \
83
+ --workspace "$PWD" \
84
+ --output ./upstream-radar.config.json
85
+ ```
86
+
87
+ The initializer reads the profile's actual third-party bundles, resolves each exact npm artifact with lifecycle scripts disabled, and writes a reviewable config. It never starts DSH or enables polling by itself. Review the generated file, then point the bundle at it and choose a durable state file:
88
+
89
+ ```bash
90
+ export UPSTREAM_RADAR_CONFIG=$PWD/upstream-radar.config.json
91
+ export UPSTREAM_RADAR_STATE=$PWD/upstream-radar.state.json
92
+ export UPSTREAM_RADAR_INTERVAL_SECONDS=1800
93
+
94
+ dsh --profile web --dump-config
95
+ dsh --profile web
96
+ ```
97
+
98
+ The generated graph is the exact public npm artifact graph for the installed bundle versions. If your DSH profile applies package-manager overrides, patches, or unusual peer resolution, review those differences before enabling continuous monitoring.
99
+
100
+ For a hand-written or CI fixture, use [the example inventory](examples/radar/config.json). If `UPSTREAM_RADAR_CONFIG` is not set, the bundle stays dormant and performs no polling.
101
+
102
+ Once running, Radar polls OSV and npm, persists incident state before delivery, and submits only changed incidents to the first live root DSH Agent.
40
103
 
41
104
  ## Run the proof
42
105
 
@@ -63,34 +126,7 @@ The command fails unless DSH proves all four facts:
63
126
  }
64
127
  ```
65
128
 
66
- This proof runs in CI on Node.js 22. See the executable [showcase contract](examples/dsh/README.md) and its checked-in [result](examples/dsh/reports/headless-smoke.json).
67
-
68
- To include a current OSV and npm poll before the DSH handoff:
69
-
70
- ```bash
71
- pnpm run try:dsh:live
72
- ```
73
-
74
- ## Install in DSH
75
-
76
- Upstream Radar is an npm-published DSH bundle, so no install-time build permission is required:
77
-
78
- ```bash
79
- dsh plugin --profile web add upstream-radar@0.4.0
80
- ```
81
-
82
- Point the bundle at an explicit project inventory, choose a durable state file, then boot the profile:
83
-
84
- ```bash
85
- export UPSTREAM_RADAR_CONFIG=/absolute/path/radar-config.json
86
- export UPSTREAM_RADAR_STATE=/absolute/path/radar-state.json
87
- export UPSTREAM_RADAR_INTERVAL_SECONDS=1800
88
-
89
- dsh --profile web --dump-config
90
- dsh --profile web
91
- ```
92
-
93
- Start from [the example inventory](examples/radar/config.json). If `UPSTREAM_RADAR_CONFIG` is not set, the bundle stays dormant and performs no polling.
129
+ This proof runs in CI on Node.js 22. See the executable [showcase contract](examples/dsh/README.md) and its checked-in [result](examples/dsh/reports/headless-smoke.json). Run `pnpm run try:dsh:live` to include a current OSV and npm poll before the DSH handoff.
94
130
 
95
131
  ## How the loop works
96
132
 
@@ -114,7 +150,7 @@ The handoff uses `ctx.agents.roots()[0].followup(...)` with:
114
150
 
115
151
  It is a native DSH lifecycle integration—not a chat bridge or a remote-control bot.
116
152
 
117
- ## One vulnerable path, not a false-positive package name
153
+ ## Why package-name alerts are not enough
118
154
 
119
155
  Given this installed graph:
120
156
 
@@ -127,18 +163,7 @@ plugin@1.0.0
127
163
  └── parser@2.9.0
128
164
  ```
129
165
 
130
- an advisory affecting only `parser@2.9.0` produces:
131
-
132
- ```text
133
- [HIGH][NEW] Dependency vulnerability
134
- Project: Payments API (payments-api)
135
- Plugin: plugin@1.0.0
136
- Affected: parser@2.9.0
137
- Path: plugin@1.0.0 -> logger@4.0.2 -> parser@2.9.0
138
- Fixed versions: 3.0.0
139
- ```
140
-
141
- The unaffected `parser@3.2.1` remains a distinct node.
166
+ an advisory affecting `parser@2.9.0` matches only the `plugin -> logger -> parser` branch. The unaffected `parser@3.2.1` remains a distinct physical node instead of becoming a package-name false positive.
142
167
 
143
168
  ## Vulnerabilities are only half the upstream problem
144
169
 
@@ -195,7 +220,7 @@ upstream-radar inspect npm:dsh-cloudflare-browser-run@0.1.1 --deep
195
220
 
196
221
  ## Current boundaries
197
222
 
198
- - Project inventory is explicit JSON; active DSH profile discovery is not implemented yet.
223
+ - `init --profile <name>` discovers a named DSH profile and generates a reviewable inventory; automatic active-profile selection and native pnpm override/peer resolution are not implemented yet.
199
224
  - npm lock graphs are supported; pnpm and Yarn graph adapters are not implemented.
200
225
  - OSV and npm `latest` are the live sources; GitHub release and migration-guide ingestion are deferred.
201
226
  - Delivery currently targets the first live root Agent rather than a project-specific session.
@@ -214,6 +239,7 @@ Upstream Radar is alpha software built for the developer-preview DSH ecosystem.
214
239
  - [Threat model](docs/threat-model.md)
215
240
  - [Roadmap](ROADMAP.md)
216
241
  - [Changelog](CHANGELOG.md)
242
+ - [Release process](docs/releasing.md)
217
243
  - [Contributing](CONTRIBUTING.md)
218
244
  - [Security policy](SECURITY.md)
219
245
 
package/README.zh-CN.md CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  <h1 align="center">Upstream Radar</h1>
9
9
 
10
- <p align="center"><strong>只有当上游变化真正命中项目时,才唤醒你的 DSH Agent。</strong></p>
10
+ <p align="center"><strong>面向 DeepSeek Harness 插件的常驻漏洞与破坏性更新雷达。</strong></p>
11
11
 
12
12
  <p align="center">
13
13
  <a href="README.md">English</a> · 简体中文
@@ -15,20 +15,83 @@
15
15
 
16
16
  <p align="center">
17
17
  <a href="https://www.npmjs.com/package/upstream-radar"><img alt="npm 版本" src="https://img.shields.io/npm/v/upstream-radar?style=flat-square&color=2563eb"></a>
18
+ <a href="https://github.com/MicroMilo/upstream-radar/stargazers"><img alt="GitHub Stars" src="https://img.shields.io/github/stars/MicroMilo/upstream-radar?style=flat-square&color=f59e0b"></a>
18
19
  <a href="https://github.com/MicroMilo/upstream-radar/actions/workflows/ci.yml"><img alt="CI" src="https://img.shields.io/github/actions/workflow/status/MicroMilo/upstream-radar/ci.yml?branch=main&style=flat-square&label=CI"></a>
19
20
  <a href="examples/dsh/README.md"><img alt="已使用 DSH 0.1.0-rc.6 验证" src="https://img.shields.io/badge/tested_with_DSH-0.1.0--rc.6-5b5bd6?style=flat-square"></a>
21
+ <a href="https://github.com/MicroMilo/upstream-radar/releases"><img alt="GitHub Release" src="https://img.shields.io/github/v/release/MicroMilo/upstream-radar?style=flat-square"></a>
20
22
  <a href="LICENSE"><img alt="Apache-2.0 许可证" src="https://img.shields.io/badge/license-Apache--2.0-0f766e?style=flat-square"></a>
21
23
  </p>
22
24
 
23
25
  ---
24
26
 
25
- 普通漏洞源只能告诉你“某个包有问题”。它通常无法回答:这个精确版本是被哪个 DSH 插件带进来的、真实依赖路径是什么、项目是否会触发漏洞,以及升级时会不会顺手破坏 DSH 兼容性。
27
+ 普通漏洞源到“某个包有问题”就结束了。Upstream Radar 会继续找到实际安装的依赖路径,维护一个可持续更新的事件,再把带有项目证据的调查任务交给 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) Agent。
26
28
 
27
- Upstream Radar 把这条链路闭合在 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) 内部:
29
+ ```text
30
+ OSV 漏洞公告或 npm 新版本
31
+ -> 真正命中的插件依赖路径
32
+ -> new / updated / resolved 事件
33
+ -> 面向具体项目的 DSH Agent 分析任务
34
+ ```
35
+
36
+ **没有命中实际安装路径,就不会唤醒 Agent。** 版本匹配和兼容性事实由程序计算;模型只负责结合仓库做判断。
37
+
38
+ ## 先看一个真实事件
39
+
40
+ 同一个插件里安装了两个 `parser` 版本,而公告只影响其中一个时,Radar 会报告真正命中的路径:
41
+
42
+ ```text
43
+ [HIGH][NEW] Dependency vulnerability
44
+ Project: Payments API (payments-api)
45
+ Plugin: plugin@1.0.0
46
+ Affected: parser@2.9.0
47
+ Advisory: GHSA-demo-2026-parser / CVE-2026-1234
48
+ Paths:
49
+ plugin@1.0.0 -> logger@4.0.2 -> parser@2.9.0
50
+ Fixed versions: 3.0.0
51
+ Route: payments-platform via feishu:payments-security
52
+ ```
53
+
54
+ 这个事件会成为带有插件身份的 DSH notice,而不是被复制进一段泛泛的聊天提示词。
55
+
56
+ | 上游信号 | Radar 用程序确定 | DSH Agent 结合项目调查 |
57
+ | --- | --- | --- |
58
+ | 漏洞或恶意软件包 | 受影响的精确版本、每条安装路径、修复版本和事件状态 | 项目是否调用、攻击者输入能否到达、代价最低的修复办法 |
59
+ | npm 候选版本 | 版本边界,以及 Node、peer、exports、入口、bundle 和依赖变化 | 哪些 API 或 Cordis 配置会受影响、应该如何迁移 |
60
+
61
+ ## 安装到 DSH
62
+
63
+ Upstream Radar 发布的是已经构建好的 npm bundle,不需要开放安装期构建权限:
64
+
65
+ ```bash
66
+ dsh plugin --profile web add upstream-radar@latest
67
+ ```
68
+
69
+ 不用手写依赖图,可以直接从 DSH profile 生成项目清单:
70
+
71
+ ```bash
72
+ pnpm dlx upstream-radar@latest init \
73
+ --profile web \
74
+ --project-name "我的 DSH 项目" \
75
+ --workspace "$PWD" \
76
+ --output ./upstream-radar.config.json
77
+ ```
78
+
79
+ 初始化命令会读取 profile 中实际安装的第三方 bundle,用禁用 lifecycle scripts 的方式解析每个精确 npm artifact,然后写出一份可审查的配置。它不会自行启动 DSH,也不会自行开启轮询。检查生成文件后,再指定清单、持久化状态文件并启动 profile:
80
+
81
+ ```bash
82
+ export UPSTREAM_RADAR_CONFIG=$PWD/upstream-radar.config.json
83
+ export UPSTREAM_RADAR_STATE=$PWD/upstream-radar.state.json
84
+ export UPSTREAM_RADAR_INTERVAL_SECONDS=1800
85
+
86
+ dsh --profile web --dump-config
87
+ dsh --profile web
88
+ ```
89
+
90
+ 生成的依赖图对应已安装 bundle 版本的精确公共 npm artifact。如果你的 DSH profile 使用了 package-manager override、patch 或特殊的 peer 解析规则,开启持续监控前仍需要人工检查这些差异。
91
+
92
+ 如果需要手写配置或制作 CI fixture,可以参考[示例清单](examples/radar/config.json)。如果没有设置 `UPSTREAM_RADAR_CONFIG`,插件会保持休眠,不发起轮询。
28
93
 
29
- - **看精确路径,不按包名猜。** 保留物理依赖节点、重复版本和真正命中的完整路径。
30
- - **维护事件状态,不制造告警洪水。** 记录 `new`、`updated`、`resolved`,同一事件只保留当前任务。
31
- - **程序先确定事实,模型只做判断。** 版本命中和兼容边界由程序计算;DSH Agent 只调查项目可达性和迁移影响。
94
+ 启动后,Radar 会轮询 OSV 与 npm,先把事件状态持久化,再把有变化的事件交给第一个在线的根 DSH Agent。
32
95
 
33
96
  ## 在真实 DSH 中运行证明
34
97
 
@@ -53,32 +116,7 @@ pnpm run try:dsh
53
116
  }
54
117
  ```
55
118
 
56
- 要把当前 OSV npm 数据也加入启动轮询:
57
-
58
- ```bash
59
- pnpm run try:dsh:live
60
- ```
61
-
62
- ## 安装到 DSH
63
-
64
- Upstream Radar 发布的是已经构建好的 npm bundle,不需要开放安装期构建权限:
65
-
66
- ```bash
67
- dsh plugin --profile web add upstream-radar@0.4.0
68
- ```
69
-
70
- 指定项目清单和持久化状态文件后启动 profile:
71
-
72
- ```bash
73
- export UPSTREAM_RADAR_CONFIG=/absolute/path/radar-config.json
74
- export UPSTREAM_RADAR_STATE=/absolute/path/radar-state.json
75
- export UPSTREAM_RADAR_INTERVAL_SECONDS=1800
76
-
77
- dsh --profile web --dump-config
78
- dsh --profile web
79
- ```
80
-
81
- 可以从[示例清单](examples/radar/config.json)开始。如果没有设置 `UPSTREAM_RADAR_CONFIG`,插件会保持休眠,不发起轮询。
119
+ 运行 `pnpm run try:dsh:live`,可以在 DSH 投递前加入一次当前 OSV npm 数据轮询。
82
120
 
83
121
  ## 闭环如何工作
84
122
 
@@ -102,7 +140,7 @@ dsh --profile web
102
140
 
103
141
  这是 DSH 原生生命周期集成,不是聊天机器人,也不是远程控制入口。
104
142
 
105
- ## 一个真实命中的路径
143
+ ## 为什么只按包名告警不够
106
144
 
107
145
  ```text
108
146
  plugin@1.0.0
@@ -113,18 +151,7 @@ plugin@1.0.0
113
151
  └── parser@2.9.0
114
152
  ```
115
153
 
116
- 如果公告只影响 `parser@2.9.0`,Radar 输出的是:
117
-
118
- ```text
119
- [HIGH][NEW] Dependency vulnerability
120
- Project: Payments API (payments-api)
121
- Plugin: plugin@1.0.0
122
- Affected: parser@2.9.0
123
- Path: plugin@1.0.0 -> logger@4.0.2 -> parser@2.9.0
124
- Fixed versions: 3.0.0
125
- ```
126
-
127
- 不受影响的 `parser@3.2.1` 仍然是独立节点。
154
+ 如果公告只影响 `parser@2.9.0`,它只会命中 `plugin -> logger -> parser` 这条分支。不受影响的 `parser@3.2.1` 仍然是独立的物理节点,不会变成按包名产生的误报。
128
155
 
129
156
  ## 不只监控漏洞,也监控 breaking changes
130
157
 
@@ -149,7 +176,7 @@ DSH Agent 收到的任务要求:只读分析、引用项目证据、保留不
149
176
 
150
177
  已经支持:npm lock 依赖图、重复版本路径、OSV 精确版本匹配、恶意包记录、npm release 监听、持久事件、DSH 原生投递,以及 Node/peer/exports/入口/bundle/版本边界检查。
151
178
 
152
- 暂未支持:自动发现当前 DSH profilepnpm/Yarn 图适配、GitHub release 与迁移文档源、项目级 Session 精确路由、把 Agent 结论写回事件,以及自动创建 Issue 或 PR。
179
+ `init --profile <name>` 已经可以发现指定的 DSH profile 并生成可审查清单;暂未支持自动选择当前 active profile、原生解析 pnpm override/peer 规则、Yarn 图适配、GitHub release 与迁移文档源、项目级 Session 精确路由、把 Agent 结论写回事件,以及自动创建 Issue 或 PR。
153
180
 
154
181
  Upstream Radar 目前是面向 DSH developer preview 生态的 alpha 软件,事件结构和适配边界仍可能变化。
155
182
 
@@ -162,6 +189,7 @@ Upstream Radar 目前是面向 DSH developer preview 生态的 alpha 软件,
162
189
  - [威胁模型](docs/threat-model.md)
163
190
  - [Roadmap](ROADMAP.md)
164
191
  - [Changelog](CHANGELOG.md)
192
+ - [发布流程](docs/releasing.md)
165
193
  - [贡献指南](CONTRIBUTING.md)
166
194
  - [安全策略](SECURITY.md)
167
195
 
package/dist/src/cli.js CHANGED
@@ -4,6 +4,7 @@ import { readFile } from 'node:fs/promises';
4
4
  import { resolve } from 'node:path';
5
5
  import { assessCompatibilityChange } from './compatibility.js';
6
6
  import { createAnalysisTask, renderAgentAnalysisPrompt } from './dsh-analysis.js';
7
+ import { createRadarConfigFromDshProfile, resolveDshProfileDirectory, writeRadarConfig } from './init.js';
7
8
  import { parsePackageManifestSnapshot, parseRadarConfig } from './inventory.js';
8
9
  import { inspectNpmPackage } from './npm.js';
9
10
  import { NpmReleaseClient } from './npm-release.js';
@@ -23,6 +24,7 @@ function usage() {
23
24
  return `Upstream Radar — always-on dependency and compatibility monitoring for DSH plugins
24
25
 
25
26
  Usage:
27
+ upstream-radar init --profile <name> [options]
26
28
  upstream-radar scan <directory> [--json] [--fail-on <warn|review|block|never>]
27
29
  upstream-radar inspect npm:<package>@<exact-version> [--deep] [--json] [--fail-on <warn|review|block|never>]
28
30
  upstream-radar radar check <config.json> [--state <state.json>] [--json]
@@ -33,6 +35,7 @@ Usage:
33
35
  upstream-radar version
34
36
 
35
37
  Commands:
38
+ init discover third-party bundles in a DSH profile and write a reviewable inventory
36
39
  scan bounded, read-only inspection of a local package directory
37
40
  inspect fetch and verify the exact npm artifact before inspecting its contents
38
41
  radar monitor vulnerability changes or assess a candidate compatibility change
@@ -44,6 +47,9 @@ Options:
44
47
  --state <path> persistent radar state (default: <config.json>.state.json)
45
48
  --osv-base-url <url> alternate HTTPS OSV API base URL
46
49
  --notes <path> release notes used as untrusted compatibility evidence
50
+ --profile <name> DSH profile to inspect for init (default DSH_HOME/profiles/<name>)
51
+ --output <path> init output path (default: ./upstream-radar.config.json)
52
+ --force allow init to replace an existing output file
47
53
  --json emit the canonical JSON report
48
54
  --fail-on <verdict> CI threshold; default is review
49
55
 
@@ -212,6 +218,80 @@ async function runRadar(args) {
212
218
  : `${renderRadarEvents(events)}Prepared ${analysisTasks.length} DSH compatibility analysis task(s).\n`);
213
219
  return 0;
214
220
  }
221
+ async function runInit(args) {
222
+ let profile;
223
+ let output = 'upstream-radar.config.json';
224
+ let projectId;
225
+ let projectName;
226
+ let repository;
227
+ let workspace;
228
+ let registry;
229
+ let force = false;
230
+ let json = false;
231
+ const channels = [];
232
+ for (let index = 0; index < args.length; index += 1) {
233
+ const argument = args[index];
234
+ if (argument === '--force')
235
+ force = true;
236
+ else if (argument === '--json')
237
+ json = true;
238
+ else if (argument === '--profile' || argument === '--output' || argument === '--project-id'
239
+ || argument === '--project-name' || argument === '--repository' || argument === '--workspace'
240
+ || argument === '--channel' || argument === '--registry') {
241
+ const value = args[index + 1];
242
+ if (value === undefined || value.startsWith('-'))
243
+ throw new Error(`${argument} requires a value`);
244
+ if (argument === '--profile')
245
+ profile = value;
246
+ else if (argument === '--output')
247
+ output = value;
248
+ else if (argument === '--project-id')
249
+ projectId = value;
250
+ else if (argument === '--project-name')
251
+ projectName = value;
252
+ else if (argument === '--repository')
253
+ repository = value;
254
+ else if (argument === '--workspace')
255
+ workspace = value;
256
+ else if (argument === '--channel')
257
+ channels.push(value);
258
+ else
259
+ registry = value;
260
+ index += 1;
261
+ }
262
+ else {
263
+ throw new Error(`unknown option for init: ${argument}`);
264
+ }
265
+ }
266
+ if (profile === undefined)
267
+ throw new Error('init requires --profile <name>');
268
+ const config = await createRadarConfigFromDshProfile({
269
+ profileDirectory: resolveDshProfileDirectory(profile),
270
+ ...(projectId === undefined ? {} : { projectId }),
271
+ ...(projectName === undefined ? {} : { projectName }),
272
+ ...(repository === undefined ? {} : { repository }),
273
+ ...(workspace === undefined ? {} : { workspace }),
274
+ ...(channels.length === 0 ? {} : { channels }),
275
+ ...(registry === undefined ? {} : { registry }),
276
+ });
277
+ const outputPath = await writeRadarConfig(config, { output, force });
278
+ const plugins = config.projects[0]?.plugins ?? [];
279
+ if (json) {
280
+ process.stdout.write(`${JSON.stringify({ output: outputPath, profile, plugins: plugins.map(plugin => ({
281
+ name: plugin.package.name,
282
+ version: plugin.package.version,
283
+ nodes: plugin.graph.nodes.length,
284
+ edges: plugin.graph.edges.length,
285
+ })) }, null, 2)}\n`);
286
+ }
287
+ else {
288
+ process.stdout.write(`Created ${outputPath}\nDiscovered ${plugins.length} DSH plugin bundle(s):\n`);
289
+ for (const plugin of plugins)
290
+ process.stdout.write(` ${plugin.package.name}@${plugin.package.version} (${plugin.graph.nodes.length} dependency nodes)\n`);
291
+ process.stdout.write('\nReview the generated inventory, then set UPSTREAM_RADAR_CONFIG before starting DSH.\n');
292
+ }
293
+ return 0;
294
+ }
215
295
  async function main(args) {
216
296
  const command = args[0];
217
297
  if (command === undefined || command === '--help' || command === '-h' || command === 'help') {
@@ -222,6 +302,8 @@ async function main(args) {
222
302
  process.stdout.write(`${TOOL_VERSION}\n`);
223
303
  return 0;
224
304
  }
305
+ if (command === 'init')
306
+ return runInit(args.slice(1));
225
307
  if (command === 'radar')
226
308
  return runRadar(args.slice(1));
227
309
  if (command === 'task')
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ export { emptyRadarState, pollRadar, type AdvisorySource, type RadarPollResult,
8
8
  export { assessCompatibilityChange, assessCompatibilityChanges, type CompatibilityChangeInput } from './compatibility.js';
9
9
  export { createAnalysisTask, renderAgentAnalysisPrompt, renderDshAnalysisPrompt } from './dsh-analysis.js';
10
10
  export { parsePackageManifestSnapshot, parseRadarConfig } from './inventory.js';
11
+ export { createRadarConfigFromDshProfile, resolveDshProfileDirectory, writeRadarConfig, type DshInitOptions, type InitInspector, type WriteRadarConfigOptions, } from './init.js';
11
12
  export { loadRadarState, parseRadarState, saveRadarState } from './radar-state.js';
12
13
  export { renderRadarEvent, renderRadarEvents } from './radar-render.js';
13
14
  export { crossesBreakingVersionBoundary, parseSemver, satisfiesSemverRange } from './semver.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5E,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,wBAAwB,EACxB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,aAAa,GACnB,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AACnE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAA;AACvE,OAAO,EAAE,gBAAgB,EAAE,KAAK,uBAAuB,EAAE,KAAK,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAC7G,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AACtH,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,KAAK,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AACzH,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAC1G,OAAO,EAAE,4BAA4B,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAC/E,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAClF,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,8BAA8B,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAC/F,OAAO,EAAE,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,KAAK,gBAAgB,EAAE,KAAK,QAAQ,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAA;AACjG,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EACL,aAAa,EACb,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,uBAAuB,EAC5B,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,OAAO,EACZ,KAAK,oBAAoB,GAC1B,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,GACxB,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5E,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,wBAAwB,EACxB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,aAAa,GACnB,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AACnE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAA;AACvE,OAAO,EAAE,gBAAgB,EAAE,KAAK,uBAAuB,EAAE,KAAK,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAC7G,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AACtH,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,KAAK,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AACzH,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAC1G,OAAO,EAAE,4BAA4B,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAC/E,OAAO,EACL,+BAA+B,EAC/B,0BAA0B,EAC1B,gBAAgB,EAChB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,uBAAuB,GAC7B,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAClF,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,8BAA8B,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAC/F,OAAO,EAAE,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,KAAK,gBAAgB,EAAE,KAAK,QAAQ,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAA;AACjG,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EACL,aAAa,EACb,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,uBAAuB,EAC5B,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,OAAO,EACZ,KAAK,oBAAoB,GAC1B,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,GACxB,MAAM,kBAAkB,CAAA"}
package/dist/src/index.js CHANGED
@@ -8,6 +8,7 @@ export { emptyRadarState, pollRadar } from './radar.js';
8
8
  export { assessCompatibilityChange, assessCompatibilityChanges } from './compatibility.js';
9
9
  export { createAnalysisTask, renderAgentAnalysisPrompt, renderDshAnalysisPrompt } from './dsh-analysis.js';
10
10
  export { parsePackageManifestSnapshot, parseRadarConfig } from './inventory.js';
11
+ export { createRadarConfigFromDshProfile, resolveDshProfileDirectory, writeRadarConfig, } from './init.js';
11
12
  export { loadRadarState, parseRadarState, saveRadarState } from './radar-state.js';
12
13
  export { renderRadarEvent, renderRadarEvents } from './radar-render.js';
13
14
  export { crossesBreakingVersionBoundary, parseSemver, satisfiesSemverRange } from './semver.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5E,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,wBAAwB,GAIzB,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AACnE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAyB,MAAM,UAAU,CAAA;AACvE,OAAO,EAAE,gBAAgB,EAA4D,MAAM,kBAAkB,CAAA;AAC7G,OAAO,EAAE,eAAe,EAAE,SAAS,EAAiE,MAAM,YAAY,CAAA;AACtH,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAiC,MAAM,oBAAoB,CAAA;AACzH,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAC1G,OAAO,EAAE,4BAA4B,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAC/E,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAClF,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,8BAA8B,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAC/F,OAAO,EAAE,aAAa,EAAoB,MAAM,WAAW,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAyD,MAAM,UAAU,CAAA;AACjG,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EACL,aAAa,GAcd,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,GAqBnB,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5E,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,wBAAwB,GAIzB,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AACnE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAyB,MAAM,UAAU,CAAA;AACvE,OAAO,EAAE,gBAAgB,EAA4D,MAAM,kBAAkB,CAAA;AAC7G,OAAO,EAAE,eAAe,EAAE,SAAS,EAAiE,MAAM,YAAY,CAAA;AACtH,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAiC,MAAM,oBAAoB,CAAA;AACzH,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAC1G,OAAO,EAAE,4BAA4B,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAC/E,OAAO,EACL,+BAA+B,EAC/B,0BAA0B,EAC1B,gBAAgB,GAIjB,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAClF,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,8BAA8B,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAC/F,OAAO,EAAE,aAAa,EAAoB,MAAM,WAAW,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAyD,MAAM,UAAU,CAAA;AACjG,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EACL,aAAa,GAcd,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,GAqBnB,MAAM,kBAAkB,CAAA"}
@@ -0,0 +1,33 @@
1
+ import { type InspectNpmOptions } from './npm.js';
2
+ import { type DependencyGraph, type RadarConfig } from './radar-types.js';
3
+ type InitInspection = {
4
+ evidence: {
5
+ npm?: {
6
+ dependencyAudit: {
7
+ graph?: DependencyGraph;
8
+ };
9
+ };
10
+ };
11
+ };
12
+ export type InitInspector = (spec: string, options: InspectNpmOptions) => Promise<InitInspection>;
13
+ export interface DshInitOptions {
14
+ profileDirectory: string;
15
+ projectId?: string;
16
+ projectName?: string;
17
+ repository?: string;
18
+ workspace?: string;
19
+ channels?: string[];
20
+ registry?: string;
21
+ inspect?: InitInspector;
22
+ }
23
+ export interface WriteRadarConfigOptions {
24
+ output: string;
25
+ force?: boolean;
26
+ }
27
+ /** Resolve a DSH profile using the same DSH_HOME convention as the launcher. */
28
+ export declare function resolveDshProfileDirectory(profile: string, dshHome?: string | undefined): string;
29
+ /** Build a reviewable Radar inventory from the third-party bundles in a DSH profile. */
30
+ export declare function createRadarConfigFromDshProfile(options: DshInitOptions): Promise<RadarConfig>;
31
+ export declare function writeRadarConfig(config: RadarConfig, options: WriteRadarConfigOptions): Promise<string>;
32
+ export {};
33
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/init.ts"],"names":[],"mappings":"AAGA,OAAO,EAAqB,KAAK,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAEpE,OAAO,EAGL,KAAK,eAAe,EAGpB,KAAK,WAAW,EACjB,MAAM,kBAAkB,CAAA;AAIzB,KAAK,cAAc,GAAG;IACpB,QAAQ,EAAE;QACR,GAAG,CAAC,EAAE;YACJ,eAAe,EAAE;gBACf,KAAK,CAAC,EAAE,eAAe,CAAA;aACxB,CAAA;SACF,CAAA;KACF,CAAA;CACF,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,cAAc,CAAC,CAAA;AAEjG,MAAM,WAAW,cAAc;IAC7B,gBAAgB,EAAE,MAAM,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,aAAa,CAAA;CACxB;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAgDD,gFAAgF;AAChF,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,qBAAuB,GAAG,MAAM,CAOlG;AAED,wFAAwF;AACxF,wBAAsB,+BAA+B,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAsDnG;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC,CAa7G"}
@@ -0,0 +1,133 @@
1
+ import { access, readFile, writeFile } from 'node:fs/promises';
2
+ import { homedir } from 'node:os';
3
+ import { basename, isAbsolute, join, relative, resolve } from 'node:path';
4
+ import { inspectNpmPackage } from './npm.js';
5
+ import { parsePackageManifestSnapshot, parseRadarConfig } from './inventory.js';
6
+ import { INVENTORY_SCHEMA, RADAR_CONFIG_SCHEMA, } from './radar-types.js';
7
+ const MAX_JSON_BYTES = 8 * 1024 * 1024;
8
+ function asRecord(value, label) {
9
+ if (typeof value !== 'object' || value === null || Array.isArray(value))
10
+ throw new Error(`${label} must be an object`);
11
+ return value;
12
+ }
13
+ function requiredString(value, label) {
14
+ if (typeof value !== 'string' || value.length === 0 || value.length > 4_096)
15
+ throw new Error(`${label} must be a non-empty string`);
16
+ return value;
17
+ }
18
+ async function readJson(path) {
19
+ const contents = await readFile(path, 'utf8');
20
+ if (Buffer.byteLength(contents) > MAX_JSON_BYTES)
21
+ throw new Error(`${path} exceeds the ${MAX_JSON_BYTES} byte limit`);
22
+ try {
23
+ return JSON.parse(contents);
24
+ }
25
+ catch {
26
+ throw new Error(`${path} is not valid JSON`);
27
+ }
28
+ }
29
+ async function readPackageManifest(profileDirectory, packageName) {
30
+ const nodeModulesDirectory = resolve(profileDirectory, 'node_modules');
31
+ const path = resolve(nodeModulesDirectory, packageName, 'package.json');
32
+ const relativePath = relative(nodeModulesDirectory, path);
33
+ if (relativePath.startsWith('..') || isAbsolute(relativePath)) {
34
+ throw new Error(`DSH bundle name escapes the profile node_modules directory: ${packageName}`);
35
+ }
36
+ return parsePackageManifestSnapshot(await readJson(path));
37
+ }
38
+ function isDshInfrastructure(packageName) {
39
+ return packageName === 'upstream-radar'
40
+ || packageName === 'cordis'
41
+ || packageName.startsWith('@deepseek-ai/')
42
+ || packageName.startsWith('@cordis/');
43
+ }
44
+ function defaultProjectId(workspace) {
45
+ const name = basename(resolve(workspace)).toLowerCase().replace(/[^a-z0-9._-]+/g, '-');
46
+ return name.replace(/^-+|-+$/g, '').slice(0, 512) || 'dsh-project';
47
+ }
48
+ function defaultProjectName(workspace) {
49
+ return basename(resolve(workspace)) || 'DSH project';
50
+ }
51
+ /** Resolve a DSH profile using the same DSH_HOME convention as the launcher. */
52
+ export function resolveDshProfileDirectory(profile, dshHome = process.env.DSH_HOME) {
53
+ const home = dshHome?.trim() === '' || dshHome === undefined ? join(homedir(), '.dsh') : dshHome;
54
+ const profileName = requiredString(profile, 'profile');
55
+ if (!/^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(profileName)) {
56
+ throw new Error('profile must be a simple DSH profile name (letters, numbers, ., _, and -)');
57
+ }
58
+ return resolve(home, 'profiles', profileName);
59
+ }
60
+ /** Build a reviewable Radar inventory from the third-party bundles in a DSH profile. */
61
+ export async function createRadarConfigFromDshProfile(options) {
62
+ const profileDirectory = resolve(options.profileDirectory);
63
+ const profileManifest = asRecord(await readJson(join(profileDirectory, 'package.json')), 'DSH profile package.json');
64
+ const dsh = asRecord(profileManifest.dsh, 'DSH profile dsh');
65
+ const profile = asRecord(dsh.profile, 'DSH profile dsh.profile');
66
+ const bundles = profile.bundles;
67
+ if (!Array.isArray(bundles) || bundles.length === 0 || !bundles.every(item => typeof item === 'string')) {
68
+ throw new Error('DSH profile package.json does not contain dsh.profile.bundles');
69
+ }
70
+ const workspace = options.workspace ?? process.cwd();
71
+ const projectId = options.projectId ?? defaultProjectId(workspace);
72
+ const projectName = options.projectName ?? defaultProjectName(workspace);
73
+ const inspect = options.inspect ?? inspectNpmPackage;
74
+ const plugins = [];
75
+ for (const packageName of bundles) {
76
+ if (isDshInfrastructure(packageName))
77
+ continue;
78
+ const manifest = await readPackageManifest(profileDirectory, packageName);
79
+ if (manifest.name !== packageName) {
80
+ throw new Error(`installed manifest name ${manifest.name} does not match DSH bundle ${packageName}`);
81
+ }
82
+ const report = await inspect(`npm:${manifest.name}@${manifest.version}`, {
83
+ deep: true,
84
+ ...(options.registry === undefined ? {} : { registry: options.registry }),
85
+ });
86
+ const graph = report.evidence.npm?.dependencyAudit.graph;
87
+ if (graph === undefined) {
88
+ throw new Error(`could not resolve the exact dependency graph for ${manifest.name}@${manifest.version}`);
89
+ }
90
+ plugins.push({
91
+ package: { ecosystem: 'npm', name: manifest.name, version: manifest.version },
92
+ manifest,
93
+ graph,
94
+ });
95
+ }
96
+ if (plugins.length === 0)
97
+ throw new Error('DSH profile has no third-party bundles to monitor');
98
+ const config = {
99
+ schema: RADAR_CONFIG_SCHEMA,
100
+ projects: [{
101
+ schema: INVENTORY_SCHEMA,
102
+ project: {
103
+ id: projectId,
104
+ name: projectName,
105
+ ...(options.repository === undefined ? {} : { repository: options.repository }),
106
+ workspace,
107
+ ...(options.channels === undefined || options.channels.length === 0 ? {} : { channels: options.channels }),
108
+ },
109
+ environment: { nodeVersion: process.versions.node },
110
+ plugins,
111
+ }],
112
+ };
113
+ parseRadarConfig(config);
114
+ return config;
115
+ }
116
+ export async function writeRadarConfig(config, options) {
117
+ const output = resolve(options.output);
118
+ if (!options.force) {
119
+ try {
120
+ await access(output);
121
+ throw new Error(`${output} already exists; pass --force to replace it`);
122
+ }
123
+ catch (error) {
124
+ if (error instanceof Error && !('code' in error))
125
+ throw error;
126
+ if (error?.code !== 'ENOENT')
127
+ throw error;
128
+ }
129
+ }
130
+ await writeFile(output, `${JSON.stringify(config, null, 2)}\n`, { mode: 0o600 });
131
+ return output;
132
+ }
133
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/init.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export declare const TOOL_VERSION = "0.4.0";
1
+ export declare const TOOL_VERSION = "0.5.0";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,2 +1,2 @@
1
- export const TOOL_VERSION = '0.4.0';
1
+ export const TOOL_VERSION = '0.5.0';
2
2
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "upstream-radar",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "Always-on vulnerability and breaking-change impact monitoring for DeepSeek Harness plugins.",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -20,7 +20,11 @@
20
20
  "dependency-security",
21
21
  "vulnerability-monitoring",
22
22
  "breaking-changes",
23
- "supply-chain"
23
+ "supply-chain",
24
+ "dependency-graph",
25
+ "osv",
26
+ "agent-security",
27
+ "npm"
24
28
  ],
25
29
  "engines": {
26
30
  "node": ">=22"