@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 +21 -59
- package/dist/{chunk-DIZFGLXE.js → chunk-AE2XLMZC.js} +15 -75
- package/dist/chunk-AE2XLMZC.js.map +1 -0
- package/dist/{chunk-HSNE46VE.js → chunk-CCI6LKXZ.js} +1 -431
- package/dist/chunk-CCI6LKXZ.js.map +1 -0
- package/dist/{chunk-FNCCZ3XB.js → chunk-M4JCQO5G.js} +443 -19
- package/dist/chunk-M4JCQO5G.js.map +1 -0
- package/dist/cli/main.js +3 -3
- package/dist/cli/yolo-daemon.js +2 -2
- package/dist/index.js +11 -5
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-DIZFGLXE.js.map +0 -1
- package/dist/chunk-FNCCZ3XB.js.map +0 -1
- package/dist/chunk-HSNE46VE.js.map +0 -1
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
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
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
|
|
55
|
+
### 2. Start Teaching Trie
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
When bugs happen, tell Trie about them:
|
|
58
58
|
|
|
59
59
|
```bash
|
|
60
|
-
#
|
|
61
|
-
trie
|
|
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
|
|
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
|
|
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
|
|
161
|
+
#### Three-Tier Storage
|
|
191
162
|
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
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: "
|
|
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 "
|
|
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
|
|
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 "
|
|
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-
|
|
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
|
-
|
|
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
|
-
|
|
2420
|
-
|
|
2421
|
-
|
|
2422
|
-
|
|
2423
|
-
|
|
2424
|
-
|
|
2425
|
-
|
|
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
|
-
|
|
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", "
|
|
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-
|
|
6152
|
+
//# sourceMappingURL=chunk-AE2XLMZC.js.map
|