upstream-radar 0.36.0 → 0.38.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 +43 -9
- package/dist/src/dependency-index.d.ts.map +1 -1
- package/dist/src/dependency-index.js +76 -16
- package/dist/src/dependency-index.js.map +1 -1
- package/dist/src/finding-watch.d.ts +31 -0
- package/dist/src/finding-watch.d.ts.map +1 -0
- package/dist/src/finding-watch.js +70 -0
- package/dist/src/finding-watch.js.map +1 -0
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/docs/README.zh-CN.md +44 -20
- package/package.json +3 -1
package/README.md
CHANGED
|
@@ -63,15 +63,15 @@ baseline report, and defined in [`schemas/upstream-downstream-ir.schema.json`](s
|
|
|
63
63
|
|
|
64
64
|
```bash
|
|
65
65
|
# No DSH profile, API key, or network state required
|
|
66
|
-
npx --yes upstream-radar@0.
|
|
66
|
+
npx --yes upstream-radar@0.38.0 demo
|
|
67
67
|
|
|
68
68
|
# Scan a public DSH plugin repository without installing it
|
|
69
|
-
npx --yes upstream-radar@0.
|
|
69
|
+
npx --yes upstream-radar@0.38.0 scan \
|
|
70
70
|
https://github.com/PlutoKeating/dsh-lark-bot \
|
|
71
71
|
--fail-on never
|
|
72
72
|
|
|
73
73
|
# Review a real browser plugin users would install, then check two DSH releases
|
|
74
|
-
npx --yes upstream-radar@0.
|
|
74
|
+
npx --yes upstream-radar@0.38.0 review dsh-plugin dsh-cloudflare-browser-run@0.1.1 \
|
|
75
75
|
--dsh-version 0.1.0-rc.6,0.1.0-rc.7
|
|
76
76
|
```
|
|
77
77
|
|
|
@@ -84,13 +84,37 @@ These are real, reproducible cases in this repository—not synthetic “vulnera
|
|
|
84
84
|
| Case | Finding | Why it matters |
|
|
85
85
|
| --- | --- | --- |
|
|
86
86
|
| [`dsh-cloudflare-browser-run@0.1.1`](examples/reports/dsh-cloudflare-browser-run-0.1.1.txt) | 18 resolved packages, 2 unresolved optional Cordis edges, 0 known vulnerabilities, and DSH rc.6/rc.7 both loaded the bundle | A real browser plugin demonstrates the DSH admission boundary and why incomplete edges stay visible. |
|
|
87
|
-
| [50-plugin batch](examples/dsh/reports/dsh-batch-50-2026-08-17.md) |
|
|
87
|
+
| [50-plugin batch](examples/dsh/reports/dsh-batch-50-2026-08-17.md) / [real graph corpus](examples/dsh/first-batch/README.md) | 50 source scans, 30 exact npm reviews, 37 real plugin graphs indexed; 13 targets kept as missing evidence | The reverse index is now built from real DSH plugins, and missing graphs are not treated as clean. |
|
|
88
88
|
| [`dsh-feishu-bot@0.15.8`](examples/dsh/reports/dsh-feishu-bot-0.15.8-review-2026-08-18.md) | 89-package graph, 12 unresolved optional edges, reachable `protobufjs` `postinstall`, DSH rc.6/rc.7 compatible | “No known CVE” is not the same as “no installation trust boundary.” |
|
|
89
89
|
| [DSH-TUI source vs npm](examples/dsh/reports/dsh-tui-source-vs-npm-2026-08-18.md) | Source has `prepare`; published artifact does not | Source-only and artifact-only reviews answer different questions. |
|
|
90
90
|
| [dsh-composer-expand](examples/dsh/reports/dsh-composer-expand-lockfile-feedback.md) | Committed lockfile root says `0.1.0` while source says `0.1.2` | A small author-fix can restore the identity of the monitored graph. |
|
|
91
91
|
|
|
92
92
|
We report a confirmed vulnerability only when the affected exact version and runtime path are supported by the available evidence. Development-only hits, missing data, and advisory-source outages remain visibly different states.
|
|
93
93
|
|
|
94
|
+
## Monitor the findings we already found
|
|
95
|
+
|
|
96
|
+
The repository now has a focused watch for seven real DSH plugins from the first
|
|
97
|
+
batch. It re-runs the source scan and the exact npm artifact review, then stores
|
|
98
|
+
only trusted observations in [`state.json`](examples/dsh/finding-watch/state.json)
|
|
99
|
+
and writes the current author-facing result to
|
|
100
|
+
[`report.md`](examples/dsh/finding-watch/report.md).
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
pnpm run monitor:dsh-findings
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
The watch distinguishes `persisting`, `added`, `resolved`, `changed`, and
|
|
107
|
+
`unknown`. A failed registry request never becomes “resolved”; a source fix also
|
|
108
|
+
does not erase a finding that remains in the published npm artifact. The same
|
|
109
|
+
loop runs daily in [the dedicated GitHub Actions workflow](.github/workflows/dsh-finding-watch.yml)
|
|
110
|
+
and commits the state only when a trusted observation changes. It does not install
|
|
111
|
+
plugins, execute lifecycle scripts, load DSH, or call an LLM.
|
|
112
|
+
|
|
113
|
+
The current run is already useful: `dsh-msg-hub@0.1.8` has removed the old source
|
|
114
|
+
lockfile findings, but its npm artifact still reaches `protobufjs@7.6.5` with a
|
|
115
|
+
`postinstall`; `dsh-wsl-workspace` now resolves `koffi@3.1.6`, while the native
|
|
116
|
+
install step remains. The other reviewed install/lifecycle findings persist.
|
|
117
|
+
|
|
94
118
|
## The dependency graph behind every alert
|
|
95
119
|
|
|
96
120
|
```text
|
|
@@ -107,12 +131,15 @@ Two copies of `parser` are different nodes. An alert names the exact version and
|
|
|
107
131
|
For a collection of saved reports, build the reverse index that turns an upstream package update into affected plugins:
|
|
108
132
|
|
|
109
133
|
```bash
|
|
110
|
-
npx --yes upstream-radar@0.
|
|
134
|
+
npx --yes upstream-radar@0.38.0 graph reverse ./reports \
|
|
111
135
|
--output reverse-dependency-index.json
|
|
112
136
|
|
|
113
137
|
# Ask: which plugins currently depend on this exact package?
|
|
114
|
-
npx --yes upstream-radar@0.
|
|
138
|
+
npx --yes upstream-radar@0.38.0 graph reverse ./reports \
|
|
115
139
|
--package parser@2.9.0
|
|
140
|
+
|
|
141
|
+
# Rebuild the checked-in index from the real first 50 DSH plugin reports
|
|
142
|
+
pnpm run refresh:dsh-batch
|
|
116
143
|
```
|
|
117
144
|
|
|
118
145
|
The generated JSON preserves exact paths such as:
|
|
@@ -127,7 +154,7 @@ To route an upstream old → new change to that index, pass it to the always-on
|
|
|
127
154
|
observer:
|
|
128
155
|
|
|
129
156
|
```bash
|
|
130
|
-
npx --yes upstream-radar@0.
|
|
157
|
+
npx --yes upstream-radar@0.38.0 observe ./targets.yml \
|
|
131
158
|
--reverse-index ./reverse-dependency-index.json \
|
|
132
159
|
--state ./observations.json \
|
|
133
160
|
--report ./upstream-radar-observer.md
|
|
@@ -141,12 +168,19 @@ is an evidence-based routing signal, not a claim that the plugin is already
|
|
|
141
168
|
broken. See the persisted index definition in
|
|
142
169
|
[`schemas/reverse-dependency-index.schema.json`](schemas/reverse-dependency-index.schema.json).
|
|
143
170
|
|
|
171
|
+
The checked-in real-corpus replay makes this concrete: an observed
|
|
172
|
+
`@deepseek-ai/cordis@4.0.1 → 4.0.2` change routes to 17 DSH plugins from the
|
|
173
|
+
first 50-plugin batch. The route is marked `incomplete` because 26 of the 37
|
|
174
|
+
reconstructed graphs contain unresolved edges; the other 13 targets are kept
|
|
175
|
+
outside the index as missing evidence. Run `pnpm run showcase:observer` to
|
|
176
|
+
replay baseline → one Agent task → quiet run without network access.
|
|
177
|
+
|
|
144
178
|
## GitHub Action
|
|
145
179
|
|
|
146
180
|
The repository already contains a reusable, composite Action in [`action.yml`](action.yml). It runs the same frozen Radar check in CI and writes a short Job Summary.
|
|
147
181
|
|
|
148
182
|
```yaml
|
|
149
|
-
- uses: MicroMilo/upstream-radar@v0.
|
|
183
|
+
- uses: MicroMilo/upstream-radar@v0.38.0
|
|
150
184
|
with:
|
|
151
185
|
config: upstream-radar.config.json
|
|
152
186
|
fail-on: high
|
|
@@ -170,7 +204,7 @@ See the [consumer workflow](examples/github-actions/consumer/README.md) for conf
|
|
|
170
204
|
pnpm add upstream-radar
|
|
171
205
|
|
|
172
206
|
# Generate a reviewable DSH profile inventory from the installed profile
|
|
173
|
-
npx --yes upstream-radar@0.
|
|
207
|
+
npx --yes upstream-radar@0.38.0 setup
|
|
174
208
|
```
|
|
175
209
|
|
|
176
210
|
For Feishu/webhook routing, DSH Agent handoff, observer state, report schemas, and troubleshooting, use the [full Chinese guide](docs/README.zh-CN.md). The [architecture notes](docs/architecture.md) explain the boundaries and evidence model.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependency-index.d.ts","sourceRoot":"","sources":["../../src/dependency-index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dependency-index.d.ts","sourceRoot":"","sources":["../../src/dependency-index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { findDependencyPaths } from './graph.js';
|
|
2
1
|
export const REVERSE_DEPENDENCY_INDEX_SCHEMA = 'upstream-radar.reverse-dependency-index/v1alpha1';
|
|
3
2
|
const MAX_PATHS_PER_DEPENDENCY = 8;
|
|
4
3
|
const MAX_PATH_DEPTH = 64;
|
|
@@ -237,21 +236,16 @@ export function parseReverseDependencyObservations(value, source) {
|
|
|
237
236
|
function packageKey(packageCoordinate) {
|
|
238
237
|
return `${packageCoordinate.name}@${packageCoordinate.version}`;
|
|
239
238
|
}
|
|
240
|
-
function pathKinds(
|
|
239
|
+
function pathKinds(path, edgeKinds) {
|
|
241
240
|
const kinds = [];
|
|
242
241
|
for (let index = 0; index < path.length - 1; index += 1) {
|
|
243
|
-
const
|
|
244
|
-
|
|
245
|
-
.sort((left, right) => left.kind.localeCompare(right.kind))[0];
|
|
246
|
-
if (edge === undefined)
|
|
242
|
+
const kind = edgeKinds.get(`${path[index]}\0${path[index + 1]}`);
|
|
243
|
+
if (kind === undefined)
|
|
247
244
|
throw new Error('dependency graph path references a missing edge');
|
|
248
|
-
kinds.push(
|
|
245
|
+
kinds.push(kind);
|
|
249
246
|
}
|
|
250
247
|
return kinds;
|
|
251
248
|
}
|
|
252
|
-
function labelsForPath(path) {
|
|
253
|
-
return path.map(node => `${node.name}@${node.version}`);
|
|
254
|
-
}
|
|
255
249
|
function addUnique(items, value) {
|
|
256
250
|
if (!items.some(item => JSON.stringify(item) === JSON.stringify(value)))
|
|
257
251
|
items.push(value);
|
|
@@ -268,6 +262,68 @@ function mergeReverseDependencyUse(target, source) {
|
|
|
268
262
|
for (const path of source.paths)
|
|
269
263
|
addUnique(target.paths, path);
|
|
270
264
|
}
|
|
265
|
+
/**
|
|
266
|
+
* Compute bounded root-to-node paths in one propagation pass.
|
|
267
|
+
*
|
|
268
|
+
* Calling a DFS once per node can revisit the same high-branching graph an
|
|
269
|
+
* exponential number of times. A real DSH profile can contain hundreds of
|
|
270
|
+
* nodes, so keep at most the same bounded path budget per node while sharing
|
|
271
|
+
* the traversal across all targets.
|
|
272
|
+
*/
|
|
273
|
+
function boundedPathsByNode(graph, maxPaths = MAX_PATHS_PER_DEPENDENCY, maxDepth = MAX_PATH_DEPTH) {
|
|
274
|
+
const nodes = new Map(graph.nodes.map(node => [node.id, node]));
|
|
275
|
+
if (!nodes.has(graph.rootNodeId))
|
|
276
|
+
throw new Error('dependency graph root node is missing');
|
|
277
|
+
const outgoing = new Map();
|
|
278
|
+
const edgeKinds = new Map();
|
|
279
|
+
for (const edge of graph.edges) {
|
|
280
|
+
if (!nodes.has(edge.from) || !nodes.has(edge.to))
|
|
281
|
+
throw new Error('dependency graph edge references a missing node');
|
|
282
|
+
const list = outgoing.get(edge.from) ?? [];
|
|
283
|
+
list.push({ to: edge.to, kind: edge.kind });
|
|
284
|
+
outgoing.set(edge.from, list);
|
|
285
|
+
const key = `${edge.from}\0${edge.to}`;
|
|
286
|
+
const previous = edgeKinds.get(key);
|
|
287
|
+
if (previous === undefined || edge.kind.localeCompare(previous) < 0)
|
|
288
|
+
edgeKinds.set(key, edge.kind);
|
|
289
|
+
}
|
|
290
|
+
for (const list of outgoing.values()) {
|
|
291
|
+
list.sort((left, right) => {
|
|
292
|
+
const leftNode = nodes.get(left.to);
|
|
293
|
+
const rightNode = nodes.get(right.to);
|
|
294
|
+
return `${leftNode?.name ?? ''}@${leftNode?.version ?? ''}:${left.to}`
|
|
295
|
+
.localeCompare(`${rightNode?.name ?? ''}@${rightNode?.version ?? ''}:${right.to}`)
|
|
296
|
+
|| left.kind.localeCompare(right.kind);
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
const pathsByNode = new Map([[graph.rootNodeId, [[graph.rootNodeId]]]]);
|
|
300
|
+
const queue = [graph.rootNodeId];
|
|
301
|
+
for (let cursor = 0; cursor < queue.length; cursor += 1) {
|
|
302
|
+
const current = queue[cursor];
|
|
303
|
+
if (current === undefined)
|
|
304
|
+
continue;
|
|
305
|
+
const paths = pathsByNode.get(current) ?? [];
|
|
306
|
+
if (paths.length === 0)
|
|
307
|
+
continue;
|
|
308
|
+
for (const path of paths) {
|
|
309
|
+
if (path.length >= maxDepth)
|
|
310
|
+
continue;
|
|
311
|
+
const seen = new Set(path);
|
|
312
|
+
for (const edge of outgoing.get(current) ?? []) {
|
|
313
|
+
if (seen.has(edge.to))
|
|
314
|
+
continue;
|
|
315
|
+
const nextPath = [...path, edge.to];
|
|
316
|
+
const targetPaths = pathsByNode.get(edge.to) ?? [];
|
|
317
|
+
if (targetPaths.length >= maxPaths || targetPaths.some(item => JSON.stringify(item) === JSON.stringify(nextPath)))
|
|
318
|
+
continue;
|
|
319
|
+
targetPaths.push(nextPath);
|
|
320
|
+
pathsByNode.set(edge.to, targetPaths);
|
|
321
|
+
queue.push(edge.to);
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
return { pathsByNode, edgeKinds };
|
|
326
|
+
}
|
|
271
327
|
/** Build a deterministic dependency -> plugin index from bounded graph observations. */
|
|
272
328
|
export function buildReverseDependencyIndex(observations, options = {}) {
|
|
273
329
|
const dependencies = new Map();
|
|
@@ -299,13 +355,12 @@ export function buildReverseDependencyIndex(observations, options = {}) {
|
|
|
299
355
|
const root = observation.graph.nodes.find(node => node.id === observation.graph.rootNodeId);
|
|
300
356
|
if (root === undefined)
|
|
301
357
|
throw new Error(`${observation.source} graph root node is missing`);
|
|
358
|
+
const nodesById = new Map(observation.graph.nodes.map(node => [node.id, node]));
|
|
359
|
+
const { pathsByNode, edgeKinds } = boundedPathsByNode(observation.graph);
|
|
302
360
|
for (const node of observation.graph.nodes) {
|
|
303
361
|
if (node.id === observation.graph.rootNodeId)
|
|
304
362
|
continue;
|
|
305
|
-
const paths =
|
|
306
|
-
maxPaths: MAX_PATHS_PER_DEPENDENCY,
|
|
307
|
-
maxDepth: MAX_PATH_DEPTH,
|
|
308
|
-
});
|
|
363
|
+
const paths = pathsByNode.get(node.id) ?? [];
|
|
309
364
|
if (paths.length === 0)
|
|
310
365
|
continue;
|
|
311
366
|
const dependency = { ecosystem: 'npm', name: node.name, version: node.version };
|
|
@@ -323,8 +378,13 @@ export function buildReverseDependencyIndex(observations, options = {}) {
|
|
|
323
378
|
if (coverage === 'incomplete')
|
|
324
379
|
target.coverage = 'incomplete';
|
|
325
380
|
for (const path of paths) {
|
|
326
|
-
const labels =
|
|
327
|
-
|
|
381
|
+
const labels = path.map(id => {
|
|
382
|
+
const pathNode = nodesById.get(id);
|
|
383
|
+
if (pathNode === undefined)
|
|
384
|
+
throw new Error(`${observation.source} graph path references a missing node`);
|
|
385
|
+
return `${pathNode.name}@${pathNode.version}`;
|
|
386
|
+
});
|
|
387
|
+
addUnique(target.paths, { nodes: labels, kinds: pathKinds(path, edgeKinds) });
|
|
328
388
|
}
|
|
329
389
|
if (dependent === undefined)
|
|
330
390
|
dependencyEntry.dependents.push(target);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependency-index.js","sourceRoot":"","sources":["../../src/dependency-index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dependency-index.js","sourceRoot":"","sources":["../../src/dependency-index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export declare const FINDING_WATCH_SCHEMA: 'upstream-radar.finding-watch/v1alpha1';
|
|
2
|
+
export type FindingWatchTransitionStatus = 'added' | 'resolved' | 'changed' | 'persisting';
|
|
3
|
+
export interface FindingWatchRecord {
|
|
4
|
+
code: string;
|
|
5
|
+
severity: string;
|
|
6
|
+
summary: string;
|
|
7
|
+
detail?: string;
|
|
8
|
+
evidence?: unknown;
|
|
9
|
+
fingerprint: string;
|
|
10
|
+
}
|
|
11
|
+
export interface FindingWatchTransition {
|
|
12
|
+
code: string;
|
|
13
|
+
status: FindingWatchTransitionStatus;
|
|
14
|
+
previousCount: number;
|
|
15
|
+
currentCount: number;
|
|
16
|
+
}
|
|
17
|
+
export interface FindingWatchDelta {
|
|
18
|
+
changed: boolean;
|
|
19
|
+
transitions: FindingWatchTransition[];
|
|
20
|
+
}
|
|
21
|
+
export interface FindingWatchInput {
|
|
22
|
+
code?: unknown;
|
|
23
|
+
severity?: unknown;
|
|
24
|
+
summary?: unknown;
|
|
25
|
+
detail?: unknown;
|
|
26
|
+
evidence?: unknown;
|
|
27
|
+
}
|
|
28
|
+
export declare function normalizeFinding(input: FindingWatchInput): FindingWatchRecord | undefined;
|
|
29
|
+
export declare function normalizeFindings(inputs: readonly FindingWatchInput[], watchedCodes: readonly string[]): FindingWatchRecord[];
|
|
30
|
+
export declare function compareFindings(previous: readonly FindingWatchRecord[] | undefined, current: readonly FindingWatchRecord[], watchedCodes: readonly string[]): FindingWatchDelta;
|
|
31
|
+
//# sourceMappingURL=finding-watch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"finding-watch.d.ts","sourceRoot":"","sources":["../../src/finding-watch.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,oBAAoB,EAAG,uCAAgD,CAAA;AAEpF,MAAM,MAAM,4BAA4B,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,YAAY,CAAA;AAE1F,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,4BAA4B,CAAA;IACpC,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,sBAAsB,EAAE,CAAA;CACtC;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAgBD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,iBAAiB,GAAG,kBAAkB,GAAG,SAAS,CAWzF;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,iBAAiB,EAAE,EAAE,YAAY,EAAE,SAAS,MAAM,EAAE,GAAG,kBAAkB,EAAE,CAM7H;AAaD,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,SAAS,kBAAkB,EAAE,GAAG,SAAS,EACnD,OAAO,EAAE,SAAS,kBAAkB,EAAE,EACtC,YAAY,EAAE,SAAS,MAAM,EAAE,GAC9B,iBAAiB,CAmBnB"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
export const FINDING_WATCH_SCHEMA = 'upstream-radar.finding-watch/v1alpha1';
|
|
3
|
+
function canonicalize(value) {
|
|
4
|
+
if (Array.isArray(value))
|
|
5
|
+
return value.map(canonicalize);
|
|
6
|
+
if (typeof value !== 'object' || value === null)
|
|
7
|
+
return value;
|
|
8
|
+
return Object.fromEntries(Object.entries(value)
|
|
9
|
+
.sort(([left], [right]) => left.localeCompare(right))
|
|
10
|
+
.map(([key, item]) => [key, canonicalize(item)]));
|
|
11
|
+
}
|
|
12
|
+
function fingerprint(value) {
|
|
13
|
+
return `sha256:${createHash('sha256').update(JSON.stringify(canonicalize(value))).digest('hex')}`;
|
|
14
|
+
}
|
|
15
|
+
export function normalizeFinding(input) {
|
|
16
|
+
if (typeof input.code !== 'string' || input.code === '')
|
|
17
|
+
return undefined;
|
|
18
|
+
const severity = typeof input.severity === 'string' && input.severity !== '' ? input.severity : 'unknown';
|
|
19
|
+
const summary = typeof input.summary === 'string' && input.summary !== '' ? input.summary : input.code;
|
|
20
|
+
const detail = typeof input.detail === 'string' && input.detail !== '' ? input.detail : undefined;
|
|
21
|
+
const evidence = input.evidence;
|
|
22
|
+
const identity = { code: input.code, severity, summary, ...(detail === undefined ? {} : { detail }), ...(evidence === undefined ? {} : { evidence }) };
|
|
23
|
+
return {
|
|
24
|
+
...identity,
|
|
25
|
+
fingerprint: fingerprint(identity),
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
export function normalizeFindings(inputs, watchedCodes) {
|
|
29
|
+
const watched = new Set(watchedCodes);
|
|
30
|
+
return inputs
|
|
31
|
+
.map(normalizeFinding)
|
|
32
|
+
.filter((finding) => finding !== undefined && watched.has(finding.code))
|
|
33
|
+
.sort((left, right) => left.code.localeCompare(right.code) || left.fingerprint.localeCompare(right.fingerprint));
|
|
34
|
+
}
|
|
35
|
+
function groupedFingerprints(findings) {
|
|
36
|
+
const groups = new Map();
|
|
37
|
+
for (const finding of findings) {
|
|
38
|
+
const current = groups.get(finding.code) ?? [];
|
|
39
|
+
current.push(finding.fingerprint);
|
|
40
|
+
groups.set(finding.code, current);
|
|
41
|
+
}
|
|
42
|
+
for (const values of groups.values())
|
|
43
|
+
values.sort();
|
|
44
|
+
return groups;
|
|
45
|
+
}
|
|
46
|
+
export function compareFindings(previous, current, watchedCodes) {
|
|
47
|
+
const oldGroups = groupedFingerprints(previous ?? []);
|
|
48
|
+
const currentGroups = groupedFingerprints(current);
|
|
49
|
+
const codes = [...new Set([...watchedCodes, ...oldGroups.keys(), ...currentGroups.keys()])].sort();
|
|
50
|
+
const transitions = [];
|
|
51
|
+
for (const code of codes) {
|
|
52
|
+
const oldValues = oldGroups.get(code) ?? [];
|
|
53
|
+
const currentValues = currentGroups.get(code) ?? [];
|
|
54
|
+
let status;
|
|
55
|
+
if (oldValues.length === 0 && currentValues.length > 0)
|
|
56
|
+
status = 'added';
|
|
57
|
+
else if (oldValues.length > 0 && currentValues.length === 0)
|
|
58
|
+
status = 'resolved';
|
|
59
|
+
else if (JSON.stringify(oldValues) !== JSON.stringify(currentValues))
|
|
60
|
+
status = 'changed';
|
|
61
|
+
else
|
|
62
|
+
status = 'persisting';
|
|
63
|
+
transitions.push({ code, status, previousCount: oldValues.length, currentCount: currentValues.length });
|
|
64
|
+
}
|
|
65
|
+
return {
|
|
66
|
+
changed: transitions.some(item => item.status !== 'persisting'),
|
|
67
|
+
transitions,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=finding-watch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"finding-watch.js","sourceRoot":"","sources":["../../src/finding-watch.ts"],"names":[],"mappings":"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"}
|
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.38.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.38.0';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
package/docs/README.zh-CN.md
CHANGED
|
@@ -48,6 +48,7 @@ npx --yes upstream-radar@latest quickstart
|
|
|
48
48
|
| --- | --- | --- |
|
|
49
49
|
| 让在线 DSH Agent 持续跟进 | [`setup`](#安装到-dsh) | 自动刷新 profile 里的实际依赖图,只把有变化的事件交给对应项目的 Agent。 |
|
|
50
50
|
| 观察 DSH 插件上游变化 | [`observe`](#观察-dsh-插件的上游变化) | 定时比较 GitHub commit、npm 发布物、manifest 和可选锁文件依赖图,只把重要变化交给 Agent。 |
|
|
51
|
+
| 监控已经发现的问题 | [DSH known finding watch](../examples/dsh/finding-watch/README.md) | 对第一批 7 个真实插件重复检查源码与精确 npm 发布物,把问题标成持续、修复、变化或无法确认。 |
|
|
51
52
|
| 30 秒开始监控一个公开插件 | [最小 GitHub Actions workflow](../examples/github-actions/upstream-observer-minimal.yml) | 复制一个文件、改仓库地址,每天得到报告,不需要安装或构建 Radar。 |
|
|
52
53
|
| 收到第一条告警后知道先做什么 | [`radar next`](#安装到-dsh) | 一个只读命令选出最高优先级事件,并指向 DSH task、已验证分析或下一轮检查。 |
|
|
53
54
|
| 启动 DSH 前检查 profile | [`profile-check`](#启动-dsh-前先检查-profile) | 读取实际锁文件和 patch,提前拦住缺失 loader 包、重复 loader id 以及 release-age 回退风险。 |
|
|
@@ -96,7 +97,7 @@ FIRST EPSS estimated exploitation probability: 97.2% (percentile 100.0%)
|
|
|
96
97
|
想立即检查一个真实发布的 DSH 插件,可以在空目录直接运行:
|
|
97
98
|
|
|
98
99
|
```bash
|
|
99
|
-
npx --yes upstream-radar@0.
|
|
100
|
+
npx --yes upstream-radar@0.38.0 inspect dsh-feishu-bot@0.15.8 --deep
|
|
100
101
|
```
|
|
101
102
|
|
|
102
103
|
它会直接输出简短的准入结论、覆盖情况、依赖数量、漏洞数量和下一步,不需要先
|
|
@@ -109,7 +110,7 @@ npx --yes upstream-radar@0.36.0 inspect dsh-feishu-bot@0.15.8 --deep
|
|
|
109
110
|
npm 解析环境中目前无法建立完整依赖图:
|
|
110
111
|
|
|
111
112
|
```bash
|
|
112
|
-
npx --yes upstream-radar@0.
|
|
113
|
+
npx --yes upstream-radar@0.38.0 inspect \
|
|
113
114
|
@sanqi-normal/dsh-webui-market-plugin@0.5.4 \
|
|
114
115
|
--deep --fail-on never
|
|
115
116
|
```
|
|
@@ -280,6 +281,23 @@ OpenAI-compatible 模型,先设置
|
|
|
280
281
|
这是新的上游变化闭环:Radar 不在每轮都重复做一次大扫描,而是为每个
|
|
281
282
|
插件保存一个观察点,然后回答“从上次观察到现在到底变了什么”。
|
|
282
283
|
|
|
284
|
+
### 只监控已经发现的问题
|
|
285
|
+
|
|
286
|
+
如果目标不是重新发现所有问题,而是持续回答“上次报告的这条问题现在还在不在”,运行仓库内置的专用观察清单:
|
|
287
|
+
|
|
288
|
+
```bash
|
|
289
|
+
pnpm run monitor:dsh-findings
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
它会对 `examples/dsh/finding-watch/targets.json` 中的 7 个真实 DSH 插件分别做两次检查:
|
|
293
|
+
|
|
294
|
+
1. 扫描公开 GitHub 源码,不安装依赖、不运行插件;
|
|
295
|
+
2. 按源码当前版本检查精确 npm 发布物,依赖解析使用禁用 lifecycle script 的环境。
|
|
296
|
+
|
|
297
|
+
它把源码和发布物分开保存,因为维护者可能已经修了 GitHub 仓库,但还没有重新发布 npm 包。每条观察结果只有在检查成功时才会推进;网络失败是 `unknown`,不会被写成“已修复”。状态保存在 [`state.json`](../examples/dsh/finding-watch/state.json),可读报告在 [`report.md`](../examples/dsh/finding-watch/report.md),每日 workflow 是 [`dsh-finding-watch.yml`](../.github/workflows/dsh-finding-watch.yml)。
|
|
298
|
+
|
|
299
|
+
当前真实结果中,`dsh-msg-hub@0.1.8` 的源码侧已经没有旧的 lockfile 图不可用/根版本过期问题,但同版本 npm 发布物仍可达 `protobufjs@7.6.5` 的 `postinstall`;`dsh-wsl-workspace` 由 `koffi@3.1.5` 变成了 `3.1.6`,但安装脚本仍然存在。这个入口的用途是监控这些已知问题的生命周期,不把每次定时运行都伪装成新的漏洞发现。
|
|
300
|
+
|
|
283
301
|
```text
|
|
284
302
|
targets.yml
|
|
285
303
|
↓
|
|
@@ -317,9 +335,9 @@ npm: dsh-feishu-bot@0.15.8
|
|
|
317
335
|
会继续显示为 `incomplete`,不会被当成已经确认的故障。
|
|
318
336
|
|
|
319
337
|
```bash
|
|
320
|
-
npx --yes upstream-radar@0.
|
|
338
|
+
npx --yes upstream-radar@0.38.0 graph reverse ./plugin-reports \
|
|
321
339
|
--output ./reverse-dependency-index.json
|
|
322
|
-
npx --yes upstream-radar@0.
|
|
340
|
+
npx --yes upstream-radar@0.38.0 observe ./targets.yml \
|
|
323
341
|
--reverse-index ./reverse-dependency-index.json \
|
|
324
342
|
--state ./observations.json --report ./upstream-radar-observer.md
|
|
325
343
|
```
|
|
@@ -328,6 +346,12 @@ npx --yes upstream-radar@0.36.0 observe ./targets.yml \
|
|
|
328
346
|
always-on 的上游变化任务上。索引结构见
|
|
329
347
|
[`reverse-dependency-index.schema.json`](../schemas/reverse-dependency-index.schema.json)。
|
|
330
348
|
|
|
349
|
+
仓库已经把这条链路接到第一批真实样本:50 个公开 DSH 插件源码扫描、30 个同名同版本
|
|
350
|
+
npm 发布物复核,最终建立 37 个插件、1025 个依赖坐标的反向索引;13 个无法重建图的目标
|
|
351
|
+
保留为证据缺失。`pnpm run showcase:observer` 会用真实的
|
|
352
|
+
`@deepseek-ai/cordis@4.0.1 → 4.0.2` 变化找到 17 个下游插件,并展示 baseline、一次
|
|
353
|
+
Agent 任务和无变化时静默的完整状态机。
|
|
354
|
+
|
|
331
355
|
可以从[可复制的真实 targets 示例](../examples/upstream-observer/targets.yml)开始。它默认观察公开的 DSH/飞书插件 `PlutoKeating/dsh-lark-bot`,不是模拟项目:
|
|
332
356
|
|
|
333
357
|
```yaml
|
|
@@ -351,7 +375,7 @@ Radar 会在三层目录内自动找到它;npm 名称和源码 manifest 不一
|
|
|
351
375
|
想明确选择锁文件时再加 `--lockfile`:
|
|
352
376
|
|
|
353
377
|
```bash
|
|
354
|
-
npx --yes upstream-radar@0.
|
|
378
|
+
npx --yes upstream-radar@0.38.0 observe \
|
|
355
379
|
https://github.com/PlutoKeating/dsh-lark-bot \
|
|
356
380
|
--state ./observations.json --report ./upstream-radar-observer.md
|
|
357
381
|
```
|
|
@@ -374,7 +398,7 @@ workspace 边保留为未解析证据;不会安装或启动 DSH。
|
|
|
374
398
|
会额外指定 `--package`:
|
|
375
399
|
|
|
376
400
|
```bash
|
|
377
|
-
npx --yes upstream-radar@0.
|
|
401
|
+
npx --yes upstream-radar@0.38.0 observe \
|
|
378
402
|
https://github.com/PlutoKeating/dsh-lark-bot \
|
|
379
403
|
--package dsh-feishu-bot \
|
|
380
404
|
--lockfile pnpm-lock.yaml --lockfile-type pnpm \
|
|
@@ -652,7 +676,7 @@ cd my-dsh-plugin
|
|
|
652
676
|
pnpm install --ignore-scripts
|
|
653
677
|
|
|
654
678
|
# 把插件放进 DSH profile 前,先读取精确依赖图。
|
|
655
|
-
pnpm dlx --package=upstream-radar@0.
|
|
679
|
+
pnpm dlx --package=upstream-radar@0.38.0 upstream-radar graph pnpm-lock pnpm-lock.yaml --json
|
|
656
680
|
```
|
|
657
681
|
|
|
658
682
|
这棵图会保留精确的 DSH 包版本,也会把未解析的可选 peer 明确显示出来;它不会加载生成的插件,也不会运行 lifecycle script。审查后,把下面这个完整 workflow 复制到 `.github/workflows/upstream-radar.yml`:
|
|
@@ -674,7 +698,7 @@ jobs:
|
|
|
674
698
|
runs-on: ubuntu-latest
|
|
675
699
|
steps:
|
|
676
700
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
677
|
-
- uses: MicroMilo/upstream-radar@v0.
|
|
701
|
+
- uses: MicroMilo/upstream-radar@v0.38.0
|
|
678
702
|
with:
|
|
679
703
|
fail-on: high
|
|
680
704
|
fail-on-compatibility: breaking
|
|
@@ -685,7 +709,7 @@ Action 会自动识别唯一的 `pnpm-lock.yaml`,检查同一棵精确依赖
|
|
|
685
709
|
也可以直接检查一个真实发布的 DSH 包:
|
|
686
710
|
|
|
687
711
|
```bash
|
|
688
|
-
npx --yes upstream-radar@0.
|
|
712
|
+
npx --yes upstream-radar@0.38.0 inspect dsh-feishu-bot@0.15.8 --deep
|
|
689
713
|
```
|
|
690
714
|
|
|
691
715
|
这次检查的结论是 `REVIEW`:registry 完整性、签名、provenance 和 89 个已解析包都
|
|
@@ -698,7 +722,7 @@ npx --yes upstream-radar@0.36.0 inspect dsh-feishu-bot@0.15.8 --deep
|
|
|
698
722
|
如果不想分别执行 `inspect`、打包和 `probe`,可以用一个命令完成一次 DSH 插件审查:
|
|
699
723
|
|
|
700
724
|
```bash
|
|
701
|
-
pnpm dlx --package=upstream-radar@0.
|
|
725
|
+
pnpm dlx --package=upstream-radar@0.38.0 upstream-radar review dsh-plugin \
|
|
702
726
|
dsh-cloudflare-browser-run@0.1.1 \
|
|
703
727
|
--dsh-version 0.1.0-rc.6,0.1.0-rc.7
|
|
704
728
|
```
|
|
@@ -864,7 +888,7 @@ pnpm run try:dsh
|
|
|
864
888
|
在把项目接入兼容性门禁前,可以先运行离线规则 benchmark:
|
|
865
889
|
|
|
866
890
|
```bash
|
|
867
|
-
pnpm dlx --package=upstream-radar@0.
|
|
891
|
+
pnpm dlx --package=upstream-radar@0.38.0 upstream-radar benchmark compatibility
|
|
868
892
|
```
|
|
869
893
|
|
|
870
894
|
它覆盖六类契约:安全补丁、只需要项目分析的变化、不兼容的 DSH peer、发布者明确声明 breaking、候选传递依赖漏洞,以及候选依赖图不完整。这个命令不会联网、安装包、加载插件或启动 DSH;它验证的是 Radar 的确定性规则以及 `breaking`/`any` 门禁行为,不是运行时兼容性证明。
|
|
@@ -877,7 +901,7 @@ pnpm dlx --package=upstream-radar@0.36.0 upstream-radar benchmark compatibility
|
|
|
877
901
|
# 打包精确版本,并明确不运行它的 lifecycle script。
|
|
878
902
|
npm pack --ignore-scripts dsh-plugin@1.2.3
|
|
879
903
|
|
|
880
|
-
pnpm dlx --package=upstream-radar@0.
|
|
904
|
+
pnpm dlx --package=upstream-radar@0.38.0 upstream-radar probe dsh-load \
|
|
881
905
|
./dsh-plugin-1.2.3.tgz \
|
|
882
906
|
--dsh-version 0.1.0-rc.6
|
|
883
907
|
```
|
|
@@ -903,7 +927,7 @@ pnpm run showcase:dsh-probe
|
|
|
903
927
|
如果要比较多个 DSH 版本,可以使用矩阵入口:
|
|
904
928
|
|
|
905
929
|
```bash
|
|
906
|
-
pnpm dlx --package=upstream-radar@0.
|
|
930
|
+
pnpm dlx --package=upstream-radar@0.38.0 upstream-radar probe dsh-matrix \
|
|
907
931
|
./dsh-plugin-1.2.3.tgz \
|
|
908
932
|
--dsh-version 0.1.0-rc.3 \
|
|
909
933
|
--dsh-version 0.1.0-rc.6 \
|
|
@@ -921,7 +945,7 @@ JSON 结果结构见[矩阵结果 schema](../schemas/dsh-load-matrix.schema.json
|
|
|
921
945
|
```yaml
|
|
922
946
|
steps:
|
|
923
947
|
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
924
|
-
- uses: MicroMilo/upstream-radar@v0.
|
|
948
|
+
- uses: MicroMilo/upstream-radar@v0.38.0
|
|
925
949
|
with:
|
|
926
950
|
fail-on: high
|
|
927
951
|
# 可选:把确定性的 DSH/插件兼容性破坏也作为 CI 失败条件
|
|
@@ -930,12 +954,12 @@ steps:
|
|
|
930
954
|
threat-intel: true
|
|
931
955
|
```
|
|
932
956
|
|
|
933
|
-
这个 Action 只是 `radar check --frozen --state :memory: --fail-on high --fail-on-compatibility breaking --json` 的薄封装。`--frozen` 是有意的:它只使用配置文件里的依赖图,不会尝试读取 runner 上不存在的本地 DSH profile。`threat-intel` 默认是 `false`,这样普通 CI 门禁不会因为额外查询变重;设置为 `true` 后,Job Summary 和原始 JSON 会包含 CISA KEV 与 FIRST EPSS 的优先级证据。每次运行彼此独立;发现达到阈值的漏洞或选择的兼容性变化时返回 `2`,运行或漏洞源出错时返回 `1`。`breaking` 只拦截有 confirmed/strong 信号的兼容性事件,`any` 会拦截所有活动兼容性事件,默认值是 `never`。除了原始 JSON 日志,Action 还会把经过转义的简短摘要写入 GitHub Job Summary,定时任务失败时可以直接看到受影响的包、准确依赖路径、已经发布的修复版本(如果有)、一行优先级证据和建议的下一步。这个入口不会投递 DSH Agent 任务,也不会修改分支;需要持续监控和项目级分析时,仍使用原生 DSH bundle。建议把 Action 固定到类似 `v0.
|
|
957
|
+
这个 Action 只是 `radar check --frozen --state :memory: --fail-on high --fail-on-compatibility breaking --json` 的薄封装。`--frozen` 是有意的:它只使用配置文件里的依赖图,不会尝试读取 runner 上不存在的本地 DSH profile。`threat-intel` 默认是 `false`,这样普通 CI 门禁不会因为额外查询变重;设置为 `true` 后,Job Summary 和原始 JSON 会包含 CISA KEV 与 FIRST EPSS 的优先级证据。每次运行彼此独立;发现达到阈值的漏洞或选择的兼容性变化时返回 `2`,运行或漏洞源出错时返回 `1`。`breaking` 只拦截有 confirmed/strong 信号的兼容性事件,`any` 会拦截所有活动兼容性事件,默认值是 `never`。除了原始 JSON 日志,Action 还会把经过转义的简短摘要写入 GitHub Job Summary,定时任务失败时可以直接看到受影响的包、准确依赖路径、已经发布的修复版本(如果有)、一行优先级证据和建议的下一步。这个入口不会投递 DSH Agent 任务,也不会修改分支;需要持续监控和项目级分析时,仍使用原生 DSH bundle。建议把 Action 固定到类似 `v0.38.0` 的发布标签,并根据团队策略固定 checkout Action。
|
|
934
958
|
|
|
935
959
|
如果仓库还没有提交 Radar 配置,最短接入方式是省略 `config`、`pnpm-lock` 和 `npm-lock`。checkout 之后,Action 会自动使用唯一存在的 `pnpm-lock.yaml` 或 `package-lock.json`,生成临时的审查清单,再执行同一个 frozen 检查:
|
|
936
960
|
|
|
937
961
|
```yaml
|
|
938
|
-
- uses: MicroMilo/upstream-radar@v0.
|
|
962
|
+
- uses: MicroMilo/upstream-radar@v0.38.0
|
|
939
963
|
with:
|
|
940
964
|
fail-on: high
|
|
941
965
|
```
|
|
@@ -945,7 +969,7 @@ steps:
|
|
|
945
969
|
如果要在插件进入 DSH 前审查精确发布物,可以增加 `inspect-package`:
|
|
946
970
|
|
|
947
971
|
```yaml
|
|
948
|
-
- uses: MicroMilo/upstream-radar@v0.
|
|
972
|
+
- uses: MicroMilo/upstream-radar@v0.38.0
|
|
949
973
|
with:
|
|
950
974
|
inspect-package: dsh-cloudflare-browser-run@0.1.1
|
|
951
975
|
# review 是安全默认值;只有允许覆盖不完整时才使用 block
|
|
@@ -957,7 +981,7 @@ steps:
|
|
|
957
981
|
如果仓库只有 pnpm 锁文件,还没有提交 Radar 配置,可以让 Action 在同一个 job 中生成配置;可直接复制[pnpm workflow 示例](../examples/github-actions/upstream-radar-pnpm.yml):
|
|
958
982
|
|
|
959
983
|
```yaml
|
|
960
|
-
- uses: MicroMilo/upstream-radar@v0.
|
|
984
|
+
- uses: MicroMilo/upstream-radar@v0.38.0
|
|
961
985
|
with:
|
|
962
986
|
pnpm-lock: pnpm-lock.yaml
|
|
963
987
|
fail-on: high
|
|
@@ -971,7 +995,7 @@ npm 项目可以改用 `npm-lock: package-lock.json`;`pnpm-lock` 和 `npm-lock
|
|
|
971
995
|
调用方需要先 checkout 仓库。这个 Action 不会安装项目依赖,也不会执行项目的 lifecycle script;它只读取提交到仓库的依赖图并查询配置中的上游漏洞源。如果需要完全显式的底层命令,等价写法是:
|
|
972
996
|
|
|
973
997
|
```bash
|
|
974
|
-
pnpm dlx --package=upstream-radar@0.
|
|
998
|
+
pnpm dlx --package=upstream-radar@0.38.0 upstream-radar radar check \
|
|
975
999
|
./upstream-radar.config.json --frozen --state :memory: --fail-on high \
|
|
976
1000
|
--fail-on-compatibility breaking --json
|
|
977
1001
|
```
|
|
@@ -979,7 +1003,7 @@ pnpm dlx --package=upstream-radar@0.36.0 upstream-radar radar check \
|
|
|
979
1003
|
如果还要检查一个已发布插件能否跨多个 DSH 版本加载,可以增加三个 input:
|
|
980
1004
|
|
|
981
1005
|
```yaml
|
|
982
|
-
- uses: MicroMilo/upstream-radar@v0.
|
|
1006
|
+
- uses: MicroMilo/upstream-radar@v0.38.0
|
|
983
1007
|
id: radar
|
|
984
1008
|
with:
|
|
985
1009
|
config: upstream-radar.config.json
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "upstream-radar",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.38.0",
|
|
4
4
|
"description": "Always-on dependency security monitoring for DeepSeek Harness (DSH) plugins: find exact installed or candidate transitive vulnerable paths and breaking updates, then route evidence to a DSH Agent.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -95,6 +95,8 @@
|
|
|
95
95
|
"showcase:dsh-case": "pnpm run build && node scripts/dsh-case-showcase.mjs",
|
|
96
96
|
"showcase:dsh-case:report": "pnpm run build && node scripts/dsh-case-showcase.mjs --write-report",
|
|
97
97
|
"showcase:observer": "pnpm run build && node scripts/upstream-observer-showcase.mjs",
|
|
98
|
+
"monitor:dsh-findings": "pnpm run build && node scripts/monitor-dsh-findings.mjs",
|
|
99
|
+
"refresh:dsh-batch": "pnpm run build && node scripts/refresh-dsh-batch-index.mjs",
|
|
98
100
|
"showcase:pnpm-lock": "pnpm run build && node scripts/pnpm-lock-showcase.mjs",
|
|
99
101
|
"showcase:pnpm-lock:monitor": "pnpm run build && node scripts/pnpm-lock-monitor-showcase.mjs",
|
|
100
102
|
"showcase:npm-lock:monitor": "pnpm run build && node scripts/npm-lock-monitor-showcase.mjs",
|