refactor(javascript): remove superseded full-IR analysis pipeline

This commit is contained in:
morluto committed 2026-10-24 23:49:25 +08:00
1 parent cc7cc8155a
commit e9abf39848
21 files changed
+410 -479

No files matched your search

@@ -2,13 +2,9 @@ import { javaScriptSemanticQueryInputSchema } from "../../domain/javascript/java
import { expect, it } from "vitest";
import { graphForJavaScript as graphFor } from "../../../tests/fixtures/javascriptSemanticGraph.js";
import { buildJavaScriptSemanticGraph } from "./JavaScriptSemanticGraphBuilder.js";
import type { JavaScriptArtifactAnalysis } from "./JavaScriptArtifactAnalysisTypes.js";
import { createJavaScriptSemanticGraphProjection } from "./JavaScriptSemanticGraphBuilder.js";
import { queryJavaScriptSemanticGraph } from "../../domain/javascript/javascriptSemanticQuery.js";
import { resolveJavaScriptSemanticEvidence } from "../../domain/javascript/javascriptSemanticGraph.js";
import { JavaScriptJsonDocuments } from "./JavaScriptJsonDocuments.js";
import { analyzeJavaScriptArtifactFiles } from "./JavaScriptArtifactAnalysis.js";
import { JAVASCRIPT_SEMANTIC_RELATION_FAMILIES } from "../../domain/javascript/javascriptSemanticGraphSchemas.js";
const SHA256 = "a".repeat(64);
const GRAPH_ID = `jag_${"b".repeat(64)}`;
@@ -387,10 +383,9 @@ it("does not promote transformed return expressions to resolved aliases", () =>
});
it("uses unavailable evidence when no source produced semantic IR", () => {
const graph = buildJavaScriptSemanticGraph({
rootArtifactSha256: SHA256,
applicationGraph: { graph_id: GRAPH_ID, nodes: [] },
analysis: emptyAnalysis(),
const graph = createJavaScriptSemanticGraphProjection().finish(SHA256, {
graph_id: GRAPH_ID,
nodes: [],
});
const root = graph.nodes[0];
if (root === undefined) throw new Error("Expected unavailable semantic root");
@@ -402,68 +397,3 @@ it("uses unavailable evidence when no source produced semantic IR", () => {
},
);
});
it("preserves an unparseable source identity and unknown semantic extents", () => {
const source = "export const broken = ;";
const analysis = analyzeJavaScriptArtifactFiles({
files: [
{
path: "broken.mjs",
container_sha256: SHA256,
sha256: SHA256,
bytes: Buffer.byteLength(source),
inventory_artifact_id: `art_${SHA256}`,
kind: "javascript",
unpacked: false,
text: { included: true, value: source },
},
],
unavailable_relevant_files: [],
containers: [],
text_bytes_read: Buffer.byteLength(source),
invalid_utf8_files: 0,
});
expect(analysis.files[0]?.javascript?.parse_status).toBe("failed");
const graph = buildJavaScriptSemanticGraph({
rootArtifactSha256: SHA256,
applicationGraph: { graph_id: GRAPH_ID, nodes: [] },
analysis,
});
const module = graph.nodes.find(
({ kind, identity }) =>
kind === "module" && identity.module_path === "broken.mjs",
);
expect(module).toBeDefined();
expect(graph.unknowns).toHaveLength(
JAVASCRIPT_SEMANTIC_RELATION_FAMILIES.length,
);
for (const unknown of graph.unknowns) {
expect(unknown).toMatchObject({
node_id: module?.node_id,
reason: "incomplete-module",
});
expect(unknown.detail).toContain("syntax could not be parsed");
}
expect(graph.coverage).toMatchObject({
status: "partial",
truncated: false,
omitted_nodes: null,
omitted_relations: null,
limits: [],
});
});
const emptyAnalysis = (): JavaScriptArtifactAnalysis => ({
jsonDocuments: new JavaScriptJsonDocuments(),
files: [],
packages: [],
json_modules: [],
html_scripts: [],
html_inline_scripts: [],
source_maps: [],
visited_ast_nodes: 0,
findings: 0,
modules: 0,
parse_failures: 0,
limitations: [],
});