upstream-radar 0.35.0 → 0.37.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 +36 -8
- package/dist/src/cli.js +12 -4
- package/dist/src/cli.js.map +1 -1
- package/dist/src/dependency-index.d.ts +32 -0
- package/dist/src/dependency-index.d.ts.map +1 -1
- package/dist/src/dependency-index.js +306 -16
- package/dist/src/dependency-index.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/upstream-observer.d.ts +13 -0
- package/dist/src/upstream-observer.d.ts.map +1 -1
- package/dist/src/upstream-observer.js +79 -3
- package/dist/src/upstream-observer.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 +43 -18
- package/package.json +2 -1
- package/schemas/reverse-dependency-index.schema.json +132 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upstream-observer.d.ts","sourceRoot":"","sources":["../../src/upstream-observer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"upstream-observer.d.ts","sourceRoot":"","sources":["../../src/upstream-observer.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { createHash, randomUUID } from 'node:crypto';
|
|
|
2
2
|
import { mkdir, readFile, rename, rm, writeFile } from 'node:fs/promises';
|
|
3
3
|
import { spawn } from 'node:child_process';
|
|
4
4
|
import { dirname, resolve } from 'node:path';
|
|
5
|
+
import { findReverseDependencyImpacts } from './dependency-index.js';
|
|
5
6
|
import { parseNpmLockGraph, parsePnpmLockGraph } from './graph.js';
|
|
6
7
|
import { parsePackageManifestSnapshot } from './inventory.js';
|
|
7
8
|
import { buildUpstreamDownstreamIR, parseUpstreamDownstreamIR } from './upstream-alignment.js';
|
|
@@ -1112,6 +1113,38 @@ function graphChanges(before, after) {
|
|
|
1112
1113
|
removedUnresolved: [...beforeUnresolved].filter(edge => !afterUnresolved.has(edge)).sort(),
|
|
1113
1114
|
};
|
|
1114
1115
|
}
|
|
1116
|
+
function addObservedPackageVersion(versions, side, name, version) {
|
|
1117
|
+
if (name === undefined || version === undefined || name === '' || version === '')
|
|
1118
|
+
return;
|
|
1119
|
+
const entry = versions.get(name) ?? { before: new Set(), after: new Set() };
|
|
1120
|
+
entry[side].add(version);
|
|
1121
|
+
versions.set(name, entry);
|
|
1122
|
+
}
|
|
1123
|
+
function addSnapshotPackages(versions, side, snapshot) {
|
|
1124
|
+
addObservedPackageVersion(versions, side, snapshot.manifest.name, snapshot.manifest.version);
|
|
1125
|
+
addObservedPackageVersion(versions, side, snapshot.package?.name, snapshot.package?.version);
|
|
1126
|
+
for (const node of snapshot.graph?.nodes ?? [])
|
|
1127
|
+
addObservedPackageVersion(versions, side, node.name, node.version);
|
|
1128
|
+
}
|
|
1129
|
+
/** Convert two complete snapshots into package-name changes for downstream lookup. */
|
|
1130
|
+
function reverseDependencyChanges(before, after) {
|
|
1131
|
+
const versions = new Map();
|
|
1132
|
+
addSnapshotPackages(versions, 'before', before);
|
|
1133
|
+
addSnapshotPackages(versions, 'after', after);
|
|
1134
|
+
return [...versions.entries()]
|
|
1135
|
+
.filter(([, value]) => {
|
|
1136
|
+
const beforeVersions = [...value.before].sort();
|
|
1137
|
+
const afterVersions = [...value.after].sort();
|
|
1138
|
+
return JSON.stringify(beforeVersions) !== JSON.stringify(afterVersions);
|
|
1139
|
+
})
|
|
1140
|
+
.map(([name, value]) => ({
|
|
1141
|
+
ecosystem: 'npm',
|
|
1142
|
+
name,
|
|
1143
|
+
beforeVersions: [...value.before].sort(),
|
|
1144
|
+
afterVersions: [...value.after].sort(),
|
|
1145
|
+
}))
|
|
1146
|
+
.sort((left, right) => left.name.localeCompare(right.name));
|
|
1147
|
+
}
|
|
1115
1148
|
function packageChanged(before, after) {
|
|
1116
1149
|
if (before.package?.name !== after.package?.name || before.package?.version !== after.package?.version)
|
|
1117
1150
|
return true;
|
|
@@ -1165,10 +1198,13 @@ function meaningfulChange(sourceChange, before, after) {
|
|
|
1165
1198
|
function createTaskId(targetId, beforeCommit, afterCommit, packageVersion, graphDigest) {
|
|
1166
1199
|
return `upstream-task-${hash([targetId, beforeCommit, afterCommit, packageVersion ?? '', graphDigest ?? ''].join('\0'))}`;
|
|
1167
1200
|
}
|
|
1168
|
-
function createChange(target, before, after, sourceChange) {
|
|
1201
|
+
function createChange(target, before, after, sourceChange, reverseDependencyIndex) {
|
|
1169
1202
|
const manifest = manifestChanges(before.manifest, after.manifest);
|
|
1170
1203
|
const graph = graphChanges(before.graph, after.graph);
|
|
1171
1204
|
const decision = meaningfulChange(sourceChange, before, after);
|
|
1205
|
+
const reverseDependencyImpacts = reverseDependencyIndex === undefined
|
|
1206
|
+
? []
|
|
1207
|
+
: findReverseDependencyImpacts(reverseDependencyIndex, reverseDependencyChanges(before, after));
|
|
1172
1208
|
const taskId = decision.meaningful
|
|
1173
1209
|
? createTaskId(target.id, before.source.commit, after.source.commit, after.package?.version, after.graph?.digest)
|
|
1174
1210
|
: undefined;
|
|
@@ -1183,6 +1219,7 @@ function createChange(target, before, after, sourceChange) {
|
|
|
1183
1219
|
...(graph === undefined ? {} : { graph }),
|
|
1184
1220
|
reasons: decision.reasons,
|
|
1185
1221
|
meaningful: decision.meaningful,
|
|
1222
|
+
...(reverseDependencyImpacts.length === 0 ? {} : { reverseDependencyImpacts }),
|
|
1186
1223
|
...(taskId === undefined ? {} : { taskId }),
|
|
1187
1224
|
};
|
|
1188
1225
|
}
|
|
@@ -1227,7 +1264,8 @@ export function renderUpstreamChangeAgentPrompt(task) {
|
|
|
1227
1264
|
3. 如果需要项目代码证据,只读取当前项目已经存在的文件;不要为了验证结论安装包或执行上游代码。
|
|
1228
1265
|
4. 区分源码变化、发布包变化、依赖图变化和模型判断。只有明确指出文件、配置、符号或“不知道缺少什么证据”,结论才算完整。
|
|
1229
1266
|
5. breaking_change 只能在有明确入口、导出、DSH bundle、peer/API 或发布说明证据时判断;不因为版本号变化就直接断言。
|
|
1230
|
-
6.
|
|
1267
|
+
6. 如果 change_json.reverseDependencyImpacts 存在,它表示静态反向索引找到的下游插件和依赖路径;把它当作影响范围证据,不要把“可能受影响”写成“已经损坏”。
|
|
1268
|
+
7. 返回严格 JSON 对象,字段只能是 impact、confidence、evidence、breaking_change、dependency_risk、recommended_action、urgency、reasoning_summary。
|
|
1231
1269
|
|
|
1232
1270
|
expected_output:
|
|
1233
1271
|
${JSON.stringify(task.expectedOutput, null, 2)}
|
|
@@ -1558,7 +1596,7 @@ export async function runObserver(config, previousState, options = {}) {
|
|
|
1558
1596
|
nonRuntimeFiles: [],
|
|
1559
1597
|
}
|
|
1560
1598
|
: await source.compare(current.source.repository, before.source.commit, current.source.commit);
|
|
1561
|
-
const change = createChange(configuredTarget, before, current, sourceChange);
|
|
1599
|
+
const change = createChange(configuredTarget, before, current, sourceChange, options.reverseDependencyIndex);
|
|
1562
1600
|
if (change.reasons.length === 0)
|
|
1563
1601
|
continue;
|
|
1564
1602
|
let reviewedChange = change;
|
|
@@ -1628,6 +1666,16 @@ export async function runObserver(config, previousState, options = {}) {
|
|
|
1628
1666
|
targetsChecked: config.targets.length,
|
|
1629
1667
|
baselineTargets,
|
|
1630
1668
|
alignmentFindings,
|
|
1669
|
+
...(options.reverseDependencyIndex === undefined ? {} : {
|
|
1670
|
+
reverseDependencyIndex: {
|
|
1671
|
+
observations: options.reverseDependencyIndex.observations,
|
|
1672
|
+
plugins: options.reverseDependencyIndex.plugins.length,
|
|
1673
|
+
dependencies: options.reverseDependencyIndex.dependencies.length,
|
|
1674
|
+
completeObservations: options.reverseDependencyIndex.coverage.completeObservations,
|
|
1675
|
+
incompleteObservations: options.reverseDependencyIndex.coverage.incompleteObservations,
|
|
1676
|
+
unresolvedEdges: options.reverseDependencyIndex.coverage.unresolvedEdges,
|
|
1677
|
+
},
|
|
1678
|
+
}),
|
|
1631
1679
|
changes,
|
|
1632
1680
|
pendingTasks: pendingTasks.map(task => task.id),
|
|
1633
1681
|
pendingTaskDetails: pendingTasks.map(summarizePendingTask),
|
|
@@ -1693,6 +1741,7 @@ function summarizePendingTask(task) {
|
|
|
1693
1741
|
removedEdges: (change.graph?.removedEdges ?? []).slice(0, 24),
|
|
1694
1742
|
addedUnresolved: (change.graph?.addedUnresolved ?? []).slice(0, 24),
|
|
1695
1743
|
removedUnresolved: (change.graph?.removedUnresolved ?? []).slice(0, 24),
|
|
1744
|
+
...(change.reverseDependencyImpacts === undefined ? {} : { reverseDependencyImpacts: structuredClone(change.reverseDependencyImpacts) }),
|
|
1696
1745
|
...(change.artifactReview === undefined ? {} : { artifactReview: structuredClone(change.artifactReview) }),
|
|
1697
1746
|
};
|
|
1698
1747
|
}
|
|
@@ -1707,11 +1756,31 @@ function renderAlignment(lines, alignment, label) {
|
|
|
1707
1756
|
lines.push(` Alignment next step: ${check.remediation}`);
|
|
1708
1757
|
}
|
|
1709
1758
|
}
|
|
1759
|
+
function renderReverseDependencyImpacts(lines, impacts, label = 'Downstream impact') {
|
|
1760
|
+
for (const impact of impacts.slice(0, 32)) {
|
|
1761
|
+
const from = impact.changedFrom.length === 0 ? 'not observed' : impact.changedFrom.join(', ');
|
|
1762
|
+
const to = impact.changedTo.length === 0 ? 'not observed' : impact.changedTo.join(', ');
|
|
1763
|
+
lines.push(`${label}: ${impact.dependency.name} (${from} → ${to}); ${impact.dependents.length}${impact.truncated ? '+' : ''} downstream plugin(s); coverage ${impact.coverage}`);
|
|
1764
|
+
for (const dependent of impact.dependents.slice(0, 8)) {
|
|
1765
|
+
const project = dependent.project === undefined ? '' : ` [${dependent.project.name}]`;
|
|
1766
|
+
lines.push(` ${dependent.plugin.name}@${dependent.plugin.version}${project} (${dependent.coverage})`);
|
|
1767
|
+
for (const path of dependent.paths.slice(0, 2))
|
|
1768
|
+
lines.push(` ${path.nodes.join(' → ')}`);
|
|
1769
|
+
if (dependent.paths.length > 2)
|
|
1770
|
+
lines.push(` ... ${dependent.paths.length - 2} more path(s)`);
|
|
1771
|
+
}
|
|
1772
|
+
if (impact.truncated)
|
|
1773
|
+
lines.push(' ... additional downstream plugins omitted from this bounded report');
|
|
1774
|
+
}
|
|
1775
|
+
}
|
|
1710
1776
|
export function renderObserverReport(report) {
|
|
1711
1777
|
const lines = [];
|
|
1712
1778
|
const alignmentFindings = report.alignmentFindings.filter(item => item.alignment.status !== 'aligned');
|
|
1713
1779
|
if (report.changes.length === 0 && report.errors.length === 0 && report.pendingTasks.length === 0 && alignmentFindings.length === 0) {
|
|
1714
1780
|
lines.push(`No meaningful upstream changes. Checked ${report.targetsChecked} target(s); DSH Agent was not called.`);
|
|
1781
|
+
if (report.reverseDependencyIndex !== undefined) {
|
|
1782
|
+
lines.push(`Loaded downstream reverse index: ${report.reverseDependencyIndex.plugins} plugin(s), ${report.reverseDependencyIndex.dependencies} dependency coordinate(s); coverage ${report.reverseDependencyIndex.completeObservations} complete / ${report.reverseDependencyIndex.incompleteObservations} incomplete.`);
|
|
1783
|
+
}
|
|
1715
1784
|
if (report.baselineTargets.length > 0)
|
|
1716
1785
|
lines.push(`Created baseline for: ${report.baselineTargets.join(', ')}.`);
|
|
1717
1786
|
return `${lines.join('\n')}\n`;
|
|
@@ -1720,6 +1789,9 @@ export function renderObserverReport(report) {
|
|
|
1720
1789
|
lines.push('');
|
|
1721
1790
|
lines.push(`Checked at: ${report.checkedAt}`);
|
|
1722
1791
|
lines.push(`Targets: ${report.targetsChecked}; baselines: ${report.baselineTargets.length}; changes: ${report.changes.length}`);
|
|
1792
|
+
if (report.reverseDependencyIndex !== undefined) {
|
|
1793
|
+
lines.push(`Downstream reverse index: ${report.reverseDependencyIndex.plugins} plugin(s), ${report.reverseDependencyIndex.dependencies} dependency coordinate(s); coverage ${report.reverseDependencyIndex.completeObservations} complete / ${report.reverseDependencyIndex.incompleteObservations} incomplete.`);
|
|
1794
|
+
}
|
|
1723
1795
|
lines.push('');
|
|
1724
1796
|
if (report.baselineTargets.length > 0) {
|
|
1725
1797
|
lines.push(`Baseline created: ${report.baselineTargets.join(', ')}`);
|
|
@@ -1767,6 +1839,8 @@ export function renderObserverReport(report) {
|
|
|
1767
1839
|
lines.push(`Coverage change: resolved dependency edges: ${removedUnresolved.slice(0, 8).join(', ')}`);
|
|
1768
1840
|
}
|
|
1769
1841
|
}
|
|
1842
|
+
if (change.reverseDependencyImpacts !== undefined)
|
|
1843
|
+
renderReverseDependencyImpacts(lines, change.reverseDependencyImpacts);
|
|
1770
1844
|
if (change.reasons.length > 0)
|
|
1771
1845
|
lines.push(`Reasons: ${change.reasons.join('; ')}`);
|
|
1772
1846
|
if (change.current.package !== undefined) {
|
|
@@ -1833,6 +1907,8 @@ export function renderObserverReport(report) {
|
|
|
1833
1907
|
lines.push(`New unresolved dependency edges: ${task.addedUnresolved.join(', ')}`);
|
|
1834
1908
|
if (task.removedUnresolved.length > 0)
|
|
1835
1909
|
lines.push(`Resolved dependency edges: ${task.removedUnresolved.join(', ')}`);
|
|
1910
|
+
if (task.reverseDependencyImpacts !== undefined)
|
|
1911
|
+
renderReverseDependencyImpacts(lines, task.reverseDependencyImpacts, 'Downstream impact');
|
|
1836
1912
|
if (task.reasons.length > 0)
|
|
1837
1913
|
lines.push(`Reasons: ${task.reasons.join('; ')}`);
|
|
1838
1914
|
if (task.artifactReview !== undefined) {
|