@triedotdev/mcp 1.0.99 → 1.0.102

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
@@ -8,11 +8,11 @@
8
8
 
9
9
  Trie is an **autonomous, trainable AI agent** that maintains a decision ledger for your codebase:
10
10
 
11
- - **🤖 Autonomous Operation**: Run `trie watch` and the agent monitors your codebase 24/7
12
- - **🧠 Intelligent Extraction**: Automatically extracts decisions, facts, blockers from every change
13
- - **📊 Decision Ledger**: Builds institutional knowledge that travels from Cursor → CLI → CI/CD
14
- - **🎯 Predictive Intelligence**: `trie gotcha` queries the ledger to predict problems before they happen
15
- - **📈 Continuous Learning**: Feed it incidents with `trie tell`, teach it patterns with your history
11
+ - **Autonomous Operation**: Run `trie watch` and the agent monitors your codebase 24/7
12
+ - **Intelligent Extraction**: Automatically extracts decisions, facts, blockers from every change
13
+ - **Ledger**: Builds institutional knowledge that travels from Cursor/Claude Code → CLI → CI/CD
14
+ - **Predictive Intelligence**: `trie gotcha` queries the ledger to predict problems before they happen
15
+ - **Continuous Learning**: Feed it incidents with `trie tell`, teach it patterns with your history
16
16
 
17
17
  The agent learns from every incident, decision, and fix. When you ship, Trie remembers. When something breaks, Trie learns. Over time, your agent gets better at predicting what will go wrong before it does.
18
18
 
@@ -52,46 +52,17 @@ cd your-project
52
52
  trie init
53
53
  ```
54
54
 
55
- ### 2. Start the Agent
55
+ ### 2. Start Teaching Trie
56
56
 
57
- The agent runs autonomously, watching your codebase and building the decision ledger:
57
+ When bugs happen, tell Trie about them:
58
58
 
59
59
  ```bash
60
- # Start the autonomous agent
61
- trie watch
62
-
63
- # The agent now:
64
- # - Watches file changes in real-time
65
- # - Extracts decisions, facts, blockers from every change
66
- # - Builds decision ledger automatically
67
- # - Predicts problems based on historical patterns
68
- ```
69
-
70
- ### 3. Teach the Agent
71
-
72
- When bugs happen, teach the agent:
73
-
74
- ```bash
75
- # Report a specific incident (agent extracts structured signals)
76
- trie tell "Users can't log in after password reset - bcrypt config was wrong"
60
+ # Report a specific incident (extracts structured signals)
61
+ trie tell "Users can't log in after password reset"
77
62
 
78
- # Train agent from your git history (reverts/bugfixes)
63
+ # Train Trie from your history (reverts/bugfixes)
79
64
  trie learn
80
65
 
81
- # Query what the agent knows
82
- trie gotcha # Predicts problems in your current changes
83
- ```
84
-
85
- ### 4. Let the Agent Work
86
-
87
- The agent learns continuously:
88
- - Every commit → Extracts decisions
89
- - Every incident → Learns patterns
90
- - Every fix → Updates predictions
91
- - Every change → Queries ledger for "gotchas"
92
-
93
- **Set `ANTHROPIC_API_KEY` for full signal extraction** (Claude Haiku for fast, cheap extraction)
94
-
95
66
  # Give feedback on predictions
96
67
  trie ok # Prediction was helpful
97
68
  trie bad # Prediction was wrong
@@ -131,7 +102,7 @@ Trie remembers your decisions across tools, tracks the tradeoffs you've made, an
131
102
 
132
103
  ### Developer Experience
133
104
 
134
- - Plain English warnings - "This auth change broke twice before" instead of cryptic codes.
105
+ - Plain English warnings - "This payment flow broke twice before" instead of cryptic codes.
135
106
  - Multiple interfaces - CLI, MCP tools for Claude/Cursor, visual dashboards.
136
107
  - Flexible workflow - Works with any editor, any git workflow, any deployment setup.
137
108
 
@@ -187,22 +158,13 @@ When you switch from Cursor to Claude Code to terminal, Trie remembers. Your thi
187
158
 
188
159
  **Trie's Solution**: Extract signal, not noise.
189
160
 
190
- #### Three-Tier Architecture
161
+ #### Three-Tier Storage
191
162
 
192
- ```
193
- HOT (In-Memory)
194
- └─ Current session data
195
- └─ Active decisions being worked on
196
-
197
- WARM (Queryable DB)
198
- └─ Recent decisions, facts, blockers
199
- └─ Agents query what they need: "decisions related to auth in last 30 days"
200
- └─ Fast retrieval, targeted results
201
-
202
- COLD (Archived)
203
- └─ Full history, indexed but dormant
204
- └─ Moves here after 90 days of low access
205
- ```
163
+ | Tier | What's Stored | Purpose |
164
+ |------|---------------|---------|
165
+ | **HOT** (In-Memory) | Current session data, active decisions | Instant access during work |
166
+ | **WARM** (SQLite DB) | Recent decisions, facts, blockers | Query what you need: *"payment decisions in last 30 days"* |
167
+ | **COLD** (Archived) | Full history, indexed but dormant | Auto-archives after 90 days of low access |
206
168
 
207
169
  #### How Extraction Works
208
170
 
@@ -224,7 +186,7 @@ Agents don't get dumps—they **query** for what they need:
224
186
  ```typescript
225
187
  // Agent queries decision ledger
226
188
  trie_get_decisions({
227
- relatedTo: "auth/validator.ts",
189
+ relatedTo: "checkout/validator.ts",
228
190
  since: "30d",
229
191
  limit: 5
230
192
  })
@@ -245,7 +207,7 @@ trie_get_decisions({
245
207
  ```bash
246
208
  # Before starting work on a feature, check what broke before
247
209
  trie gotcha # Predict risks for current changes
248
- trie memory search "auth" # See past incidents in this area
210
+ trie memory search "payments" # See past incidents in this area
249
211
  trie status # Check overall project health
250
212
 
251
213
  # Review past decisions and tradeoffs
@@ -316,7 +278,7 @@ Set improvement goals and test theories:
316
278
 
317
279
  ```bash
318
280
  # Set a goal
319
- trie goal add "Reduce authentication bugs by 50%"
281
+ trie goal add "Reduce checkout bugs by 50%"
320
282
 
321
283
  # Add a hypothesis
322
284
  trie hypothesis add "Code reviews reduce bug rate"
@@ -497,7 +459,7 @@ trie gotcha # Predict problems with current changes
497
459
  ### Memory Management
498
460
 
499
461
  ```bash
500
- trie memory search "auth" # Search incident history
462
+ trie memory search "database" # Search incident history
501
463
  trie memory stats # View memory statistics
502
464
  trie memory purge smart # Clean up old/resolved issues
503
465
  trie learn # Extract patterns from reverts/fixes
@@ -2,12 +2,9 @@ import {
2
2
  getGuardian
3
3
  } from "./chunk-B3MNN3XB.js";
4
4
  import {
5
- detectStack,
6
- getSkillCategories,
7
- getSkillsByCategory,
8
5
  loadContextState,
9
6
  runShellCommand
10
- } from "./chunk-HSNE46VE.js";
7
+ } from "./chunk-CCI6LKXZ.js";
11
8
  import {
12
9
  findCrossProjectPatterns,
13
10
  isAIAvailable
@@ -820,29 +817,6 @@ function getOutputManager() {
820
817
  return instance;
821
818
  }
822
819
 
823
- // src/skills/installer.ts
824
- async function listInstalledSkills() {
825
- return [];
826
- }
827
- async function listGlobalSkills() {
828
- return [];
829
- }
830
- async function installSkill(_repo, _skillName) {
831
- return {
832
- success: false,
833
- error: "Skills system has been replaced with the decision ledger"
834
- };
835
- }
836
- async function createSkillFromFile(_filePath) {
837
- return {
838
- success: false,
839
- error: "Skills system has been replaced with the decision ledger"
840
- };
841
- }
842
- async function removeGlobalSkill(_name) {
843
- return false;
844
- }
845
-
846
820
  // src/utils/file-picker.ts
847
821
  import { platform } from "os";
848
822
  async function openFilePicker(options = {}) {
@@ -2058,18 +2032,12 @@ var InteractiveDashboard = class {
2058
2032
  case "i":
2059
2033
  if (this.state.view === "guardian") {
2060
2034
  this.ignoreSelectedInsight();
2061
- } else if (this.state.view === "skills") {
2062
- this.showCreateCustomSkillDialog();
2063
2035
  } else {
2064
2036
  this.showGuardianConfig();
2065
2037
  }
2066
2038
  break;
2067
2039
  case "c":
2068
- if (this.state.view === "skills") {
2069
- this.showCreateCustomSkillDialog();
2070
- } else {
2071
- this.showGuardianConfig();
2072
- }
2040
+ this.showGuardianConfig();
2073
2041
  break;
2074
2042
  // === NEW VIEW SHORTCUTS ===
2075
2043
  case "d":
@@ -2097,10 +2065,6 @@ var InteractiveDashboard = class {
2097
2065
  case "l":
2098
2066
  this.goToView("rawlog");
2099
2067
  break;
2100
- case "v":
2101
- this.goToView("skills");
2102
- this.refreshSkillsData();
2103
- break;
2104
2068
  case "g":
2105
2069
  this.goToView("guardian");
2106
2070
  break;
@@ -2303,9 +2267,6 @@ var InteractiveDashboard = class {
2303
2267
  case "issues":
2304
2268
  this.renderIssuesList(width);
2305
2269
  break;
2306
- case "agents":
2307
- this.renderAgentsView(width);
2308
- break;
2309
2270
  case "files":
2310
2271
  this.renderFilesView(width);
2311
2272
  break;
@@ -2325,9 +2286,6 @@ var InteractiveDashboard = class {
2325
2286
  case "rawlog":
2326
2287
  this.renderRawLogView(width, height);
2327
2288
  break;
2328
- case "skills":
2329
- this.renderSkillsView(width, height);
2330
- break;
2331
2289
  case "guardian":
2332
2290
  this.renderGuardianView(width, height);
2333
2291
  break;
@@ -2416,37 +2374,20 @@ var InteractiveDashboard = class {
2416
2374
  this.renderSectionBorder(width);
2417
2375
  this.renderLine(" " + colors.header("AGENT STATUS"), width);
2418
2376
  this.renderLine(" " + colors.dim(this.line(width - 6)), width);
2419
- const allAgents = [.../* @__PURE__ */ new Set([...activeAgents, ...completedAgents])];
2420
- const waitingAgents = ["security", "typecheck", "accessibility", "legal", "test", "moneybags", "production-ready"].filter((a) => !activeAgents.includes(a) && !completedAgents.includes(a));
2421
- const leftAgents = [];
2422
- const rightAgents = [];
2423
- allAgents.forEach((agent, i) => {
2424
- const isActive = activeAgents.includes(agent);
2425
- const isDone = completedAgents.includes(agent);
2426
- const icon = isActive ? this.agentIcon("running") : isDone ? this.agentIcon("done") : this.agentIcon("waiting");
2427
- const statusText = isActive ? colors.running("analyzing") : isDone ? colors.success(`done (${this.getAgentIssueCount(agent)})`) : colors.waiting("waiting");
2428
- const entry = `${icon} ${agent.slice(0, 12).padEnd(12)} ${colors.dim("...")} ${statusText}`;
2429
- if (i % 2 === 0) {
2430
- leftAgents.push(entry);
2431
- } else {
2432
- rightAgents.push(entry);
2433
- }
2434
- });
2435
- waitingAgents.slice(0, 4).forEach((agent, i) => {
2436
- const entry = `${this.agentIcon("waiting")} ${agent.slice(0, 12).padEnd(12)} ${colors.dim("...")} ${colors.waiting("waiting")}`;
2437
- if ((allAgents.length + i) % 2 === 0) {
2438
- leftAgents.push(entry);
2439
- } else {
2440
- rightAgents.push(entry);
2377
+ if (this.state.watch.watching) {
2378
+ this.renderLine(" " + colors.success("\u{1F916} Autonomous monitoring active"), width);
2379
+ this.renderLine(" " + colors.dim(" \u2514 Extracting signals from file changes"), width);
2380
+ const { signalExtraction } = this.state;
2381
+ const totalExtracted = signalExtraction.decisionsExtracted + signalExtraction.factsExtracted + signalExtraction.blockersExtracted + signalExtraction.questionsExtracted;
2382
+ if (totalExtracted > 0) {
2383
+ this.renderLine(" " + colors.dim(" \u2514 Signals extracted: ") + colors.highlight(totalExtracted.toString()), width);
2441
2384
  }
2442
- });
2443
- const maxRows = Math.max(leftAgents.length, rightAgents.length, agentRows);
2444
- for (let i = 0; i < maxRows && i < agentRows; i++) {
2445
- const left = leftAgents[i] || "";
2446
- const right = rightAgents[i] || "";
2447
- this.renderLine(" " + padEnd(left, 35) + " " + right, width);
2385
+ } else {
2386
+ this.renderLine(" " + colors.dim("Scanning codebase..."), width);
2448
2387
  }
2449
2388
  this.renderLine("", width);
2389
+ this.renderLine("", width);
2390
+ this.renderLine("", width);
2450
2391
  this.renderSectionBorder(width);
2451
2392
  this.renderLine(" " + colors.header("ISSUES FOUND"), width);
2452
2393
  this.renderLine(" " + colors.dim(this.line(width - 6)), width);
@@ -4655,7 +4596,7 @@ var InteractiveDashboard = class {
4655
4596
  return;
4656
4597
  }
4657
4598
  if (!this.state.scanComplete) return;
4658
- const mainViews = ["overview", "issues", "agents", "files", "memory"];
4599
+ const mainViews = ["overview", "issues", "files", "memory"];
4659
4600
  const currentIndex = mainViews.indexOf(this.state.view);
4660
4601
  if (currentIndex >= 0) {
4661
4602
  const nextIndex = (currentIndex + 1) % mainViews.length;
@@ -6206,7 +6147,6 @@ export {
6206
6147
  TrieScanTool,
6207
6148
  StreamingManager,
6208
6149
  getOutputManager,
6209
- listInstalledSkills,
6210
6150
  InteractiveDashboard
6211
6151
  };
6212
- //# sourceMappingURL=chunk-DIZFGLXE.js.map
6152
+ //# sourceMappingURL=chunk-AE2XLMZC.js.map