@kage-core/kage-graph-mcp 1.1.33 → 1.1.34

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 CHANGED
@@ -165,8 +165,10 @@ kage viewer --project .
165
165
 
166
166
  The local viewer loads graph artifacts plus `.agent_memory/reports/*.json` and
167
167
  shows a repo-intelligence cockpit for memory-code links, decision memory, risk,
168
- contributors, module health, graph insights, workspace coverage, quality, and
169
- benchmark proof.
168
+ contributors, module health, graph insights, workspace coverage, workspace
169
+ link maps, quality, and benchmark proof. Workspace Map rows expose package
170
+ dependencies, route contracts, topic/event links, and cross-repo co-change
171
+ pairs from local workspace reports.
170
172
 
171
173
  Hosted demo:
172
174
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kage-core/kage-graph-mcp",
3
- "version": "1.1.33",
3
+ "version": "1.1.34",
4
4
  "description": "Local-first repo memory, code graph, and recall MCP server for coding agents",
5
5
  "main": "dist/index.js",
6
6
  "files": [
package/viewer/app.js CHANGED
@@ -2321,6 +2321,7 @@
2321
2321
  var decisions = reports.decisions;
2322
2322
  var health = reports.moduleHealth;
2323
2323
  var insights = reports.graphInsights;
2324
+ var workspace = reports.workspace;
2324
2325
 
2325
2326
  if (contributors || risk) {
2326
2327
  var profiles = contributors && Array.isArray(contributors.contributors) ? contributors.contributors : [];
@@ -2449,6 +2450,57 @@
2449
2450
  });
2450
2451
  }
2451
2452
 
2453
+ if (workspace) {
2454
+ var deps = Array.isArray(workspace.package_dependencies) ? workspace.package_dependencies : [];
2455
+ var routeContracts = Array.isArray(workspace.route_contracts) ? workspace.route_contracts : [];
2456
+ var topicContracts = Array.isArray(workspace.topic_contracts) ? workspace.topic_contracts : [];
2457
+ var coChanges = Array.isArray(workspace.co_changes) ? workspace.co_changes : [];
2458
+ var workspaceRows = deps.slice(0, 6).map(function (dep) {
2459
+ return {
2460
+ label: dep.from + " -> " + dep.to,
2461
+ value: dep.package_name || "package",
2462
+ meta: "workspace package dependency",
2463
+ score: 72,
2464
+ status: "ok",
2465
+ };
2466
+ }).concat(routeContracts.slice(0, 6).map(function (contract) {
2467
+ return {
2468
+ label: contract.provider_repo + " -> " + contract.consumer_repo,
2469
+ value: [contract.method, contract.path].filter(Boolean).join(" "),
2470
+ meta: [contract.provider_file, contract.consumer_file].filter(Boolean).join(" -> "),
2471
+ score: contract.confidence === "high" ? 92 : 76,
2472
+ status: "ok",
2473
+ };
2474
+ })).concat(topicContracts.slice(0, 6).map(function (contract) {
2475
+ return {
2476
+ label: contract.producer_repo + " -> " + contract.consumer_repo,
2477
+ value: contract.topic,
2478
+ meta: [contract.producer_file, contract.consumer_file].filter(Boolean).join(" -> "),
2479
+ score: contract.confidence === "high" ? 88 : 72,
2480
+ status: "ok",
2481
+ };
2482
+ })).concat(coChanges.slice(0, 8).map(function (link) {
2483
+ var score = Math.min(100, Number(link.strength || 0) * 22 + Number(link.frequency || 0) * 12);
2484
+ return {
2485
+ label: link.source_repo + " <-> " + link.target_repo,
2486
+ value: (link.frequency || 0) + "x co-change",
2487
+ meta: [link.source_file, link.target_file].filter(Boolean).join(" <-> "),
2488
+ score: Math.max(20, score),
2489
+ status: "warn",
2490
+ };
2491
+ }));
2492
+ if (workspaceRows.length) {
2493
+ sections.push({
2494
+ title: "Workspace Map",
2495
+ kicker: "deps / contracts / co-changes",
2496
+ stat: workspaceRows.length + " links",
2497
+ summary: "Workspace links show how sibling repos relate through package dependencies, source-evidence contracts, topic/event links, and local git co-change history.",
2498
+ rows: workspaceRows,
2499
+ limit: 14,
2500
+ });
2501
+ }
2502
+ }
2503
+
2452
2504
  if (risk) {
2453
2505
  var targets = Array.isArray(risk.targets) ? risk.targets : Object.keys(risk.targets || {}).map(function (key) { return risk.targets[key]; });
2454
2506
  var hotspots = Array.isArray(risk.global_hotspots) ? risk.global_hotspots : [];