@hongmaple0820/scale-engine 0.43.0 → 0.44.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/dist/api/cli.js +24 -2
- package/dist/api/cli.js.map +1 -1
- package/dist/codegraph/CodeIntelligence.d.ts +27 -0
- package/dist/codegraph/CodeIntelligence.js +316 -3
- package/dist/codegraph/CodeIntelligence.js.map +1 -1
- package/dist/dashboard/DashboardServer.d.ts +33 -13
- package/dist/dashboard/DashboardServer.js +314 -182
- package/dist/dashboard/DashboardServer.js.map +1 -1
- package/dist/dashboard/index.d.ts +2 -2
- package/dist/dashboard/index.js +1 -1
- package/dist/dashboard/index.js.map +1 -1
- package/dist/dashboard/server.d.ts +8 -22
- package/dist/dashboard/server.js +2 -83
- package/dist/dashboard/server.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/topology/DomainMapper.d.ts +23 -0
- package/dist/topology/DomainMapper.js +179 -0
- package/dist/topology/DomainMapper.js.map +1 -0
- package/dist/topology/LayerClassifier.d.ts +8 -0
- package/dist/topology/LayerClassifier.js +109 -0
- package/dist/topology/LayerClassifier.js.map +1 -0
- package/dist/topology/TourGenerator.d.ts +18 -0
- package/dist/topology/TourGenerator.js +120 -0
- package/dist/topology/TourGenerator.js.map +1 -0
- package/dist/topology/index.d.ts +3 -0
- package/dist/topology/index.js +4 -0
- package/dist/topology/index.js.map +1 -0
- package/package.json +3 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LayerClassifier.js","sourceRoot":"","sources":["../../src/topology/LayerClassifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { TopologyGraph, ArchitectureLayer } from '../codegraph/CodeIntelligence.js';
|
|
2
|
+
export interface TourStop {
|
|
3
|
+
nodeId: string;
|
|
4
|
+
title: string;
|
|
5
|
+
description: string;
|
|
6
|
+
layer: ArchitectureLayer;
|
|
7
|
+
relatedNodes: string[];
|
|
8
|
+
order: number;
|
|
9
|
+
}
|
|
10
|
+
export interface GuidedTour {
|
|
11
|
+
name: string;
|
|
12
|
+
stops: TourStop[];
|
|
13
|
+
estimatedMinutes: number;
|
|
14
|
+
}
|
|
15
|
+
export declare function generateTour(graph: TopologyGraph, options?: {
|
|
16
|
+
maxStops?: number;
|
|
17
|
+
focusDomain?: string;
|
|
18
|
+
}): GuidedTour;
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
const LAYER_DESCRIPTIONS = {
|
|
2
|
+
api: 'API layer — handles external requests and routes them to the appropriate services',
|
|
3
|
+
service: 'Service layer — contains business logic and orchestrates operations',
|
|
4
|
+
data: 'Data layer — manages data persistence, models, and storage',
|
|
5
|
+
ui: 'UI layer — renders the user interface and handles user interactions',
|
|
6
|
+
utility: 'Utility layer — provides shared helpers and common functionality',
|
|
7
|
+
config: 'Configuration layer — defines settings and initialization',
|
|
8
|
+
test: 'Test layer — verifies correctness through automated tests',
|
|
9
|
+
unknown: 'Unclassified component',
|
|
10
|
+
};
|
|
11
|
+
export function generateTour(graph, options = {}) {
|
|
12
|
+
const maxStops = options.maxStops ?? 20;
|
|
13
|
+
const entryPoints = findEntryPoints(graph);
|
|
14
|
+
const orderedNodes = bfsFromEntries(graph, entryPoints);
|
|
15
|
+
const stops = [];
|
|
16
|
+
for (const nodeId of orderedNodes) {
|
|
17
|
+
if (stops.length >= maxStops)
|
|
18
|
+
break;
|
|
19
|
+
const node = graph.nodes.find(n => n.id === nodeId);
|
|
20
|
+
if (!node)
|
|
21
|
+
continue;
|
|
22
|
+
const relatedNodes = findRelatedNodes(graph, nodeId);
|
|
23
|
+
stops.push({
|
|
24
|
+
nodeId,
|
|
25
|
+
title: formatNodeTitle(node),
|
|
26
|
+
description: generateStopDescription(node, graph),
|
|
27
|
+
layer: node.layer ?? 'unknown',
|
|
28
|
+
relatedNodes,
|
|
29
|
+
order: stops.length + 1,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
return {
|
|
33
|
+
name: options.focusDomain
|
|
34
|
+
? `${options.focusDomain} Architecture Tour`
|
|
35
|
+
: 'Architecture Tour',
|
|
36
|
+
stops,
|
|
37
|
+
estimatedMinutes: Math.max(1, Math.ceil(stops.length * 0.5)),
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
function findEntryPoints(graph) {
|
|
41
|
+
const incomingCount = new Map();
|
|
42
|
+
for (const edge of graph.edges) {
|
|
43
|
+
incomingCount.set(edge.target, (incomingCount.get(edge.target) ?? 0) + 1);
|
|
44
|
+
}
|
|
45
|
+
// Entry points: nodes with no incoming edges, preferring main/index/app/server
|
|
46
|
+
const noIncoming = graph.nodes.filter(n => (incomingCount.get(n.id) ?? 0) === 0);
|
|
47
|
+
const priorityNames = ['main', 'index', 'app', 'server', 'cli', 'entry', 'run', 'start'];
|
|
48
|
+
const sorted = noIncoming.sort((a, b) => {
|
|
49
|
+
const aPriority = priorityNames.findIndex(name => a.name.toLowerCase().includes(name));
|
|
50
|
+
const bPriority = priorityNames.findIndex(name => b.name.toLowerCase().includes(name));
|
|
51
|
+
const aRank = aPriority === -1 ? 999 : aPriority;
|
|
52
|
+
const bRank = bPriority === -1 ? 999 : bPriority;
|
|
53
|
+
return aRank - bRank;
|
|
54
|
+
});
|
|
55
|
+
// If no entry points found, use all file-level nodes
|
|
56
|
+
if (sorted.length === 0) {
|
|
57
|
+
return graph.nodes.filter(n => n.kind === 'file').slice(0, 5).map(n => n.id);
|
|
58
|
+
}
|
|
59
|
+
return sorted.slice(0, 10).map(n => n.id);
|
|
60
|
+
}
|
|
61
|
+
function bfsFromEntries(graph, entries) {
|
|
62
|
+
const visited = new Set();
|
|
63
|
+
const order = [];
|
|
64
|
+
const queue = [...entries];
|
|
65
|
+
while (queue.length > 0) {
|
|
66
|
+
const current = queue.shift();
|
|
67
|
+
if (visited.has(current))
|
|
68
|
+
continue;
|
|
69
|
+
visited.add(current);
|
|
70
|
+
order.push(current);
|
|
71
|
+
// Follow outgoing edges (dependencies, calls)
|
|
72
|
+
for (const edge of graph.edges) {
|
|
73
|
+
if (edge.source === current && !visited.has(edge.target)) {
|
|
74
|
+
queue.push(edge.target);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
// Add any unvisited nodes at the end
|
|
79
|
+
for (const node of graph.nodes) {
|
|
80
|
+
if (!visited.has(node.id)) {
|
|
81
|
+
order.push(node.id);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return order;
|
|
85
|
+
}
|
|
86
|
+
function findRelatedNodes(graph, nodeId) {
|
|
87
|
+
const related = new Set();
|
|
88
|
+
for (const edge of graph.edges) {
|
|
89
|
+
if (edge.source === nodeId)
|
|
90
|
+
related.add(edge.target);
|
|
91
|
+
if (edge.target === nodeId)
|
|
92
|
+
related.add(edge.source);
|
|
93
|
+
}
|
|
94
|
+
return Array.from(related).slice(0, 5);
|
|
95
|
+
}
|
|
96
|
+
function formatNodeTitle(node) {
|
|
97
|
+
const layerTag = node.layer ? `[${node.layer.toUpperCase()}] ` : '';
|
|
98
|
+
const kindTag = node.kind === 'file' ? '' : ` (${node.kind})`;
|
|
99
|
+
return `${layerTag}${node.name}${kindTag}`;
|
|
100
|
+
}
|
|
101
|
+
function generateStopDescription(node, graph) {
|
|
102
|
+
const layerDesc = LAYER_DESCRIPTIONS[node.layer ?? 'unknown'];
|
|
103
|
+
const parts = [layerDesc];
|
|
104
|
+
if (node.filePath) {
|
|
105
|
+
parts.push(`Located in ${node.filePath}`);
|
|
106
|
+
}
|
|
107
|
+
// Count connections
|
|
108
|
+
const outgoing = graph.edges.filter(e => e.source === node.id).length;
|
|
109
|
+
const incoming = graph.edges.filter(e => e.target === node.id).length;
|
|
110
|
+
if (outgoing > 0 || incoming > 0) {
|
|
111
|
+
const connDesc = [];
|
|
112
|
+
if (outgoing > 0)
|
|
113
|
+
connDesc.push(`depends on ${outgoing}`);
|
|
114
|
+
if (incoming > 0)
|
|
115
|
+
connDesc.push(`depended on by ${incoming}`);
|
|
116
|
+
parts.push(`Connections: ${connDesc.join(', ')}`);
|
|
117
|
+
}
|
|
118
|
+
return parts.join('. ') + '.';
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=TourGenerator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TourGenerator.js","sourceRoot":"","sources":["../../src/topology/TourGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { classifyLayers, getLayerColor, DEFAULT_LAYER_RULES, type LayerRule } from './LayerClassifier.js';
|
|
2
|
+
export { mapDomains, type BusinessDomain, type DomainFlow, type DomainMapping } from './DomainMapper.js';
|
|
3
|
+
export { generateTour, type TourStop, type GuidedTour } from './TourGenerator.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/topology/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,mBAAmB,EAAkB,MAAM,sBAAsB,CAAA;AACzG,OAAO,EAAE,UAAU,EAA4D,MAAM,mBAAmB,CAAA;AACxG,OAAO,EAAE,YAAY,EAAkC,MAAM,oBAAoB,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hongmaple0820/scale-engine",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.44.0",
|
|
4
4
|
"description": "Executable AI agent governance with workflow gates, evidence, skill/tool orchestration, and traceable HTML artifacts",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -56,11 +56,13 @@
|
|
|
56
56
|
"serve": "node dist/api/http.js"
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
|
+
"@hono/node-server": "^2.0.4",
|
|
59
60
|
"@modelcontextprotocol/sdk": "1.29.0",
|
|
60
61
|
"better-sqlite3": "^11.10.0",
|
|
61
62
|
"chokidar": "^3.6.0",
|
|
62
63
|
"citty": "^0.1.6",
|
|
63
64
|
"content-type": "1.0.5",
|
|
65
|
+
"echarts": "^6.1.0",
|
|
64
66
|
"execa": "^9.3.0",
|
|
65
67
|
"hono": "^4.5.0",
|
|
66
68
|
"js-yaml": "^4.1.0",
|