ai-spector 0.7.0 → 0.7.2
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/dist/core/graph/InMemoryGraph.d.ts +20 -1
- package/dist/core/graph/InMemoryGraph.d.ts.map +1 -1
- package/dist/core/graph/InMemoryGraph.js +238 -1
- package/dist/core/graph/InMemoryGraph.js.map +1 -1
- package/dist/core/graph/config.d.ts +18 -0
- package/dist/core/graph/config.d.ts.map +1 -0
- package/dist/core/graph/config.js +30 -0
- package/dist/core/graph/config.js.map +1 -0
- package/dist/core/graph/expand-path-nodes.d.ts +28 -0
- package/dist/core/graph/expand-path-nodes.d.ts.map +1 -0
- package/dist/core/graph/expand-path-nodes.js +84 -0
- package/dist/core/graph/expand-path-nodes.js.map +1 -0
- package/dist/core/graph/health.d.ts +18 -0
- package/dist/core/graph/health.d.ts.map +1 -0
- package/dist/core/graph/health.js +45 -0
- package/dist/core/graph/health.js.map +1 -0
- package/dist/core/graph/impact.d.ts +52 -3
- package/dist/core/graph/impact.d.ts.map +1 -1
- package/dist/core/graph/impact.js +199 -2
- package/dist/core/graph/impact.js.map +1 -1
- package/dist/core/graph/index.d.ts +34 -0
- package/dist/core/graph/index.d.ts.map +1 -0
- package/dist/core/graph/index.js +18 -0
- package/dist/core/graph/index.js.map +1 -0
- package/dist/core/graph/knowledge.d.ts +80 -3
- package/dist/core/graph/knowledge.d.ts.map +1 -1
- package/dist/core/graph/knowledge.js +84 -1
- package/dist/core/graph/knowledge.js.map +1 -1
- package/dist/core/graph/layer-audit.d.ts +62 -3
- package/dist/core/graph/layer-audit.d.ts.map +1 -1
- package/dist/core/graph/layer-audit.js +239 -21
- package/dist/core/graph/layer-audit.js.map +1 -1
- package/dist/core/graph/patch.d.ts +22 -0
- package/dist/core/graph/patch.d.ts.map +1 -0
- package/dist/core/graph/patch.js +62 -0
- package/dist/core/graph/patch.js.map +1 -0
- package/dist/core/graph/path-target-edges.d.ts +4 -1
- package/dist/core/graph/path-target-edges.d.ts.map +1 -1
- package/dist/core/graph/path-target-edges.js +8 -1
- package/dist/core/graph/path-target-edges.js.map +1 -1
- package/dist/core/graph/project.d.ts +77 -0
- package/dist/core/graph/project.d.ts.map +1 -0
- package/dist/core/graph/project.js +147 -0
- package/dist/core/graph/project.js.map +1 -0
- package/dist/core/graph/query.d.ts +18 -2
- package/dist/core/graph/query.d.ts.map +1 -1
- package/dist/core/graph/query.js +147 -1
- package/dist/core/graph/query.js.map +1 -1
- package/dist/core/graph/registry.d.ts +37 -0
- package/dist/core/graph/registry.d.ts.map +1 -0
- package/dist/core/graph/registry.js +51 -0
- package/dist/core/graph/registry.js.map +1 -0
- package/dist/core/graph/resolve.d.ts +30 -3
- package/dist/core/graph/resolve.d.ts.map +1 -1
- package/dist/core/graph/resolve.js +238 -4
- package/dist/core/graph/resolve.js.map +1 -1
- package/dist/core/graph/rules/default-impact.json +24 -0
- package/dist/core/graph/session.d.ts +34 -0
- package/dist/core/graph/session.d.ts.map +1 -0
- package/dist/core/graph/session.js +64 -0
- package/dist/core/graph/session.js.map +1 -0
- package/dist/core/graph/state.d.ts +21 -0
- package/dist/core/graph/state.d.ts.map +1 -0
- package/dist/core/graph/state.js +20 -0
- package/dist/core/graph/state.js.map +1 -0
- package/dist/core/graph/stats.d.ts +10 -0
- package/dist/core/graph/stats.d.ts.map +1 -0
- package/dist/core/graph/stats.js +23 -0
- package/dist/core/graph/stats.js.map +1 -0
- package/dist/core/graph/translation-queue.d.ts +111 -0
- package/dist/core/graph/translation-queue.d.ts.map +1 -0
- package/dist/core/graph/translation-queue.js +109 -0
- package/dist/core/graph/translation-queue.js.map +1 -0
- package/dist/core/operations/cocoindex.d.ts +1 -1
- package/dist/core/operations/cocoindex.d.ts.map +1 -1
- package/dist/core/operations/graph-impact.d.ts +1 -1
- package/dist/core/operations/graph-impact.d.ts.map +1 -1
- package/dist/core/operations/graph-query.d.ts +1 -1
- package/dist/core/operations/graph-query.d.ts.map +1 -1
- package/dist/core/operations/graph-report.d.ts +2 -3
- package/dist/core/operations/graph-report.d.ts.map +1 -1
- package/dist/core/operations/graph-report.js +22 -1
- package/dist/core/operations/graph-report.js.map +1 -1
- package/dist/core/visualize/stats.d.ts +3 -3
- package/dist/core/visualize/stats.d.ts.map +1 -1
- package/dist/core/visualize/stats.js +2 -2
- package/dist/core/visualize/stats.js.map +1 -1
- package/dist/interfaces/cli/format/graph.d.ts +1 -1
- package/dist/interfaces/cli/format/graph.d.ts.map +1 -1
- package/dist/interfaces/mcp/schemas.d.ts +2 -2
- package/dist/interfaces/sdk/index.d.ts +2 -2
- package/dist/interfaces/sdk/index.d.ts.map +1 -1
- package/dist/interfaces/sdk/index.js +2 -2
- package/dist/interfaces/sdk/index.js.map +1 -1
- package/package.json +3 -7
- package/scaffold/cursor/skills/ai-spector-setup/SKILL.md +16 -9
- package/scaffold/cursor/skills/ai-spector-setup/references/cli-setup.md +66 -0
- package/scaffold/cursor/skills/ai-spector-setup/references/runbook.md +74 -20
|
@@ -1,6 +1,203 @@
|
|
|
1
1
|
import { readJson } from "../util/fs.js";
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import { projectionPathForNode } from "./query.js";
|
|
3
|
+
import { createRequire } from "module";
|
|
4
|
+
const _require = createRequire(import.meta.url);
|
|
5
|
+
const defaultImpactRules = _require("./rules/default-impact.json");
|
|
6
|
+
function maxDepth(d) {
|
|
7
|
+
return d === "unbounded" ? 10_000 : d;
|
|
8
|
+
}
|
|
9
|
+
function runBfs(g, seeds, rules, globalSeen, maxNodes) {
|
|
10
|
+
const provenance = new Map();
|
|
11
|
+
const queue = seeds.map((id) => ({ id, depth: 0 }));
|
|
12
|
+
const cap = maxNodes;
|
|
13
|
+
let capped = false;
|
|
14
|
+
while (queue.length > 0) {
|
|
15
|
+
const { id: current, depth } = queue.shift();
|
|
16
|
+
if (depth >= cap) {
|
|
17
|
+
capped = true;
|
|
18
|
+
continue;
|
|
19
|
+
}
|
|
20
|
+
for (const [edgeType, rule] of Object.entries(rules)) {
|
|
21
|
+
const limit = maxDepth(rule.depth);
|
|
22
|
+
if (depth >= limit)
|
|
23
|
+
continue;
|
|
24
|
+
if (rule.direction === "out") {
|
|
25
|
+
for (const e of g.outEdges.get(current) ?? []) {
|
|
26
|
+
if (e.type !== edgeType || globalSeen.has(e.to))
|
|
27
|
+
continue;
|
|
28
|
+
globalSeen.add(e.to);
|
|
29
|
+
provenance.set(e.to, { fromId: current, edgeType });
|
|
30
|
+
queue.push({ id: e.to, depth: depth + 1 });
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
for (const e of g.inEdges.get(current) ?? []) {
|
|
35
|
+
if (e.type !== edgeType || globalSeen.has(e.from))
|
|
36
|
+
continue;
|
|
37
|
+
globalSeen.add(e.from);
|
|
38
|
+
provenance.set(e.from, { fromId: current, edgeType });
|
|
39
|
+
queue.push({ id: e.from, depth: depth + 1 });
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return { provenance, capped };
|
|
45
|
+
}
|
|
46
|
+
function makeEntry(g, id, prov) {
|
|
47
|
+
const node = g.nodesById.get(id);
|
|
48
|
+
return {
|
|
49
|
+
id,
|
|
50
|
+
type: node.type,
|
|
51
|
+
reason: `${prov.edgeType} from ${prov.fromId}`,
|
|
52
|
+
projectionPath: projectionPathForNode(g, id),
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
export function parseImpactRules(json) {
|
|
56
|
+
const raw = json;
|
|
57
|
+
if (raw.version !== 2) {
|
|
58
|
+
throw new Error(`rules.impact.json version ${raw.version ?? "unknown"} is not supported. Expected version 2.`);
|
|
59
|
+
}
|
|
60
|
+
return json;
|
|
61
|
+
}
|
|
62
|
+
export const DEFAULT_IMPACT_RULES = parseImpactRules(defaultImpactRules);
|
|
63
|
+
export function computeImpact(g, originId, change, rules) {
|
|
64
|
+
const origin = g.nodesById.get(originId);
|
|
65
|
+
if (!origin)
|
|
66
|
+
throw new Error(`Unknown node: ${originId}`);
|
|
67
|
+
const result = {
|
|
68
|
+
origin: { id: originId, type: origin.type, change },
|
|
69
|
+
regenerate: [],
|
|
70
|
+
review: [],
|
|
71
|
+
affectedOutputPaths: [],
|
|
72
|
+
};
|
|
73
|
+
const regenerateTypes = new Set(rules.buckets.regenerate);
|
|
74
|
+
const reviewTypes = new Set(rules.buckets.review);
|
|
75
|
+
const globalSeen = new Set([originId]);
|
|
76
|
+
let truncated = false;
|
|
77
|
+
const maxNodes = rules.maxNodes ?? 500;
|
|
78
|
+
const { provenance: p1, capped: c1 } = runBfs(g, [originId], rules.pass1_expand, globalSeen, maxNodes);
|
|
79
|
+
if (c1)
|
|
80
|
+
truncated = true;
|
|
81
|
+
const domainSeeds = [];
|
|
82
|
+
for (const [id, prov] of p1) {
|
|
83
|
+
const node = g.nodesById.get(id);
|
|
84
|
+
if (!node)
|
|
85
|
+
continue;
|
|
86
|
+
if (regenerateTypes.has(node.type)) {
|
|
87
|
+
result.regenerate.push(makeEntry(g, id, prov));
|
|
88
|
+
}
|
|
89
|
+
else if (reviewTypes.has(node.type)) {
|
|
90
|
+
result.review.push(makeEntry(g, id, prov));
|
|
91
|
+
domainSeeds.push(id);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
if (reviewTypes.has(origin.type)) {
|
|
95
|
+
domainSeeds.push(originId);
|
|
96
|
+
}
|
|
97
|
+
if (domainSeeds.length > 0) {
|
|
98
|
+
const { provenance: p2, capped: c2 } = runBfs(g, domainSeeds, rules.pass2_downstream, globalSeen, maxNodes);
|
|
99
|
+
if (c2)
|
|
100
|
+
truncated = true;
|
|
101
|
+
for (const [id, prov] of p2) {
|
|
102
|
+
const node = g.nodesById.get(id);
|
|
103
|
+
if (!node)
|
|
104
|
+
continue;
|
|
105
|
+
if (regenerateTypes.has(node.type)) {
|
|
106
|
+
result.regenerate.push(makeEntry(g, id, prov));
|
|
107
|
+
}
|
|
108
|
+
else if (reviewTypes.has(node.type)) {
|
|
109
|
+
result.review.push(makeEntry(g, id, prov));
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
if (truncated)
|
|
114
|
+
result.truncated = true;
|
|
115
|
+
result.regenerate.sort((a, b) => a.id.localeCompare(b.id));
|
|
116
|
+
result.review.sort((a, b) => a.id.localeCompare(b.id));
|
|
117
|
+
for (const entry of result.regenerate) {
|
|
118
|
+
for (const e of g.outEdges.get(entry.id) ?? []) {
|
|
119
|
+
if (e.type === "rendersTo")
|
|
120
|
+
result.affectedOutputPaths.push(e.to);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
result.affectedOutputPaths.sort();
|
|
124
|
+
const affectedDocIds = new Set(result.regenerate.filter((e) => g.nodesById.get(e.id)?.type === "document").map((e) => e.id));
|
|
125
|
+
if (origin.type === "document")
|
|
126
|
+
affectedDocIds.add(originId);
|
|
127
|
+
const staleTranslations = [];
|
|
128
|
+
for (const docId of affectedDocIds) {
|
|
129
|
+
for (const e of g.inEdges.get(docId) ?? []) {
|
|
130
|
+
if (e.type !== "translationOf")
|
|
131
|
+
continue;
|
|
132
|
+
const n = g.nodesById.get(e.from);
|
|
133
|
+
if (!n)
|
|
134
|
+
continue;
|
|
135
|
+
staleTranslations.push({
|
|
136
|
+
id: e.from,
|
|
137
|
+
type: n.type,
|
|
138
|
+
reason: `translationOf ${docId}`,
|
|
139
|
+
projectionPath: projectionPathForNode(g, e.from),
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
if (staleTranslations.length > 0) {
|
|
144
|
+
staleTranslations.sort((a, b) => a.id.localeCompare(b.id));
|
|
145
|
+
result.staleTranslations = staleTranslations;
|
|
146
|
+
}
|
|
147
|
+
return result;
|
|
148
|
+
}
|
|
149
|
+
export function mergeImpactResults(results, gitSeeds) {
|
|
150
|
+
if (results.length === 0)
|
|
151
|
+
throw new Error("mergeImpactResults requires at least one result");
|
|
152
|
+
if (results.length === 1) {
|
|
153
|
+
const single = { ...results[0] };
|
|
154
|
+
if (gitSeeds?.length)
|
|
155
|
+
single.gitSeeds = gitSeeds;
|
|
156
|
+
return single;
|
|
157
|
+
}
|
|
158
|
+
const merged = {
|
|
159
|
+
origin: {
|
|
160
|
+
id: results.map((r) => r.origin.id).join(","),
|
|
161
|
+
type: "multi",
|
|
162
|
+
change: results[0].origin.change,
|
|
163
|
+
},
|
|
164
|
+
regenerate: [],
|
|
165
|
+
review: [],
|
|
166
|
+
affectedOutputPaths: [],
|
|
167
|
+
gitSeeds: gitSeeds ??
|
|
168
|
+
results.map((r) => ({
|
|
169
|
+
id: r.origin.id,
|
|
170
|
+
type: r.origin.type,
|
|
171
|
+
reason: r.resolvedFrom?.reason ?? "git diff seed",
|
|
172
|
+
})),
|
|
173
|
+
};
|
|
174
|
+
if (results.some((r) => r.truncated))
|
|
175
|
+
merged.truncated = true;
|
|
176
|
+
const seen = new Set();
|
|
177
|
+
for (const key of ["regenerate", "review"]) {
|
|
178
|
+
for (const r of results) {
|
|
179
|
+
for (const e of r[key]) {
|
|
180
|
+
const dk = `${key}:${e.id}`;
|
|
181
|
+
if (seen.has(dk))
|
|
182
|
+
continue;
|
|
183
|
+
seen.add(dk);
|
|
184
|
+
merged[key].push(e);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
merged[key].sort((a, b) => a.id.localeCompare(b.id));
|
|
188
|
+
}
|
|
189
|
+
const pathSeen = new Set();
|
|
190
|
+
for (const r of results) {
|
|
191
|
+
for (const p of r.affectedOutputPaths) {
|
|
192
|
+
if (!pathSeen.has(p)) {
|
|
193
|
+
pathSeen.add(p);
|
|
194
|
+
merged.affectedOutputPaths.push(p);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
merged.affectedOutputPaths.sort();
|
|
199
|
+
return merged;
|
|
200
|
+
}
|
|
4
201
|
export async function loadImpactRules(path) {
|
|
5
202
|
return parseImpactRules(await readJson(path));
|
|
6
203
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"impact.js","sourceRoot":"","sources":["../../../src/core/graph/impact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"impact.js","sourceRoot":"","sources":["../../../src/core/graph/impact.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export { GraphSession } from "./session.js";
|
|
2
|
+
export type { GraphSessionOptions, ResolveOriginsHints, ImpactOptions, } from "./session.js";
|
|
3
|
+
export { ProjectSession } from "./project.js";
|
|
4
|
+
export type { ProjectBundle, ProjectSessionOptions } from "./project.js";
|
|
5
|
+
export { isKnowledgePayload, parseKnowledge, knowledgeHasDomainEntries, computeKnowledgeStats, knowledgeGraphCoverage, } from "./knowledge.js";
|
|
6
|
+
export type { AnalysisKnowledge, KnowledgeActor, KnowledgeUseCase, KnowledgeFeature, KnowledgeRequirement, KnowledgeEntity, KnowledgeStats, KnowledgeCategory, KnowledgeCoverageRow, KnowledgeCoverageCategory, KnowledgeCoverageReport, } from "./knowledge.js";
|
|
7
|
+
export { parseSectionRegistry, findRegistryDocument, findRegistrySection, sectionHeading, sectionLabel, documentTemplate, registryDocuments, allRegistrySections, } from "./registry.js";
|
|
8
|
+
export type { RegistrySection, RegistryDocument, SectionRegistry, } from "./registry.js";
|
|
9
|
+
export { parseDocflowConfig, primaryLanguage, languageCodes, } from "./config.js";
|
|
10
|
+
export type { DocflowConfig, DocflowProjectPaths, LanguageConfig, } from "./config.js";
|
|
11
|
+
export { parseProjectState, lastIndexRunAt, lastGraphMergedAt, } from "./state.js";
|
|
12
|
+
export type { ProjectState, ProjectAnalysisState, ProjectIndexState, } from "./state.js";
|
|
13
|
+
export { auditGraphLayers, BUNDLE_SOURCE_ID, BUNDLE_BUSINESS_ID, } from "./layer-audit.js";
|
|
14
|
+
export type { LayerAuditLayers, LayerAuditReport, LayerAuditOptions, } from "./layer-audit.js";
|
|
15
|
+
export { normalizePatch, parseExtractPatch, simulatePatch, } from "./patch.js";
|
|
16
|
+
export type { ExtractPatch, PatchSimulationResult } from "./patch.js";
|
|
17
|
+
export { parseDocFilePath, resolveDocPath, jobGroupKey, parsePendingQueue, parseFailedJobs, parseResolvedJobs, parseFingerprints, parseTranslationQueueBundle, computeTranslationQueueStats, jobsForProjectionPath, linkStaleTranslationsToQueue, pendingTargetLangs, } from "./translation-queue.js";
|
|
18
|
+
export type { SyncDirection, FailReason, DocType, FileChangeRecord, TranslationTarget, TranslationJob, PendingQueueFile, ResolvedTranslationJob, FailedTranslationJob, FileFingerprint, FingerprintsFile, TranslationQueueBundleInput, TranslationQueueData, TranslationQueueStats, StaleTranslationLink, } from "./translation-queue.js";
|
|
19
|
+
export { summarizeValidation, layersNeedingWork, graphHealthSummary, } from "./health.js";
|
|
20
|
+
export type { GraphHealthSummary } from "./health.js";
|
|
21
|
+
export { InMemoryGraph } from "./InMemoryGraph.js";
|
|
22
|
+
export { PATH_TARGET_EDGE_TYPES, isPathTargetEdge, } from "./path-target-edges.js";
|
|
23
|
+
export { querySubgraph, resolveDocumentForNode, projectionPathForNode, dataSourcePathsForNode, } from "./query.js";
|
|
24
|
+
export type { QueryOptions, GraphQueryResult } from "./query.js";
|
|
25
|
+
export { computeImpact, mergeImpactResults, parseImpactRules, DEFAULT_IMPACT_RULES, } from "./impact.js";
|
|
26
|
+
export type { ImpactRulesFile, ImpactEntry, ImpactResult, } from "./impact.js";
|
|
27
|
+
export { resolveImpactOrigins, pickPrimaryImpactOrigin, findDocumentNodeIdForPath, findSectionNodeIdByAnchor, findSectionNodeIdsByHeading, findNodeIdsByText, looksLikeExplicitNodeId, globToRegExp, } from "./resolve.js";
|
|
28
|
+
export type { ResolveHints, ResolvedOrigin } from "./resolve.js";
|
|
29
|
+
export { computeGraphStats } from "./stats.js";
|
|
30
|
+
export type { GraphStats } from "./stats.js";
|
|
31
|
+
export { expandPathTargetNodes, nodesForVisualization, fileNodeId, sourceNodeId, } from "./expand-path-nodes.js";
|
|
32
|
+
export type { SyntheticPathNode, SyntheticNodeType, ExpandPathTargetOptions, ExpandedPathTargets, } from "./expand-path-nodes.js";
|
|
33
|
+
export type { NodeType, EdgeType, GraphNode, GraphEdge, TraceabilityGraph, ValidationIssue, } from "../../types.js";
|
|
34
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/graph/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export { GraphSession } from "./session.js";
|
|
2
|
+
export { ProjectSession } from "./project.js";
|
|
3
|
+
export { isKnowledgePayload, parseKnowledge, knowledgeHasDomainEntries, computeKnowledgeStats, knowledgeGraphCoverage, } from "./knowledge.js";
|
|
4
|
+
export { parseSectionRegistry, findRegistryDocument, findRegistrySection, sectionHeading, sectionLabel, documentTemplate, registryDocuments, allRegistrySections, } from "./registry.js";
|
|
5
|
+
export { parseDocflowConfig, primaryLanguage, languageCodes, } from "./config.js";
|
|
6
|
+
export { parseProjectState, lastIndexRunAt, lastGraphMergedAt, } from "./state.js";
|
|
7
|
+
export { auditGraphLayers, BUNDLE_SOURCE_ID, BUNDLE_BUSINESS_ID, } from "./layer-audit.js";
|
|
8
|
+
export { normalizePatch, parseExtractPatch, simulatePatch, } from "./patch.js";
|
|
9
|
+
export { parseDocFilePath, resolveDocPath, jobGroupKey, parsePendingQueue, parseFailedJobs, parseResolvedJobs, parseFingerprints, parseTranslationQueueBundle, computeTranslationQueueStats, jobsForProjectionPath, linkStaleTranslationsToQueue, pendingTargetLangs, } from "./translation-queue.js";
|
|
10
|
+
export { summarizeValidation, layersNeedingWork, graphHealthSummary, } from "./health.js";
|
|
11
|
+
export { InMemoryGraph } from "./InMemoryGraph.js";
|
|
12
|
+
export { PATH_TARGET_EDGE_TYPES, isPathTargetEdge, } from "./path-target-edges.js";
|
|
13
|
+
export { querySubgraph, resolveDocumentForNode, projectionPathForNode, dataSourcePathsForNode, } from "./query.js";
|
|
14
|
+
export { computeImpact, mergeImpactResults, parseImpactRules, DEFAULT_IMPACT_RULES, } from "./impact.js";
|
|
15
|
+
export { resolveImpactOrigins, pickPrimaryImpactOrigin, findDocumentNodeIdForPath, findSectionNodeIdByAnchor, findSectionNodeIdsByHeading, findNodeIdsByText, looksLikeExplicitNodeId, globToRegExp, } from "./resolve.js";
|
|
16
|
+
export { computeGraphStats } from "./stats.js";
|
|
17
|
+
export { expandPathTargetNodes, nodesForVisualization, fileNodeId, sourceNodeId, } from "./expand-path-nodes.js";
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/graph/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAO5C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AAexB,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAOvB,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,aAAa,GACd,MAAM,aAAa,CAAC;AAOrB,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAOpB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAO1B,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,aAAa,GACd,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,2BAA2B,EAC3B,4BAA4B,EAC5B,qBAAqB,EACrB,4BAA4B,EAC5B,kBAAkB,GACnB,MAAM,wBAAwB,CAAC;AAmBhC,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EACL,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAOrB,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,yBAAyB,EACzB,yBAAyB,EACzB,2BAA2B,EAC3B,iBAAiB,EACjB,uBAAuB,EACvB,YAAY,GACb,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAG/C,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,UAAU,EACV,YAAY,GACb,MAAM,wBAAwB,CAAC"}
|
|
@@ -1,11 +1,88 @@
|
|
|
1
|
-
import type { AnalysisKnowledge } from "ai-spector-graph";
|
|
2
1
|
import type { GraphEdge, GraphNode } from "../../types.js";
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
import type { InMemoryGraph } from "./InMemoryGraph.js";
|
|
3
|
+
import type { NodeType } from "../../types.js";
|
|
4
|
+
export interface AnalysisKnowledge {
|
|
5
|
+
knowledgeVersion?: number;
|
|
6
|
+
actors?: KnowledgeActor[];
|
|
7
|
+
useCases?: KnowledgeUseCase[];
|
|
8
|
+
features?: KnowledgeFeature[];
|
|
9
|
+
functionalRequirements?: KnowledgeRequirement[];
|
|
10
|
+
nfrs?: KnowledgeRequirement[];
|
|
11
|
+
entities?: KnowledgeEntity[];
|
|
12
|
+
}
|
|
13
|
+
export interface KnowledgeActor {
|
|
14
|
+
id: string;
|
|
15
|
+
name?: string;
|
|
16
|
+
title?: string;
|
|
17
|
+
description?: string;
|
|
18
|
+
listedInSection?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface KnowledgeUseCase {
|
|
21
|
+
id: string;
|
|
22
|
+
title: string;
|
|
23
|
+
priority?: string;
|
|
24
|
+
description?: string;
|
|
25
|
+
listedInSection?: string;
|
|
26
|
+
}
|
|
27
|
+
export interface KnowledgeFeature {
|
|
28
|
+
id: string;
|
|
29
|
+
title: string;
|
|
30
|
+
description?: string;
|
|
31
|
+
listedInSection?: string;
|
|
32
|
+
satisfies?: string[];
|
|
33
|
+
}
|
|
34
|
+
export interface KnowledgeRequirement {
|
|
35
|
+
id: string;
|
|
36
|
+
title: string;
|
|
37
|
+
description?: string;
|
|
38
|
+
listedInSection?: string;
|
|
39
|
+
tracesTo?: string[];
|
|
40
|
+
}
|
|
41
|
+
export interface KnowledgeEntity {
|
|
42
|
+
id: string;
|
|
43
|
+
name: string;
|
|
44
|
+
description?: string;
|
|
45
|
+
listedInSection?: string;
|
|
46
|
+
}
|
|
47
|
+
export interface KnowledgeStats {
|
|
48
|
+
present: boolean;
|
|
49
|
+
actors: number;
|
|
50
|
+
useCases: number;
|
|
51
|
+
features: number;
|
|
52
|
+
functionalRequirements: number;
|
|
53
|
+
nfrs: number;
|
|
54
|
+
entities: number;
|
|
55
|
+
}
|
|
56
|
+
export type KnowledgeCategory = "actor" | "useCase" | "feature" | "requirement" | "nfr" | "dataEntity";
|
|
57
|
+
export interface KnowledgeCoverageRow {
|
|
58
|
+
id: string;
|
|
59
|
+
category: KnowledgeCategory;
|
|
60
|
+
inGraph: boolean;
|
|
61
|
+
graphNodeType?: NodeType;
|
|
62
|
+
/** Raw knowledge fields for UI display (title, name, priority, satisfies, tracesTo, …). */
|
|
63
|
+
data: Record<string, unknown>;
|
|
64
|
+
}
|
|
65
|
+
export interface KnowledgeCoverageCategory {
|
|
66
|
+
category: KnowledgeCategory;
|
|
67
|
+
label: string;
|
|
68
|
+
total: number;
|
|
69
|
+
inGraph: number;
|
|
70
|
+
rows: KnowledgeCoverageRow[];
|
|
71
|
+
}
|
|
72
|
+
export interface KnowledgeCoverageReport {
|
|
73
|
+
present: boolean;
|
|
74
|
+
categories: KnowledgeCoverageCategory[];
|
|
75
|
+
}
|
|
5
76
|
export interface ExtractPatch {
|
|
6
77
|
version: 1;
|
|
7
78
|
nodes: GraphNode[];
|
|
8
79
|
edges: GraphEdge[];
|
|
9
80
|
}
|
|
81
|
+
export declare function isKnowledgePayload(data: unknown): data is AnalysisKnowledge;
|
|
82
|
+
export declare function parseKnowledge(json: unknown): AnalysisKnowledge | null;
|
|
83
|
+
export declare function knowledgeHasDomainEntries(knowledge: AnalysisKnowledge): boolean;
|
|
84
|
+
export declare function computeKnowledgeStats(knowledge: AnalysisKnowledge | null): KnowledgeStats;
|
|
85
|
+
/** Compare knowledge.json entries against merged graph nodes (parity with graph visualize Knowledge tab). */
|
|
86
|
+
export declare function knowledgeGraphCoverage(knowledge: AnalysisKnowledge | null, g: InMemoryGraph): KnowledgeCoverageReport;
|
|
10
87
|
export declare function knowledgeToPatch(knowledge: AnalysisKnowledge): ExtractPatch;
|
|
11
88
|
//# sourceMappingURL=knowledge.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge.d.ts","sourceRoot":"","sources":["../../../src/core/graph/knowledge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"knowledge.d.ts","sourceRoot":"","sources":["../../../src/core/graph/knowledge.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,88 @@
|
|
|
1
1
|
import { DEFAULT_LISTED_IN } from "./defaults.js";
|
|
2
|
-
|
|
2
|
+
const CATEGORY_META = [
|
|
3
|
+
{ key: "actors", category: "actor", label: "Actors" },
|
|
4
|
+
{ key: "useCases", category: "useCase", label: "Use cases" },
|
|
5
|
+
{ key: "features", category: "feature", label: "Features" },
|
|
6
|
+
{ key: "functionalRequirements", category: "requirement", label: "Functional requirements" },
|
|
7
|
+
{ key: "nfrs", category: "nfr", label: "NFRs" },
|
|
8
|
+
{ key: "entities", category: "dataEntity", label: "Data entities" },
|
|
9
|
+
];
|
|
10
|
+
export function isKnowledgePayload(data) {
|
|
11
|
+
if (!data || typeof data !== "object") {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
const k = data;
|
|
15
|
+
return ("knowledgeVersion" in k ||
|
|
16
|
+
Array.isArray(k.useCases) ||
|
|
17
|
+
Array.isArray(k.features) ||
|
|
18
|
+
Array.isArray(k.actors));
|
|
19
|
+
}
|
|
20
|
+
export function parseKnowledge(json) {
|
|
21
|
+
return isKnowledgePayload(json) ? json : null;
|
|
22
|
+
}
|
|
23
|
+
export function knowledgeHasDomainEntries(knowledge) {
|
|
24
|
+
return ((knowledge.useCases?.length ?? 0) > 0 ||
|
|
25
|
+
(knowledge.features?.length ?? 0) > 0 ||
|
|
26
|
+
(knowledge.actors?.length ?? 0) > 0 ||
|
|
27
|
+
(knowledge.functionalRequirements?.length ?? 0) > 0 ||
|
|
28
|
+
(knowledge.nfrs?.length ?? 0) > 0 ||
|
|
29
|
+
(knowledge.entities?.length ?? 0) > 0);
|
|
30
|
+
}
|
|
31
|
+
export function computeKnowledgeStats(knowledge) {
|
|
32
|
+
if (!knowledge) {
|
|
33
|
+
return {
|
|
34
|
+
present: false,
|
|
35
|
+
actors: 0,
|
|
36
|
+
useCases: 0,
|
|
37
|
+
features: 0,
|
|
38
|
+
functionalRequirements: 0,
|
|
39
|
+
nfrs: 0,
|
|
40
|
+
entities: 0,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
return {
|
|
44
|
+
present: knowledgeHasDomainEntries(knowledge),
|
|
45
|
+
actors: knowledge.actors?.length ?? 0,
|
|
46
|
+
useCases: knowledge.useCases?.length ?? 0,
|
|
47
|
+
features: knowledge.features?.length ?? 0,
|
|
48
|
+
functionalRequirements: knowledge.functionalRequirements?.length ?? 0,
|
|
49
|
+
nfrs: knowledge.nfrs?.length ?? 0,
|
|
50
|
+
entities: knowledge.entities?.length ?? 0,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
function rowData(item) {
|
|
54
|
+
const { id: _id, ...rest } = item;
|
|
55
|
+
return rest;
|
|
56
|
+
}
|
|
57
|
+
function coverageCategory(g, label, category, items) {
|
|
58
|
+
const rows = (items ?? []).map((item) => {
|
|
59
|
+
const node = g.nodesById.get(item.id);
|
|
60
|
+
return {
|
|
61
|
+
id: item.id,
|
|
62
|
+
category,
|
|
63
|
+
inGraph: Boolean(node),
|
|
64
|
+
graphNodeType: node?.type,
|
|
65
|
+
data: rowData(item),
|
|
66
|
+
};
|
|
67
|
+
});
|
|
68
|
+
const inGraph = rows.filter((r) => r.inGraph).length;
|
|
69
|
+
return { category, label, total: rows.length, inGraph, rows };
|
|
70
|
+
}
|
|
71
|
+
/** Compare knowledge.json entries against merged graph nodes (parity with graph visualize Knowledge tab). */
|
|
72
|
+
export function knowledgeGraphCoverage(knowledge, g) {
|
|
73
|
+
if (!knowledge || !knowledgeHasDomainEntries(knowledge)) {
|
|
74
|
+
return { present: false, categories: [] };
|
|
75
|
+
}
|
|
76
|
+
const categories = [];
|
|
77
|
+
for (const { key, category, label } of CATEGORY_META) {
|
|
78
|
+
const items = knowledge[key];
|
|
79
|
+
if (!items?.length) {
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
categories.push(coverageCategory(g, label, category, items));
|
|
83
|
+
}
|
|
84
|
+
return { present: true, categories };
|
|
85
|
+
}
|
|
3
86
|
function pickNodeFields(item, id, type) {
|
|
4
87
|
const node = { id, type };
|
|
5
88
|
for (const [key, value] of Object.entries(item)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../../../src/core/graph/knowledge.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../../../src/core/graph/knowledge.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,64 @@
|
|
|
1
|
-
import { type LayerAuditReport } from "ai-spector-graph";
|
|
2
1
|
import type { InMemoryGraph } from "./InMemoryGraph.js";
|
|
3
|
-
export
|
|
4
|
-
export declare
|
|
2
|
+
export declare const BUNDLE_SOURCE_ID = "bundle.source";
|
|
3
|
+
export declare const BUNDLE_BUSINESS_ID = "bundle.business";
|
|
4
|
+
export interface LayerAuditLayers {
|
|
5
|
+
structure: {
|
|
6
|
+
documents: number;
|
|
7
|
+
sections: number;
|
|
8
|
+
ok: boolean;
|
|
9
|
+
};
|
|
10
|
+
specInstances: {
|
|
11
|
+
useCaseDocs: number;
|
|
12
|
+
featureDocs: number;
|
|
13
|
+
sections: number;
|
|
14
|
+
ok: boolean;
|
|
15
|
+
missingOnDisk: string[];
|
|
16
|
+
};
|
|
17
|
+
domain: {
|
|
18
|
+
useCases: number;
|
|
19
|
+
features: number;
|
|
20
|
+
actors: number;
|
|
21
|
+
ok: boolean;
|
|
22
|
+
};
|
|
23
|
+
sourceHub: {
|
|
24
|
+
bundlePresent: boolean;
|
|
25
|
+
sourceFiles: number;
|
|
26
|
+
ok: boolean;
|
|
27
|
+
};
|
|
28
|
+
businessHub: {
|
|
29
|
+
bundlePresent: boolean;
|
|
30
|
+
domainMembers: number;
|
|
31
|
+
ok: boolean;
|
|
32
|
+
};
|
|
33
|
+
provenance: {
|
|
34
|
+
derivedFrom: number;
|
|
35
|
+
domainsWithoutSource: string[];
|
|
36
|
+
ok: boolean;
|
|
37
|
+
};
|
|
38
|
+
semanticLinks: {
|
|
39
|
+
relatesTo: number;
|
|
40
|
+
domainsWithoutSemanticLinks: string[];
|
|
41
|
+
ok: boolean;
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
export interface LayerAuditReport {
|
|
45
|
+
layers: LayerAuditLayers;
|
|
46
|
+
suggestedCommand?: string;
|
|
47
|
+
suggestedAgentCommand?: string;
|
|
48
|
+
}
|
|
49
|
+
export interface LayerAuditOptions {
|
|
50
|
+
/**
|
|
51
|
+
* Repo-relative paths known to exist on disk (from your backend).
|
|
52
|
+
* Used to populate specInstances.missingOnDisk — UC detail files on disk but not in graph.
|
|
53
|
+
*/
|
|
54
|
+
existingPaths?: Iterable<string>;
|
|
55
|
+
/**
|
|
56
|
+
* Override the regex used to identify UC detail files on disk.
|
|
57
|
+
* Defaults to /docs\/srs\/.*\/uc-\d+.*\.md$/i — projects with a different
|
|
58
|
+
* folder structure should supply their own pattern here.
|
|
59
|
+
*/
|
|
60
|
+
ucDetailPathPattern?: RegExp;
|
|
61
|
+
}
|
|
62
|
+
/** Tri-layer health report (parity with `ai-spector graph report`). Sync, browser-safe. */
|
|
63
|
+
export declare function auditGraphLayers(graph: InMemoryGraph, options?: LayerAuditOptions): LayerAuditReport;
|
|
5
64
|
//# sourceMappingURL=layer-audit.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layer-audit.d.ts","sourceRoot":"","sources":["../../../src/core/graph/layer-audit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"layer-audit.d.ts","sourceRoot":"","sources":["../../../src/core/graph/layer-audit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxD,eAAO,MAAM,gBAAgB,kBAAkB,CAAC;AAChD,eAAO,MAAM,kBAAkB,oBAAoB,CAAC;AAapD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,EAAE,EAAE,OAAO,CAAC;KACb,CAAC;IACF,aAAa,EAAE;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,EAAE,EAAE,OAAO,CAAC;QACZ,aAAa,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC;IACF,MAAM,EAAE;QACN,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,EAAE,EAAE,OAAO,CAAC;KACb,CAAC;IACF,SAAS,EAAE;QACT,aAAa,EAAE,OAAO,CAAC;QACvB,WAAW,EAAE,MAAM,CAAC;QACpB,EAAE,EAAE,OAAO,CAAC;KACb,CAAC;IACF,WAAW,EAAE;QACX,aAAa,EAAE,OAAO,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;QACtB,EAAE,EAAE,OAAO,CAAC;KACb,CAAC;IACF,UAAU,EAAE;QACV,WAAW,EAAE,MAAM,CAAC;QACpB,oBAAoB,EAAE,MAAM,EAAE,CAAC;QAC/B,EAAE,EAAE,OAAO,CAAC;KACb,CAAC;IACF,aAAa,EAAE;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,2BAA2B,EAAE,MAAM,EAAE,CAAC;QACtC,EAAE,EAAE,OAAO,CAAC;KACb,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,gBAAgB,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,aAAa,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AA0LD,2FAA2F;AAC3F,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,aAAa,EACpB,OAAO,GAAE,iBAAsB,GAC9B,gBAAgB,CAmFlB"}
|