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 +75 -49
- package/README.zh-CN.md +74 -46
- package/dist/src/cli.js +82 -0
- package/dist/src/cli.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/init.d.ts +33 -0
- package/dist/src/init.d.ts.map +1 -0
- package/dist/src/init.js +133 -0
- package/dist/src/init.js.map +1 -0
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/package.json +6 -2
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>
|
|
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="#
|
|
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
|
|
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
|
|
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
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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
|
-
##
|
|
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
|
|
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
|
-
-
|
|
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
|
|
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
|
-
|
|
27
|
+
普通漏洞源到“某个包有问题”就结束了。Upstream Radar 会继续找到实际安装的依赖路径,维护一个可持续更新的事件,再把带有项目证据的调查任务交给 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) Agent。
|
|
26
28
|
|
|
27
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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')
|
package/dist/src/cli.js.map
CHANGED
|
@@ -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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"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -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';
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -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';
|
package/dist/src/index.js.map
CHANGED
|
@@ -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"}
|
package/dist/src/init.js
ADDED
|
@@ -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":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACzE,OAAO,EAAE,iBAAiB,EAA0B,MAAM,UAAU,CAAA;AACpE,OAAO,EAAE,4BAA4B,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAC/E,OAAO,EACL,gBAAgB,EAChB,mBAAmB,GAKpB,MAAM,kBAAkB,CAAA;AAEzB,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAA;AA8BtC,SAAS,QAAQ,CAAC,KAAc,EAAE,KAAa;IAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,oBAAoB,CAAC,CAAA;IACtH,OAAO,KAAgC,CAAA;AACzC,CAAC;AAED,SAAS,cAAc,CAAC,KAAc,EAAE,KAAa;IACnD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,6BAA6B,CAAC,CAAA;IACnI,OAAO,KAAK,CAAA;AACd,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,IAAY;IAClC,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC7C,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,cAAc;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,gBAAgB,cAAc,aAAa,CAAC,CAAA;IACrH,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAY,CAAA;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,oBAAoB,CAAC,CAAA;IAC9C,CAAC;AACH,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,gBAAwB,EAAE,WAAmB;IAC9E,MAAM,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAA;IACtE,MAAM,IAAI,GAAG,OAAO,CAAC,oBAAoB,EAAE,WAAW,EAAE,cAAc,CAAC,CAAA;IACvE,MAAM,YAAY,GAAG,QAAQ,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAA;IACzD,IAAI,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,+DAA+D,WAAW,EAAE,CAAC,CAAA;IAC/F,CAAC;IACD,OAAO,4BAA4B,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;AAC3D,CAAC;AAED,SAAS,mBAAmB,CAAC,WAAmB;IAC9C,OAAO,WAAW,KAAK,gBAAgB;WAClC,WAAW,KAAK,QAAQ;WACxB,WAAW,CAAC,UAAU,CAAC,eAAe,CAAC;WACvC,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;AACzC,CAAC;AAED,SAAS,gBAAgB,CAAC,SAAiB;IACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAA;IACtF,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,aAAa,CAAA;AACpE,CAAC;AAED,SAAS,kBAAkB,CAAC,SAAiB;IAC3C,OAAO,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,aAAa,CAAA;AACtD,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,0BAA0B,CAAC,OAAe,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ;IACxF,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;IAChG,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IACtD,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAA;IAC9F,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,CAAC,CAAA;AAC/C,CAAC;AAED,wFAAwF;AACxF,MAAM,CAAC,KAAK,UAAU,+BAA+B,CAAC,OAAuB;IAC3E,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAC1D,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC,EAAE,0BAA0B,CAAC,CAAA;IACpH,MAAM,GAAG,GAAG,QAAQ,CAAC,eAAe,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAA;IAC5D,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAA;IAChE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;IAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;QACxG,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAA;IAClF,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,CAAA;IACpD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,gBAAgB,CAAC,SAAS,CAAC,CAAA;IAClE,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,kBAAkB,CAAC,SAAS,CAAC,CAAA;IACxE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,iBAAiB,CAAA;IACpD,MAAM,OAAO,GAAyB,EAAE,CAAA;IACxC,KAAK,MAAM,WAAW,IAAI,OAAO,EAAE,CAAC;QAClC,IAAI,mBAAmB,CAAC,WAAW,CAAC;YAAE,SAAQ;QAC9C,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAA;QACzE,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,2BAA2B,QAAQ,CAAC,IAAI,8BAA8B,WAAW,EAAE,CAAC,CAAA;QACtG,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE;YACvE,IAAI,EAAE,IAAI;YACV,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;SAC1E,CAAC,CAAA;QACF,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,eAAe,CAAC,KAAK,CAAA;QACxD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,oDAAoD,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;QAC1G,CAAC;QACD,OAAO,CAAC,IAAI,CAAC;YACX,OAAO,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE;YAC7E,QAAQ;YACR,KAAK;SACN,CAAC,CAAA;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;IAE9F,MAAM,MAAM,GAAgB;QAC1B,MAAM,EAAE,mBAAmB;QAC3B,QAAQ,EAAE,CAAC;gBACT,MAAM,EAAE,gBAAgB;gBACxB,OAAO,EAAE;oBACP,EAAE,EAAE,SAAS;oBACb,IAAI,EAAE,WAAW;oBACjB,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;oBAC/E,SAAS;oBACT,GAAG,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;iBAC3G;gBACD,WAAW,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE;gBACnD,OAAO;aACR,CAAC;KACH,CAAA;IACD,gBAAgB,CAAC,MAAM,CAAC,CAAA;IACxB,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAAmB,EAAE,OAAgC;IAC1F,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACtC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,MAAM,CAAC,CAAA;YACpB,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,6CAA6C,CAAC,CAAA;QACzE,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,KAAK,YAAY,KAAK,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAA;YAC7D,IAAK,KAA+B,EAAE,IAAI,KAAK,QAAQ;gBAAE,MAAM,KAAK,CAAA;QACtE,CAAC;IACH,CAAC;IACD,MAAM,SAAS,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IAChF,OAAO,MAAM,CAAA;AACf,CAAC"}
|
package/dist/src/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const TOOL_VERSION = "0.
|
|
1
|
+
export declare const TOOL_VERSION = "0.5.0";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/src/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const TOOL_VERSION = '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.
|
|
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"
|