@triedotdev/mcp 1.0.108 → 1.0.110

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.
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ContextGraph
3
- } from "./chunk-S2WVHIFG.js";
3
+ } from "./chunk-OTTR5JX4.js";
4
4
  import {
5
5
  scanForVibeCodeIssues
6
6
  } from "./chunk-IXO4G4D3.js";
@@ -3726,4 +3726,4 @@ export {
3726
3726
  loadContextState,
3727
3727
  getContextForAI
3728
3728
  };
3729
- //# sourceMappingURL=chunk-JT2OOIQX.js.map
3729
+ //# sourceMappingURL=chunk-FLBK5ILJ.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getGuardian
3
- } from "./chunk-C5NK7EGK.js";
3
+ } from "./chunk-SUHYYM2J.js";
4
4
  import {
5
5
  ContextGraph,
6
6
  TieredStorage,
@@ -9,7 +9,7 @@ import {
9
9
  isAIAvailable,
10
10
  runAIAnalysis,
11
11
  setAPIKey
12
- } from "./chunk-S2WVHIFG.js";
12
+ } from "./chunk-OTTR5JX4.js";
13
13
  import {
14
14
  getGuardianState
15
15
  } from "./chunk-6JPPYG7F.js";
@@ -1349,19 +1349,19 @@ function Footer() {
1349
1349
  } else if (view === "hypotheses" && state.hypothesesPanel.inputMode === "add") {
1350
1350
  contextHints = "enter save \xB7 esc cancel";
1351
1351
  } else if (view === "goals") {
1352
- contextHints = "j/k nav \xB7 a add \xB7 enter complete \xB7 d delete";
1352
+ contextHints = "tab views \xB7 j/k nav \xB7 a add \xB7 enter complete \xB7 d delete";
1353
1353
  } else if (view === "hypotheses") {
1354
- contextHints = "j/k nav \xB7 a add \xB7 v validate \xB7 x invalidate";
1354
+ contextHints = "tab views \xB7 j/k nav \xB7 a add \xB7 v validate \xB7 x invalidate";
1355
1355
  } else if (view === "agent") {
1356
- contextHints = "j/k nav \xB7 enter expand \xB7 d dismiss";
1356
+ contextHints = "tab views \xB7 j/k nav \xB7 enter expand \xB7 d dismiss";
1357
1357
  } else if (view === "memory") {
1358
- contextHints = "j/k nav \xB7 enter expand";
1358
+ contextHints = "tab views \xB7 j/k nav \xB7 enter toggle section";
1359
1359
  } else if (view === "chat") {
1360
- contextHints = "type to ask \xB7 enter send \xB7 esc clear";
1360
+ contextHints = "tab views \xB7 type to ask \xB7 enter send \xB7 esc clear";
1361
1361
  } else if (view === "rawlog") {
1362
- contextHints = "n/p pages \xB7 b back";
1362
+ contextHints = "tab views \xB7 n/p pages \xB7 b back";
1363
1363
  } else {
1364
- contextHints = "n/p pages \xB7 s settings";
1364
+ contextHints = "tab views \xB7 n/p pages \xB7 s settings";
1365
1365
  }
1366
1366
  return /* @__PURE__ */ jsxs2(Box2, { flexDirection: "column", paddingX: 1, children: [
1367
1367
  /* @__PURE__ */ jsxs2(Box2, { justifyContent: "space-between", children: [
@@ -2608,34 +2608,57 @@ function ChatView() {
2608
2608
  const workDir = getWorkingDirectory(void 0, true);
2609
2609
  const storage = new TieredStorage(workDir);
2610
2610
  const graph = new ContextGraph(workDir);
2611
- const [decisions, blockers, snap] = await Promise.all([
2612
- storage.queryDecisions({ limit: 10 }),
2613
- storage.queryBlockers({ limit: 5 }),
2614
- graph.getSnapshot()
2615
- ]);
2616
2611
  const contextParts = [];
2617
- if (decisions.length > 0) {
2618
- contextParts.push("Recent decisions:\n" + decisions.map(
2619
- (d) => `- ${d.decision} (${d.when}${d.hash ? `, hash: ${d.hash.slice(0, 8)}` : ""})`
2620
- ).join("\n"));
2621
- }
2622
- if (blockers.length > 0) {
2623
- contextParts.push("Active blockers:\n" + blockers.map(
2624
- (b) => `- ${b.blocker} [${b.impact}]`
2625
- ).join("\n"));
2612
+ try {
2613
+ const decisions = await storage.queryDecisions({ limit: 10 });
2614
+ if (decisions.length > 0) {
2615
+ contextParts.push("Recent decisions:\n" + decisions.map(
2616
+ (d) => `- ${d.decision} (${d.when}${d.hash ? `, hash: ${d.hash.slice(0, 8)}` : ""})`
2617
+ ).join("\n"));
2618
+ }
2619
+ } catch {
2626
2620
  }
2627
- const fileNodes = snap.nodes.filter((n) => n.type === "file");
2628
- const riskFiles = fileNodes.filter((n) => n.data && "riskLevel" in n.data && (n.data.riskLevel === "critical" || n.data.riskLevel === "high")).slice(0, 10);
2629
- if (riskFiles.length > 0) {
2630
- contextParts.push("High-risk files:\n" + riskFiles.map(
2631
- (n) => `- ${n.data.path} (${n.data.riskLevel})`
2632
- ).join("\n"));
2621
+ try {
2622
+ const blockers = await storage.queryBlockers({ limit: 5 });
2623
+ if (blockers.length > 0) {
2624
+ contextParts.push("Active blockers:\n" + blockers.map(
2625
+ (b) => `- ${b.blocker} [${b.impact}]`
2626
+ ).join("\n"));
2627
+ }
2628
+ } catch {
2633
2629
  }
2634
- const patternNodes = snap.nodes.filter((n) => n.type === "pattern").slice(0, 5);
2635
- if (patternNodes.length > 0) {
2636
- contextParts.push("Learned patterns:\n" + patternNodes.map(
2637
- (n) => `- ${n.data.description} (${Math.round(n.data.confidence * 100)}% confidence)`
2638
- ).join("\n"));
2630
+ try {
2631
+ const snap = await graph.getSnapshot();
2632
+ const fileNodes = snap.nodes.filter((n) => n.type === "file");
2633
+ const changeNodes = snap.nodes.filter((n) => n.type === "change");
2634
+ const patternNodes = snap.nodes.filter((n) => n.type === "pattern");
2635
+ const incidentNodes = snap.nodes.filter((n) => n.type === "incident");
2636
+ contextParts.push(`Context graph: ${snap.nodes.length} nodes, ${snap.edges.length} edges (${fileNodes.length} files, ${changeNodes.length} changes, ${patternNodes.length} patterns, ${incidentNodes.length} incidents)`);
2637
+ if (fileNodes.length > 0) {
2638
+ const sorted = [...fileNodes].sort((a, b) => {
2639
+ const riskOrder = { critical: 0, high: 1, medium: 2, low: 3 };
2640
+ const ad = a.data, bd = b.data;
2641
+ return (riskOrder[ad.riskLevel] ?? 4) - (riskOrder[bd.riskLevel] ?? 4);
2642
+ });
2643
+ contextParts.push("Project files (by risk):\n" + sorted.slice(0, 20).map((n) => {
2644
+ const d = n.data;
2645
+ return `- ${d.path} (${d.riskLevel}, ${d.changeCount} changes${d.incidentCount > 0 ? `, ${d.incidentCount} incidents` : ""})`;
2646
+ }).join("\n") + (sorted.length > 20 ? `
2647
+ ...and ${sorted.length - 20} more files` : ""));
2648
+ }
2649
+ if (changeNodes.length > 0) {
2650
+ contextParts.push("Recent changes:\n" + changeNodes.slice(0, 5).map((n) => {
2651
+ const d = n.data;
2652
+ return `- ${d.message} (${d.timestamp}, ${d.files.length} files, outcome: ${d.outcome})`;
2653
+ }).join("\n"));
2654
+ }
2655
+ if (patternNodes.length > 0) {
2656
+ contextParts.push("Learned patterns:\n" + patternNodes.slice(0, 5).map((n) => {
2657
+ const d = n.data;
2658
+ return `- ${d.description} (${Math.round(d.confidence * 100)}% confidence${d.isAntiPattern ? ", anti-pattern" : ""})`;
2659
+ }).join("\n"));
2660
+ }
2661
+ } catch {
2639
2662
  }
2640
2663
  const contextBlock = contextParts.length > 0 ? contextParts.join("\n\n") : "No context data available yet.";
2641
2664
  const result = await runAIAnalysis({
@@ -3005,4 +3028,4 @@ export {
3005
3028
  getOutputManager,
3006
3029
  InteractiveDashboard
3007
3030
  };
3008
- //# sourceMappingURL=chunk-26FASIHN.js.map
3031
+ //# sourceMappingURL=chunk-OD4SLUIV.js.map