upstream-radar 0.19.3 → 0.19.4
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 +3 -2
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/radar-status.d.ts +11 -1
- package/dist/src/radar-status.d.ts.map +1 -1
- package/dist/src/radar-status.js +112 -9
- package/dist/src/radar-status.js.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/docs/README.zh-CN.md +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -152,7 +152,7 @@ pnpm dlx --package=upstream-radar@latest upstream-radar doctor ./upstream-radar.
|
|
|
152
152
|
|
|
153
153
|
`doctor` does not contact OSV, npm, GitHub, or execute plugin code. It checks that the config parses, the selected DSH profile actually registers `upstream-radar`, the overlay points to the same config and state files, the dependency coverage is complete, and the durable state can be read. It exits non-zero only for a blocked setup; a missing first-run state is shown as a warning with the next command to run. Add `--json` when another tool needs the result.
|
|
154
154
|
|
|
155
|
-
The generated overlay points DSH at the config and state files explicitly and records the selected profile. If `--registry <url>` was used during initialization, the same registry is carried into the running DSH monitor; otherwise release and candidate checks use the public npm registry. Before each native DSH polling cycle, and before each CLI `radar check` or `radar watch` cycle, it re-reads that profile's installed graph, so later plugin installs, upgrades, removals, and host-runtime changes are not silently missed. If the refresh fails, that cycle stops without replacing the last durable state. `radar status` remains read-only and reports whether a check has completed, which source is unhealthy, whether dependency coverage is complete, active incidents, and pending DSH tasks. `radar compare` remains a manual comparison of the files you provide. If you prefer environment variables or need to override the polling interval, omit `--dsh-patch` and use `UPSTREAM_RADAR_CONFIG`, `UPSTREAM_RADAR_STATE`, `UPSTREAM_RADAR_INTERVAL_SECONDS`, `UPSTREAM_RADAR_REGISTRY`, and `UPSTREAM_RADAR_DEEP_CANDIDATES` as before.
|
|
155
|
+
The generated overlay points DSH at the config and state files explicitly and records the selected profile. If `--registry <url>` was used during initialization, the same registry is carried into the running DSH monitor; otherwise release and candidate checks use the public npm registry. Before each native DSH polling cycle, and before each CLI `radar check` or `radar watch` cycle, it re-reads that profile's installed graph, so later plugin installs, upgrades, removals, and host-runtime changes are not silently missed. If the refresh fails, that cycle stops without replacing the last durable state. `radar status` remains read-only and reports whether a check has completed, which source is unhealthy, whether dependency coverage is complete, the most important active incidents with their exact path or candidate, a suggested next step, and pending DSH tasks. `radar compare` remains a manual comparison of the files you provide. If you prefer environment variables or need to override the polling interval, omit `--dsh-patch` and use `UPSTREAM_RADAR_CONFIG`, `UPSTREAM_RADAR_STATE`, `UPSTREAM_RADAR_INTERVAL_SECONDS`, `UPSTREAM_RADAR_REGISTRY`, and `UPSTREAM_RADAR_DEEP_CANDIDATES` as before.
|
|
156
156
|
|
|
157
157
|
The generated graph is the actual installed profile graph. DSH also maintains a shared `profiles/node_modules` host plane for built-in runtime packages; Radar includes packages resolved from that plane, marks them as `dsh-host`, and still checks their exact versions for advisories. If a required dependency is declared but cannot be resolved from either place, it remains visible as incomplete coverage instead of being treated as absent. Missing optional platform packages are retained as evidence but do not make coverage incomplete. Passing `--registry <url>` explicitly selects the older public npm artifact graph path, which is useful for comparing a profile against registry resolution but is not the default.
|
|
158
158
|
|
|
@@ -282,6 +282,7 @@ Advisories, release notes, links, package names, and repository strings remain u
|
|
|
282
282
|
- durable incident state with current-task replacement and resolution;
|
|
283
283
|
- native DSH bundle installation, startup polling, `agent/created` retry, and plugin-source attribution;
|
|
284
284
|
- automatic selection of the only DSH profile with third-party bundles, plus a network-free `radar status` snapshot;
|
|
285
|
+
- an actionable, network-free `radar status` summary with exact active paths, candidate signals, and next steps;
|
|
285
286
|
- a network-free `doctor` command that checks local DSH registration, overlay/config alignment, state readability, and dependency coverage;
|
|
286
287
|
- compatibility signals for Node.js, peers, exports, entrypoints, bundle paths, dependencies, and version boundaries;
|
|
287
288
|
- network-free Radar and real DSH runtime showcases.
|
|
@@ -298,7 +299,7 @@ pnpm dlx --package=upstream-radar@latest upstream-radar inspect npm:dsh-cloudfla
|
|
|
298
299
|
- `init` discovers the only DSH profile with third-party bundles when `--profile` is omitted; multiple candidates still require an explicit profile. By default it follows the installed DSH `node_modules` tree, so pnpm overrides and local resolution choices are included. `--dsh-patch <path>` writes an explicit DSH overlay so first startup needs no environment variables and preserves an explicitly selected registry. A native pnpm lockfile parser for pre-install/CI inspection is still deferred.
|
|
299
300
|
- A graph with unresolved required dependency declarations is marked as incomplete coverage; optional packages that are not installed for the current platform remain visible but do not create a false required-dependency alert.
|
|
300
301
|
- Candidate upgrade graphs are resolved only for a bounded earliest prefix. A candidate with an incomplete or unavailable graph is not recommended; later unqueried candidates remain visibly unchecked. Pass `--no-deep-candidates` to opt out of this extra registry work.
|
|
301
|
-
- `radar status` is a local snapshot only: it does not refresh OSV/npm/GitHub data, and it cannot prove that a source is current until a check has completed.
|
|
302
|
+
- `radar status` is a local snapshot only: it does not refresh OSV/npm/GitHub data, and it cannot prove that a source is current until a check has completed. Its next steps are guidance, not an automatic upgrade or safety decision.
|
|
302
303
|
- `doctor` checks local wiring only; it cannot prove that a running DSH process has delivered a task to a model or that upstream feeds are current.
|
|
303
304
|
- npm lock graphs are supported; pnpm and Yarn graph adapters are not implemented.
|
|
304
305
|
- OSV, npm `latest`, and public GitHub Release notes are live sources; changelog, comparison-diff, and migration-guide ingestion are deferred.
|
package/dist/src/index.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ export { createAnalysisTask, renderAgentAnalysisGroupPrompt, renderAgentAnalysis
|
|
|
13
13
|
export { parsePackageManifestSnapshot, parseRadarConfig } from './inventory.js';
|
|
14
14
|
export { createRadarConfigFromDshProfile, discoverDshProfiles, refreshRadarConfigFromConfiguredProfile, refreshRadarConfigFromDshProfile, resolveDshProfileDirectory, writeDshPatch, writeRadarConfig, type DshInitOptions, type InitInspector, type WriteDshPatchOptions, type WriteRadarConfigOptions, } from './init.js';
|
|
15
15
|
export { loadRadarState, parseRadarState, saveRadarState } from './radar-state.js';
|
|
16
|
-
export { createRadarStatus, renderRadarStatus, RADAR_STATUS_SCHEMA, type CreateRadarStatusOptions, type RadarMonitoringStatus, type RadarCoverageStatus, type RadarSourceStatus, type RadarStatusReport, type RadarStatusSource, } from './radar-status.js';
|
|
16
|
+
export { createRadarStatus, renderRadarStatus, RADAR_STATUS_SCHEMA, type CreateRadarStatusOptions, type RadarMonitoringStatus, type RadarCoverageStatus, type RadarStatusIncident, type RadarSourceStatus, type RadarStatusReport, type RadarStatusSource, } from './radar-status.js';
|
|
17
17
|
export { renderRadarEvent, renderRadarEvents } from './radar-render.js';
|
|
18
18
|
export { createDoctorReport, renderDoctorReport, DOCTOR_SCHEMA, type DoctorCheck, type DoctorCheckStatus, type DoctorOptions, type DoctorOverallStatus, type DoctorReport, } from './doctor.js';
|
|
19
19
|
export { compareSemverValues, 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":"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"}
|
|
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,yBAAyB,EACzB,eAAe,EACf,wBAAwB,EACxB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,yBAAyB,EAC9B,KAAK,aAAa,GACnB,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC1F,OAAO,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAA;AACrE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,gBAAgB,EAAE,MAAM,UAAU,CAAA;AACvE,OAAO,EAAE,gBAAgB,EAAE,KAAK,yBAAyB,EAAE,KAAK,uBAAuB,EAAE,KAAK,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAC7I,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,KAAK,8BAA8B,EAAE,MAAM,oBAAoB,CAAA;AACvH,OAAO,EAAE,mBAAmB,EAAE,KAAK,0BAA0B,EAAE,KAAK,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACtI,OAAO,EACL,eAAe,EACf,SAAS,EACT,KAAK,cAAc,EACnB,KAAK,yBAAyB,EAC9B,KAAK,eAAe,EACpB,KAAK,aAAa,GACnB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,KAAK,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AACzH,OAAO,EAAE,kBAAkB,EAAE,8BAA8B,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAC1I,OAAO,EAAE,4BAA4B,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAC/E,OAAO,EACL,+BAA+B,EAC/B,mBAAmB,EACnB,uCAAuC,EACvC,gCAAgC,EAChC,0BAA0B,EAC1B,aAAa,EACb,gBAAgB,EAChB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,GAC7B,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAClF,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,KAAK,wBAAwB,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,GACvB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,YAAY,GAClB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,mBAAmB,EAAE,8BAA8B,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AACpH,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,mCAAmC,EACxC,KAAK,8BAA8B,EACnC,KAAK,4BAA4B,EACjC,KAAK,8BAA8B,EACnC,KAAK,6BAA6B,EAClC,KAAK,kBAAkB,EACvB,KAAK,6BAA6B,EAClC,KAAK,wBAAwB,EAC7B,KAAK,gCAAgC,EACrC,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,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,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,GACxB,MAAM,kBAAkB,CAAA"}
|
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,yBAAyB,EACzB,eAAe,EACf,wBAAwB,GAKzB,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC1F,OAAO,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAA;AACrE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAyB,MAAM,UAAU,CAAA;AACvE,OAAO,EAAE,gBAAgB,EAA4F,MAAM,kBAAkB,CAAA;AAC7I,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAuC,MAAM,oBAAoB,CAAA;AACvH,OAAO,EAAE,mBAAmB,EAA+E,MAAM,qBAAqB,CAAA;AACtI,OAAO,EACL,eAAe,EACf,SAAS,GAKV,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAiC,MAAM,oBAAoB,CAAA;AACzH,OAAO,EAAE,kBAAkB,EAAE,8BAA8B,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAC1I,OAAO,EAAE,4BAA4B,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAC/E,OAAO,EACL,+BAA+B,EAC/B,mBAAmB,EACnB,uCAAuC,EACvC,gCAAgC,EAChC,0BAA0B,EAC1B,aAAa,EACb,gBAAgB,GAKjB,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAClF,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,
|
|
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,yBAAyB,EACzB,eAAe,EACf,wBAAwB,GAKzB,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAC1F,OAAO,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAA;AACrE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAyB,MAAM,UAAU,CAAA;AACvE,OAAO,EAAE,gBAAgB,EAA4F,MAAM,kBAAkB,CAAA;AAC7I,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAuC,MAAM,oBAAoB,CAAA;AACvH,OAAO,EAAE,mBAAmB,EAA+E,MAAM,qBAAqB,CAAA;AACtI,OAAO,EACL,eAAe,EACf,SAAS,GAKV,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAiC,MAAM,oBAAoB,CAAA;AACzH,OAAO,EAAE,kBAAkB,EAAE,8BAA8B,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAC1I,OAAO,EAAE,4BAA4B,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAC/E,OAAO,EACL,+BAA+B,EAC/B,mBAAmB,EACnB,uCAAuC,EACvC,gCAAgC,EAChC,0BAA0B,EAC1B,aAAa,EACb,gBAAgB,GAKjB,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAClF,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,GAQpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,GAMd,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,mBAAmB,EAAE,8BAA8B,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AACpH,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,GAkCnB,MAAM,kBAAkB,CAAA"}
|
|
@@ -1,8 +1,16 @@
|
|
|
1
|
-
import type { RadarConfig, RadarSource, RadarState } from './radar-types.js';
|
|
1
|
+
import type { RadarConfig, RadarEvent, RadarSeverity, RadarSource, RadarState } from './radar-types.js';
|
|
2
2
|
export declare const RADAR_STATUS_SCHEMA: 'upstream-radar.radar-status/v1alpha1';
|
|
3
3
|
export type RadarMonitoringStatus = 'not-started' | 'healthy' | 'degraded';
|
|
4
4
|
export type RadarSourceStatus = 'not-run' | 'healthy' | 'degraded';
|
|
5
5
|
export type RadarCoverageStatus = 'complete' | 'incomplete';
|
|
6
|
+
export interface RadarStatusIncident {
|
|
7
|
+
incidentId: string;
|
|
8
|
+
kind: RadarEvent['kind'];
|
|
9
|
+
priority: RadarSeverity | 'attention';
|
|
10
|
+
project: string;
|
|
11
|
+
summary: string;
|
|
12
|
+
nextStep: string;
|
|
13
|
+
}
|
|
6
14
|
export interface RadarStatusSource {
|
|
7
15
|
source: RadarSource;
|
|
8
16
|
status: RadarSourceStatus;
|
|
@@ -30,6 +38,8 @@ export interface RadarStatusReport {
|
|
|
30
38
|
activeCompatibility: number;
|
|
31
39
|
activeSourceHealth: number;
|
|
32
40
|
pendingAnalysisTasks: number;
|
|
41
|
+
activeIncidents: RadarStatusIncident[];
|
|
42
|
+
activeIncidentOverflow: number;
|
|
33
43
|
}
|
|
34
44
|
export interface CreateRadarStatusOptions {
|
|
35
45
|
configFile: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radar-status.d.ts","sourceRoot":"","sources":["../../src/radar-status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"radar-status.d.ts","sourceRoot":"","sources":["../../src/radar-status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,WAAW,EACX,UAAU,EACV,aAAa,EACb,WAAW,EACX,UAAU,EAIX,MAAM,kBAAkB,CAAA;AAEzB,eAAO,MAAM,mBAAmB,EAAG,sCAA+C,CAAA;AAIlF,MAAM,MAAM,qBAAqB,GAAG,aAAa,GAAG,SAAS,GAAG,UAAU,CAAA;AAC1E,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAA;AAClE,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,YAAY,CAAA;AAE3D,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;IACxB,QAAQ,EAAE,aAAa,GAAG,WAAW,CAAA;IACrC,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,WAAW,CAAA;IACnB,MAAM,EAAE,iBAAiB,CAAA;IACzB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,OAAO,mBAAmB,CAAA;IAClC,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,OAAO,CAAA;IACpB,UAAU,EAAE,qBAAqB,CAAA;IACjC,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,QAAQ,EAAE,MAAM,CAAA;IAChB,aAAa,EAAE,MAAM,CAAA;IACrB,sBAAsB,EAAE,MAAM,CAAA;IAC9B,8BAA8B,EAAE,MAAM,CAAA;IACtC,gCAAgC,EAAE,MAAM,CAAA;IACxC,sBAAsB,EAAE,MAAM,CAAA;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,iBAAiB,EAAE,CAAA;IAC5B,qBAAqB,EAAE,MAAM,CAAA;IAC7B,mBAAmB,EAAE,MAAM,CAAA;IAC3B,kBAAkB,EAAE,MAAM,CAAA;IAC1B,oBAAoB,EAAE,MAAM,CAAA;IAC5B,eAAe,EAAE,mBAAmB,EAAE,CAAA;IACtC,sBAAsB,EAAE,MAAM,CAAA;CAC/B;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,OAAO,CAAA;CACrB;AAyHD,sFAAsF;AACtF,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,wBAAwB,GAChC,iBAAiB,CA+CnB;AAaD,qEAAqE;AACrE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAmDnE"}
|
package/dist/src/radar-status.js
CHANGED
|
@@ -19,6 +19,105 @@ function latestTimestamp(sources) {
|
|
|
19
19
|
.sort()
|
|
20
20
|
.at(-1);
|
|
21
21
|
}
|
|
22
|
+
function packageLabel(value) {
|
|
23
|
+
return `${display(value.name)}@${display(value.version)}`;
|
|
24
|
+
}
|
|
25
|
+
function sourceLabel(source) {
|
|
26
|
+
if (source === 'osv')
|
|
27
|
+
return 'OSV';
|
|
28
|
+
if (source === 'npm-releases')
|
|
29
|
+
return 'npm releases';
|
|
30
|
+
if (source === 'npm-candidate-graphs')
|
|
31
|
+
return 'npm candidate dependency graphs';
|
|
32
|
+
return 'GitHub releases';
|
|
33
|
+
}
|
|
34
|
+
function vulnerabilityStatusIncident(event) {
|
|
35
|
+
const firstPath = event.paths[0];
|
|
36
|
+
const path = firstPath === undefined
|
|
37
|
+
? 'dependency path unavailable'
|
|
38
|
+
: firstPath.map(packageLabel).join(' -> ');
|
|
39
|
+
const summary = `${packageLabel(event.affected)} is affected by ${display(event.advisory.id)} via ${path}`;
|
|
40
|
+
if (event.kind === 'malware') {
|
|
41
|
+
return {
|
|
42
|
+
incidentId: event.incidentId,
|
|
43
|
+
kind: event.kind,
|
|
44
|
+
priority: 'critical',
|
|
45
|
+
project: display(event.project.name),
|
|
46
|
+
summary,
|
|
47
|
+
nextStep: `Remove or isolate ${packageLabel(event.plugin)}, then ask the DSH Agent to assess project exposure.`,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
const fixedVersions = event.advisory.fixedVersions.slice(0, 4).map(item => display(item)).join(', ');
|
|
51
|
+
return {
|
|
52
|
+
incidentId: event.incidentId,
|
|
53
|
+
kind: event.kind,
|
|
54
|
+
priority: event.advisory.severity,
|
|
55
|
+
project: display(event.project.name),
|
|
56
|
+
summary,
|
|
57
|
+
nextStep: fixedVersions.length === 0
|
|
58
|
+
? `No published fix is recorded; ask the DSH Agent to assess containment or replacement for ${packageLabel(event.plugin)}.`
|
|
59
|
+
: `Review ${event.affected.name} fixed version(s) ${fixedVersions} with the DSH Agent before changing the plugin.`,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
function compatibilityStatusIncident(event) {
|
|
63
|
+
const firstCandidate = event.upgradePath?.firstCandidate?.candidate;
|
|
64
|
+
const candidate = firstCandidate === undefined ? event.candidate : firstCandidate;
|
|
65
|
+
const signal = event.signals.find(item => item.confidence === 'confirmed' || item.confidence === 'strong')
|
|
66
|
+
?? event.signals[0];
|
|
67
|
+
const signalText = signal === undefined ? 'needs project analysis' : display(signal.summary);
|
|
68
|
+
return {
|
|
69
|
+
incidentId: event.incidentId,
|
|
70
|
+
kind: event.kind,
|
|
71
|
+
priority: 'attention',
|
|
72
|
+
project: display(event.project.name),
|
|
73
|
+
summary: `${packageLabel(event.installed)} -> ${packageLabel(candidate)}: ${signalText}`,
|
|
74
|
+
nextStep: `Ask the DSH Agent to inspect project impact before applying ${packageLabel(candidate)}.`,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
function sourceHealthStatusIncident(event) {
|
|
78
|
+
const source = sourceLabel(event.source);
|
|
79
|
+
return {
|
|
80
|
+
incidentId: event.incidentId,
|
|
81
|
+
kind: event.kind,
|
|
82
|
+
priority: 'attention',
|
|
83
|
+
project: display(event.project.name),
|
|
84
|
+
summary: `${source} failed ${event.failureCount} consecutive check(s)`,
|
|
85
|
+
nextStep: `Restore ${source} before treating the absence of new alerts as a clean result.`,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
function statusIncident(event) {
|
|
89
|
+
if (event.kind === 'compatibility')
|
|
90
|
+
return compatibilityStatusIncident(event);
|
|
91
|
+
if (event.kind === 'source-health')
|
|
92
|
+
return sourceHealthStatusIncident(event);
|
|
93
|
+
return vulnerabilityStatusIncident(event);
|
|
94
|
+
}
|
|
95
|
+
function priorityRank(priority) {
|
|
96
|
+
if (priority === 'critical')
|
|
97
|
+
return 6;
|
|
98
|
+
if (priority === 'high')
|
|
99
|
+
return 5;
|
|
100
|
+
if (priority === 'medium')
|
|
101
|
+
return 4;
|
|
102
|
+
if (priority === 'low')
|
|
103
|
+
return 3;
|
|
104
|
+
if (priority === 'unknown')
|
|
105
|
+
return 2;
|
|
106
|
+
if (priority === 'info')
|
|
107
|
+
return 1;
|
|
108
|
+
return 0;
|
|
109
|
+
}
|
|
110
|
+
function activeIncidentSummary(state) {
|
|
111
|
+
const all = [
|
|
112
|
+
...Object.values(state.activeVulnerabilities).map(item => statusIncident(item.event)),
|
|
113
|
+
...Object.values(state.activeCompatibility).map(item => statusIncident(item.event)),
|
|
114
|
+
...Object.values(state.activeSourceHealth ?? {}).map(item => statusIncident(item.event)),
|
|
115
|
+
].sort((left, right) => (priorityRank(right.priority) - priorityRank(left.priority)
|
|
116
|
+
|| left.project.localeCompare(right.project)
|
|
117
|
+
|| left.incidentId.localeCompare(right.incidentId)));
|
|
118
|
+
const incidents = all.slice(0, 32);
|
|
119
|
+
return { incidents, overflow: all.length - incidents.length };
|
|
120
|
+
}
|
|
22
121
|
/** Build a network-free snapshot from the reviewed config and durable Radar state. */
|
|
23
122
|
export function createRadarStatus(config, state, options) {
|
|
24
123
|
const sources = RADAR_SOURCES.map(source => sourceStatus(source, state.sourceHealth?.[source]));
|
|
@@ -31,6 +130,7 @@ export function createRadarStatus(config, state, options) {
|
|
|
31
130
|
const requiredUnresolvedDependencies = config.projects.reduce((total, project) => total + project.plugins.reduce((count, plugin) => (count + (plugin.graph.unresolved?.filter(item => item.kind !== 'optional').length ?? 0)), 0), 0);
|
|
32
131
|
const optionalDependenciesNotInstalled = unresolvedDependencies - requiredUnresolvedDependencies;
|
|
33
132
|
const dshHostRuntimePackages = config.projects.reduce((total, project) => total + project.plugins.reduce((count, plugin) => (count + (plugin.graph.hostRuntime?.resolvedNodes ?? 0)), 0), 0);
|
|
133
|
+
const activeSummary = activeIncidentSummary(state);
|
|
34
134
|
return {
|
|
35
135
|
schema: RADAR_STATUS_SCHEMA,
|
|
36
136
|
configFile: options.configFile,
|
|
@@ -50,21 +150,14 @@ export function createRadarStatus(config, state, options) {
|
|
|
50
150
|
activeCompatibility: Object.keys(state.activeCompatibility).length,
|
|
51
151
|
activeSourceHealth: Object.keys(state.activeSourceHealth ?? {}).length,
|
|
52
152
|
pendingAnalysisTasks: state.pendingAnalysisTasks.length,
|
|
153
|
+
activeIncidents: activeSummary.incidents,
|
|
154
|
+
activeIncidentOverflow: activeSummary.overflow,
|
|
53
155
|
};
|
|
54
156
|
}
|
|
55
157
|
function display(value, maxLength = 512) {
|
|
56
158
|
const escaped = value.replace(/[\u0000-\u001f\u007f-\u009f]/g, character => (`\\u${character.codePointAt(0)?.toString(16).padStart(4, '0') ?? '0000'}`));
|
|
57
159
|
return escaped.length <= maxLength ? escaped : `${escaped.slice(0, maxLength)}…`;
|
|
58
160
|
}
|
|
59
|
-
function sourceLabel(source) {
|
|
60
|
-
if (source === 'osv')
|
|
61
|
-
return 'OSV';
|
|
62
|
-
if (source === 'npm-releases')
|
|
63
|
-
return 'npm releases';
|
|
64
|
-
if (source === 'npm-candidate-graphs')
|
|
65
|
-
return 'npm candidate dependency graphs';
|
|
66
|
-
return 'GitHub releases';
|
|
67
|
-
}
|
|
68
161
|
function plural(value, singular, multiple = `${singular}s`) {
|
|
69
162
|
return `${value} ${value === 1 ? singular : multiple}`;
|
|
70
163
|
}
|
|
@@ -94,10 +187,20 @@ export function renderRadarStatus(report) {
|
|
|
94
187
|
if (source.lastError !== undefined)
|
|
95
188
|
lines.push(` error: ${display(source.lastError, 2_048)}`);
|
|
96
189
|
}
|
|
190
|
+
lines.push('', report.activeIncidents.length === 0 ? 'Attention: none' : 'Attention:');
|
|
191
|
+
for (const incident of report.activeIncidents) {
|
|
192
|
+
lines.push(` [${incident.priority.toUpperCase()}] ${display(incident.project)}: ${display(incident.summary)}`, ` Next: ${display(incident.nextStep)}`);
|
|
193
|
+
}
|
|
194
|
+
if (report.activeIncidentOverflow > 0) {
|
|
195
|
+
lines.push(` … ${report.activeIncidentOverflow} more active incident(s) omitted from this summary`);
|
|
196
|
+
}
|
|
97
197
|
lines.push('', `Active vulnerabilities: ${report.activeVulnerabilities}`, `Active compatibility incidents: ${report.activeCompatibility}`, `Source-health incidents: ${report.activeSourceHealth}`, `Pending DSH analysis tasks: ${report.pendingAnalysisTasks}`);
|
|
98
198
|
if (report.monitoring === 'not-started') {
|
|
99
199
|
lines.push('', 'No completed check is recorded yet. Start DSH or run `radar check` once.');
|
|
100
200
|
}
|
|
201
|
+
if (report.pendingAnalysisTasks > 0) {
|
|
202
|
+
lines.push('', `Next: run \`upstream-radar task show ${display(report.stateFile)}\` to inspect the next queued DSH analysis.`);
|
|
203
|
+
}
|
|
101
204
|
return `${lines.join('\n')}\n`;
|
|
102
205
|
}
|
|
103
206
|
//# sourceMappingURL=radar-status.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radar-status.js","sourceRoot":"","sources":["../../src/radar-status.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"radar-status.js","sourceRoot":"","sources":["../../src/radar-status.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.19.
|
|
1
|
+
export declare const TOOL_VERSION = "0.19.4";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/src/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const TOOL_VERSION = '0.19.
|
|
1
|
+
export const TOOL_VERSION = '0.19.4';
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
package/docs/README.zh-CN.md
CHANGED
|
@@ -143,7 +143,7 @@ pnpm dlx --package=upstream-radar@latest upstream-radar doctor ./upstream-radar.
|
|
|
143
143
|
|
|
144
144
|
`doctor` 不访问 OSV、npm 或 GitHub,也不执行插件代码。它检查配置是否能解析、选中的 DSH profile 是否真的登记了 `upstream-radar`、overlay 是否指向同一份配置和状态文件、依赖覆盖是否完整,以及状态文件是否可读。只有接线被阻断时才返回非零;第一次还没有状态文件会显示为警告,并给出下一条命令。需要给其他工具读取时加上 `--json`。
|
|
145
145
|
|
|
146
|
-
生成的 overlay 会记录选中的 profile;如果初始化时传入了 `--registry <url>`,它也会被带入 DSH 运行时,避免后续 release 和候选依赖检查悄悄切回公共 npm。原生 DSH 每次轮询前,以及 CLI 的 `radar check/watch` 每次轮询前,都会重新读取这个 profile 的实际依赖图,因此之后安装、升级、卸载插件,或 DSH 宿主运行时发生变化时,不会继续悄悄监控旧快照;如果重读失败,本轮会停止,不会替换最后一次持久化状态。`radar status` 仍然只读取本地配置和状态,不会刷新 OSV/npm/GitHub
|
|
146
|
+
生成的 overlay 会记录选中的 profile;如果初始化时传入了 `--registry <url>`,它也会被带入 DSH 运行时,避免后续 release 和候选依赖检查悄悄切回公共 npm。原生 DSH 每次轮询前,以及 CLI 的 `radar check/watch` 每次轮询前,都会重新读取这个 profile 的实际依赖图,因此之后安装、升级、卸载插件,或 DSH 宿主运行时发生变化时,不会继续悄悄监控旧快照;如果重读失败,本轮会停止,不会替换最后一次持久化状态。`radar status` 仍然只读取本地配置和状态,不会刷新 OSV/npm/GitHub;它还会列出最重要的活动事件、精确依赖路径或候选信号,以及建议的下一步。`radar compare` 也只比较你明确提供的文件。如果不使用 `--dsh-patch`,仍可以使用 `UPSTREAM_RADAR_CONFIG`、`UPSTREAM_RADAR_STATE`、`UPSTREAM_RADAR_INTERVAL_SECONDS`、`UPSTREAM_RADAR_REGISTRY` 和 `UPSTREAM_RADAR_DEEP_CANDIDATES` 环境变量方式。
|
|
147
147
|
|
|
148
148
|
生成的依赖图对应 profile 当前实际安装的树。DSH 还会在 `profiles/node_modules` 维护一层共享的宿主运行时依赖;Radar 会把从这里解析到的包纳入漏洞查询,并明确标成 `dsh-host`,不会和插件自己带的依赖混在一起。如果一个必需依赖在 profile 和宿主依赖平面中都找不到,它会保留为“覆盖不完整”,不会被当成安全或不存在。当前平台没有安装的可选原生包仍会记录,但不会制造“必需依赖缺失”的假警报。显式传入 `--registry <url>` 才会使用公共 npm artifact 图,适合和 registry 解析结果做比较,但不是默认路径。
|
|
149
149
|
|
|
@@ -246,7 +246,7 @@ DSH Agent 收到的任务要求:只读分析、引用项目证据、保留不
|
|
|
246
246
|
|
|
247
247
|
已经支持:DSH profile 实际安装树和 npm lock 依赖图、重复版本路径、未解析依赖的覆盖提示、OSV 精确版本匹配、恶意包记录、npm release 监听(只接受高于当前安装版本的候选;npm 的 `latest` 回退不会制造 breaking 告警;最新版本有确定性阻断时会检查历史候选的 OSV 状态和最早一小段传递依赖图,并筛出第一个没有确定性阻断且没有已知漏洞路径、值得交给 DSH 分析的候选;图不完整、图解析或 OSV 失败时不推荐候选)、公开 GitHub Release 说明、OSV 故障时保留已确认状态、连续失败后的 source-health DSH notice、持久事件、DSH 原生投递,以及 Node/peer/exports/入口/bundle/版本边界检查;还包括不联网的 `doctor` 接线检查。
|
|
248
248
|
|
|
249
|
-
`init` 在省略 `--profile` 时可以自动选择唯一一个含第三方 bundle 的 DSH profile;多个候选仍要求显式指定。默认读取实际安装树,因此 pnpm override 和本地解析选择会被纳入;原生解析 pnpm lockfile 以支持安装前/CI 检查仍未实现。加上 `--dsh-patch <path>` 可以生成不依赖环境变量的 DSH overlay。`radar status`
|
|
249
|
+
`init` 在省略 `--profile` 时可以自动选择唯一一个含第三方 bundle 的 DSH profile;多个候选仍要求显式指定。默认读取实际安装树,因此 pnpm override 和本地解析选择会被纳入;原生解析 pnpm lockfile 以支持安装前/CI 检查仍未实现。加上 `--dsh-patch <path>` 可以生成不依赖环境变量的 DSH overlay。`radar status` 提供离线的首次运行检查、活动事件摘要和下一步提示,但不会替你刷新漏洞源,也不会自动升级插件。暂未支持 Yarn 图适配、changelog/比较 diff/迁移文档源、项目级 Session 精确路由、把 Agent 结论写回事件,以及自动创建 Issue 或 PR。
|
|
250
250
|
|
|
251
251
|
`radar watch` 是 CLI 监控入口,本身不会把任务投递给 DSH;需要 Agent 分析时应使用原生 DSH bundle。
|
|
252
252
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "upstream-radar",
|
|
3
|
-
"version": "0.19.
|
|
3
|
+
"version": "0.19.4",
|
|
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",
|