fivocell 6.3.0 → 7.1.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/README.md +194 -197
- package/dist/__tests__/cli-regression.test.js +1 -1
- package/dist/__tests__/cli-regression.test.js.map +1 -1
- package/dist/__tests__/teach-context.test.d.ts +2 -0
- package/dist/__tests__/teach-context.test.d.ts.map +1 -0
- package/dist/__tests__/teach-context.test.js +44 -0
- package/dist/__tests__/teach-context.test.js.map +1 -0
- package/dist/__tests__/teach-parser.test.d.ts +2 -0
- package/dist/__tests__/teach-parser.test.d.ts.map +1 -0
- package/dist/__tests__/teach-parser.test.js +56 -0
- package/dist/__tests__/teach-parser.test.js.map +1 -0
- package/dist/__tests__/teach-store.test.d.ts +2 -0
- package/dist/__tests__/teach-store.test.d.ts.map +1 -0
- package/dist/__tests__/teach-store.test.js +68 -0
- package/dist/__tests__/teach-store.test.js.map +1 -0
- package/dist/__tests__/vibe-engine.test.d.ts +2 -0
- package/dist/__tests__/vibe-engine.test.d.ts.map +1 -0
- package/dist/__tests__/vibe-engine.test.js +132 -0
- package/dist/__tests__/vibe-engine.test.js.map +1 -0
- package/dist/walls/01-context/context/agents-md.d.ts +1 -1
- package/dist/walls/01-context/context/agents-md.d.ts.map +1 -1
- package/dist/walls/01-context/context/agents-md.js +33 -1
- package/dist/walls/01-context/context/agents-md.js.map +1 -1
- package/dist/walls/01-context/context/context-bridge.d.ts +39 -0
- package/dist/walls/01-context/context/context-bridge.d.ts.map +1 -0
- package/dist/walls/01-context/context/context-bridge.js +224 -0
- package/dist/walls/01-context/context/context-bridge.js.map +1 -0
- package/dist/walls/01-context/context/context-continuity.d.ts +54 -0
- package/dist/walls/01-context/context/context-continuity.d.ts.map +1 -0
- package/dist/walls/01-context/context/context-continuity.js +350 -0
- package/dist/walls/01-context/context/context-continuity.js.map +1 -0
- package/dist/walls/01-context/context/context-predictor.d.ts +24 -0
- package/dist/walls/01-context/context/context-predictor.d.ts.map +1 -0
- package/dist/walls/01-context/context/context-predictor.js +322 -0
- package/dist/walls/01-context/context/context-predictor.js.map +1 -0
- package/dist/walls/01-context/context/prompt-builder.d.ts +1 -0
- package/dist/walls/01-context/context/prompt-builder.d.ts.map +1 -1
- package/dist/walls/01-context/context/prompt-builder.js +68 -1
- package/dist/walls/01-context/context/prompt-builder.js.map +1 -1
- package/dist/walls/01-context/sessions/session-memory.d.ts.map +1 -1
- package/dist/walls/01-context/sessions/session-memory.js +47 -1
- package/dist/walls/01-context/sessions/session-memory.js.map +1 -1
- package/dist/walls/04-team/collab/team-supreme.d.ts +70 -0
- package/dist/walls/04-team/collab/team-supreme.d.ts.map +1 -0
- package/dist/walls/04-team/collab/team-supreme.js +357 -0
- package/dist/walls/04-team/collab/team-supreme.js.map +1 -0
- package/dist/walls/05-community/share/cloud-connector.d.ts +83 -0
- package/dist/walls/05-community/share/cloud-connector.d.ts.map +1 -0
- package/dist/walls/05-community/share/cloud-connector.js +385 -0
- package/dist/walls/05-community/share/cloud-connector.js.map +1 -0
- package/dist/walls/05-community/stats/community-supreme.d.ts +83 -0
- package/dist/walls/05-community/stats/community-supreme.d.ts.map +1 -0
- package/dist/walls/05-community/stats/community-supreme.js +221 -0
- package/dist/walls/05-community/stats/community-supreme.js.map +1 -0
- package/dist/walls/06-memory/archive/blob-vault.d.ts.map +1 -1
- package/dist/walls/06-memory/archive/blob-vault.js +8 -9
- package/dist/walls/06-memory/archive/blob-vault.js.map +1 -1
- package/dist/walls/06-memory/archive/memory-archive.d.ts.map +1 -1
- package/dist/walls/06-memory/archive/memory-archive.js +32 -22
- package/dist/walls/06-memory/archive/memory-archive.js.map +1 -1
- package/dist/walls/06-memory/privacy/key-provider.d.ts +19 -0
- package/dist/walls/06-memory/privacy/key-provider.d.ts.map +1 -1
- package/dist/walls/06-memory/privacy/key-provider.js +52 -0
- package/dist/walls/06-memory/privacy/key-provider.js.map +1 -1
- package/dist/walls/06-memory/retrieval/context-pipeline.d.ts.map +1 -1
- package/dist/walls/06-memory/retrieval/context-pipeline.js +9 -0
- package/dist/walls/06-memory/retrieval/context-pipeline.js.map +1 -1
- package/dist/walls/06-memory/stores/sync-engine.d.ts.map +1 -1
- package/dist/walls/06-memory/stores/sync-engine.js +56 -49
- package/dist/walls/06-memory/stores/sync-engine.js.map +1 -1
- package/dist/walls/06-memory/teach/teach-context.d.ts +8 -0
- package/dist/walls/06-memory/teach/teach-context.d.ts.map +1 -0
- package/dist/walls/06-memory/teach/teach-context.js +25 -0
- package/dist/walls/06-memory/teach/teach-context.js.map +1 -0
- package/dist/walls/06-memory/teach/teach-parser.d.ts +6 -0
- package/dist/walls/06-memory/teach/teach-parser.d.ts.map +1 -0
- package/dist/walls/06-memory/teach/teach-parser.js +42 -0
- package/dist/walls/06-memory/teach/teach-parser.js.map +1 -0
- package/dist/walls/06-memory/teach/teach-sections.d.ts +10 -0
- package/dist/walls/06-memory/teach/teach-sections.d.ts.map +1 -0
- package/dist/walls/06-memory/teach/teach-sections.js +67 -0
- package/dist/walls/06-memory/teach/teach-sections.js.map +1 -0
- package/dist/walls/06-memory/teach/teach-store.d.ts +25 -0
- package/dist/walls/06-memory/teach/teach-store.d.ts.map +1 -0
- package/dist/walls/06-memory/teach/teach-store.js +95 -0
- package/dist/walls/06-memory/teach/teach-store.js.map +1 -0
- package/dist/walls/06-memory/vibe/vibe-cli.d.ts +2 -0
- package/dist/walls/06-memory/vibe/vibe-cli.d.ts.map +1 -0
- package/dist/walls/06-memory/vibe/vibe-cli.js +217 -0
- package/dist/walls/06-memory/vibe/vibe-cli.js.map +1 -0
- package/dist/walls/06-memory/vibe/vibe-confidence.d.ts +24 -0
- package/dist/walls/06-memory/vibe/vibe-confidence.d.ts.map +1 -0
- package/dist/walls/06-memory/vibe/vibe-confidence.js +91 -0
- package/dist/walls/06-memory/vibe/vibe-confidence.js.map +1 -0
- package/dist/walls/06-memory/vibe/vibe-context.d.ts +8 -0
- package/dist/walls/06-memory/vibe/vibe-context.d.ts.map +1 -0
- package/dist/walls/06-memory/vibe/vibe-context.js +88 -0
- package/dist/walls/06-memory/vibe/vibe-context.js.map +1 -0
- package/dist/walls/06-memory/vibe/vibe-engine.d.ts +45 -0
- package/dist/walls/06-memory/vibe/vibe-engine.d.ts.map +1 -0
- package/dist/walls/06-memory/vibe/vibe-engine.js +670 -0
- package/dist/walls/06-memory/vibe/vibe-engine.js.map +1 -0
- package/dist/walls/06-memory/vibe/vibe-intelligence.d.ts +19 -0
- package/dist/walls/06-memory/vibe/vibe-intelligence.d.ts.map +1 -0
- package/dist/walls/06-memory/vibe/vibe-intelligence.js +264 -0
- package/dist/walls/06-memory/vibe/vibe-intelligence.js.map +1 -0
- package/dist/walls/06-memory/vibe/vibe-signals.d.ts +27 -0
- package/dist/walls/06-memory/vibe/vibe-signals.d.ts.map +1 -0
- package/dist/walls/06-memory/vibe/vibe-signals.js +251 -0
- package/dist/walls/06-memory/vibe/vibe-signals.js.map +1 -0
- package/dist/walls/07-runtime/cli/cli.js +25 -0
- package/dist/walls/07-runtime/cli/cli.js.map +1 -1
- package/dist/walls/07-runtime/cli/commands/branch.js +6 -6
- package/dist/walls/07-runtime/cli/commands/branch.js.map +1 -1
- package/dist/walls/07-runtime/cli/commands/cloud.d.ts +3 -0
- package/dist/walls/07-runtime/cli/commands/cloud.d.ts.map +1 -0
- package/dist/walls/07-runtime/cli/commands/cloud.js +219 -0
- package/dist/walls/07-runtime/cli/commands/cloud.js.map +1 -0
- package/dist/walls/07-runtime/cli/commands/community.d.ts.map +1 -1
- package/dist/walls/07-runtime/cli/commands/community.js +6 -0
- package/dist/walls/07-runtime/cli/commands/community.js.map +1 -1
- package/dist/walls/07-runtime/cli/commands/help.d.ts.map +1 -1
- package/dist/walls/07-runtime/cli/commands/help.js +87 -77
- package/dist/walls/07-runtime/cli/commands/help.js.map +1 -1
- package/dist/walls/07-runtime/cli/commands/memory.js +5 -5
- package/dist/walls/07-runtime/cli/commands/memory.js.map +1 -1
- package/dist/walls/07-runtime/cli/commands/scan.d.ts.map +1 -1
- package/dist/walls/07-runtime/cli/commands/scan.js +39 -20
- package/dist/walls/07-runtime/cli/commands/scan.js.map +1 -1
- package/dist/walls/07-runtime/cli/commands/session.d.ts.map +1 -1
- package/dist/walls/07-runtime/cli/commands/session.js +2 -1
- package/dist/walls/07-runtime/cli/commands/session.js.map +1 -1
- package/dist/walls/07-runtime/cli/commands/setup.js +2 -2
- package/dist/walls/07-runtime/cli/commands/setup.js.map +1 -1
- package/dist/walls/07-runtime/cli/commands/status.js +7 -7
- package/dist/walls/07-runtime/cli/commands/status.js.map +1 -1
- package/dist/walls/07-runtime/cli/commands/sync.js +1 -1
- package/dist/walls/07-runtime/cli/commands/sync.js.map +1 -1
- package/dist/walls/07-runtime/cli/commands/teach.d.ts +3 -0
- package/dist/walls/07-runtime/cli/commands/teach.d.ts.map +1 -0
- package/dist/walls/07-runtime/cli/commands/teach.js +203 -0
- package/dist/walls/07-runtime/cli/commands/teach.js.map +1 -0
- package/dist/walls/07-runtime/cli/utils.js +2 -2
- package/dist/walls/07-runtime/daemon/lifecycle.d.ts.map +1 -1
- package/dist/walls/07-runtime/daemon/lifecycle.js +13 -1
- package/dist/walls/07-runtime/daemon/lifecycle.js.map +1 -1
- package/dist/walls/07-runtime/daemon/routes/session.d.ts.map +1 -1
- package/dist/walls/07-runtime/daemon/routes/session.js +4 -3
- package/dist/walls/07-runtime/daemon/routes/session.js.map +1 -1
- package/dist/walls/07-runtime/daemon/server.d.ts.map +1 -1
- package/dist/walls/07-runtime/daemon/server.js +3 -0
- package/dist/walls/07-runtime/daemon/server.js.map +1 -1
- package/package.json +1 -1
- package/scripts/deep-audit.js +103 -0
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// context-predictor.ts — Supreme Context Predictor
|
|
3
|
+
// Predicts what information AI will need in the NEXT session based on patterns.
|
|
4
|
+
// Uses session history, decision patterns, error recurrence, and file focus.
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
+
var ownKeys = function(o) {
|
|
23
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
+
var ar = [];
|
|
25
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
return ownKeys(o);
|
|
29
|
+
};
|
|
30
|
+
return function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.predictContext = predictContext;
|
|
40
|
+
exports.formatPredictions = formatPredictions;
|
|
41
|
+
exports.bridgeWithPredictions = bridgeWithPredictions;
|
|
42
|
+
const database_1 = require("../../06-memory/database/database");
|
|
43
|
+
const path = __importStar(require("path"));
|
|
44
|
+
function getActiveFileSet(project) {
|
|
45
|
+
try {
|
|
46
|
+
const db = (0, database_1.getDb)();
|
|
47
|
+
const rows = db.prepare(`SELECT DISTINCT sf.file_path FROM session_files sf
|
|
48
|
+
JOIN sessions s ON sf.session_id = s.id
|
|
49
|
+
WHERE s.project = ?
|
|
50
|
+
ORDER BY sf.first_touched DESC
|
|
51
|
+
LIMIT 15`).all(project);
|
|
52
|
+
return rows.map((r) => r.file_path);
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
return [];
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
function getErrorPatterns(project) {
|
|
59
|
+
try {
|
|
60
|
+
const db = (0, database_1.getDb)();
|
|
61
|
+
return db.prepare(`SELECT file_path as file, COUNT(*) as count, MAX(created_at) as lastSeen
|
|
62
|
+
FROM error_log WHERE project = ?
|
|
63
|
+
GROUP BY file_path
|
|
64
|
+
HAVING COUNT(*) >= 2
|
|
65
|
+
ORDER BY count DESC
|
|
66
|
+
LIMIT 5`).all(project);
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
return [];
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
function getDecisionRevisitLikelihood(project) {
|
|
73
|
+
try {
|
|
74
|
+
const db = (0, database_1.getDb)();
|
|
75
|
+
const decisions = db.prepare(`SELECT technology, reason, was_right FROM decisions
|
|
76
|
+
WHERE project = ?
|
|
77
|
+
ORDER BY created_at DESC
|
|
78
|
+
LIMIT 10`).all(project);
|
|
79
|
+
const predictions = [];
|
|
80
|
+
const undecided = decisions.filter((d) => d.was_right === null);
|
|
81
|
+
const bad = decisions.filter((d) => d.was_right === 0);
|
|
82
|
+
for (const d of undecided.slice(0, 2)) {
|
|
83
|
+
predictions.push({
|
|
84
|
+
type: 'will_ask_about_decision',
|
|
85
|
+
text: `Decision on "${d.technology}" still unresolved — may want to revisit.`,
|
|
86
|
+
confidence: 70,
|
|
87
|
+
reason: d.reason || 'No recorded reason',
|
|
88
|
+
fromSessions: [],
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
for (const d of bad.slice(0, 2)) {
|
|
92
|
+
predictions.push({
|
|
93
|
+
type: 'will_refactor',
|
|
94
|
+
text: `Decision on "${d.technology}" was marked WRONG — refactor may be needed.`,
|
|
95
|
+
confidence: 75,
|
|
96
|
+
reason: d.reason || 'No recorded reason',
|
|
97
|
+
fromSessions: [],
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
return predictions;
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
return [];
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
function getTaskContinuation(project) {
|
|
107
|
+
try {
|
|
108
|
+
const db = (0, database_1.getDb)();
|
|
109
|
+
const lastSession = db.prepare('SELECT id, key_decisions, context_snapshot FROM sessions WHERE project = ? ORDER BY id DESC LIMIT 1').get(project);
|
|
110
|
+
if (!lastSession)
|
|
111
|
+
return [];
|
|
112
|
+
let decisions = [];
|
|
113
|
+
try {
|
|
114
|
+
decisions = JSON.parse(lastSession.key_decisions || '[]');
|
|
115
|
+
}
|
|
116
|
+
catch { }
|
|
117
|
+
const predictions = [];
|
|
118
|
+
if (decisions.length > 0) {
|
|
119
|
+
const lastDecisions = decisions.slice(-3);
|
|
120
|
+
for (const d of lastDecisions) {
|
|
121
|
+
if (/started|began|working on|implementing|building|creating/.test(d.toLowerCase())) {
|
|
122
|
+
predictions.push({
|
|
123
|
+
type: 'will_continue_task',
|
|
124
|
+
text: `Task was in progress: "${d}" — likely needs continuation.`,
|
|
125
|
+
confidence: 80,
|
|
126
|
+
reason: 'Unfinished task detected in last session decisions',
|
|
127
|
+
fromSessions: [lastSession.id],
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return predictions;
|
|
133
|
+
}
|
|
134
|
+
catch {
|
|
135
|
+
return [];
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
function getTimePressure(sessions) {
|
|
139
|
+
if (sessions.length < 3)
|
|
140
|
+
return [];
|
|
141
|
+
const recent = sessions.slice(0, 5);
|
|
142
|
+
let shortCount = 0;
|
|
143
|
+
const allHours = [];
|
|
144
|
+
for (const s of recent) {
|
|
145
|
+
if (s.start_time) {
|
|
146
|
+
const h = new Date(s.start_time).getHours();
|
|
147
|
+
allHours.push(h);
|
|
148
|
+
if (h >= 19 || h <= 2)
|
|
149
|
+
shortCount++;
|
|
150
|
+
}
|
|
151
|
+
if (s.end_time && s.start_time) {
|
|
152
|
+
const dur = new Date(s.end_time).getTime() - new Date(s.start_time).getTime();
|
|
153
|
+
if (dur < 15 * 60 * 1000)
|
|
154
|
+
shortCount++; // <15 min session
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
if (shortCount >= 3) {
|
|
158
|
+
return [{
|
|
159
|
+
type: 'time_pressure',
|
|
160
|
+
text: 'Recent sessions have been short/fast — may be working under time pressure.',
|
|
161
|
+
confidence: 70,
|
|
162
|
+
reason: `${shortCount}/${recent.length} recent sessions show time constraints`,
|
|
163
|
+
fromSessions: recent.map((s) => s.id),
|
|
164
|
+
}];
|
|
165
|
+
}
|
|
166
|
+
return [];
|
|
167
|
+
}
|
|
168
|
+
function getDebuggingMode(project) {
|
|
169
|
+
try {
|
|
170
|
+
const db = (0, database_1.getDb)();
|
|
171
|
+
const recent = db.prepare(`SELECT summary FROM memory_events
|
|
172
|
+
WHERE project = ? AND type IN ('error', 'fix')
|
|
173
|
+
ORDER BY id DESC LIMIT 10`).all(project);
|
|
174
|
+
const errors = recent.filter((e) => e.type === 'error').length;
|
|
175
|
+
const fixes = recent.filter((e) => e.type === 'fix').length;
|
|
176
|
+
if (errors + fixes >= 5 && errors > fixes) {
|
|
177
|
+
return [{
|
|
178
|
+
type: 'debugging_mode',
|
|
179
|
+
text: 'In debugging mode — more errors being logged than fixes applied.',
|
|
180
|
+
confidence: 75,
|
|
181
|
+
reason: `${errors} errors vs ${fixes} fixes in recent memory`,
|
|
182
|
+
fromSessions: [],
|
|
183
|
+
}];
|
|
184
|
+
}
|
|
185
|
+
return [];
|
|
186
|
+
}
|
|
187
|
+
catch {
|
|
188
|
+
return [];
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
function generateBeachhead(predictions, project) {
|
|
192
|
+
const highConf = predictions.filter(p => p.confidence >= 70);
|
|
193
|
+
if (highConf.length === 0)
|
|
194
|
+
return null;
|
|
195
|
+
const continueTask = highConf.find(p => p.type === 'will_continue_task');
|
|
196
|
+
const needFile = highConf.find(p => p.type === 'will_need_file');
|
|
197
|
+
const debugging = highConf.find(p => p.type === 'debugging_mode');
|
|
198
|
+
const refactor = highConf.find(p => p.type === 'will_refactor');
|
|
199
|
+
if (continueTask) {
|
|
200
|
+
return {
|
|
201
|
+
text: 'You were in the middle of something.',
|
|
202
|
+
confidence: continueTask.confidence,
|
|
203
|
+
suggestedAction: continueTask.text,
|
|
204
|
+
contextSummary: 'Pick up where the last session left off. Check the last decisions and open questions first.',
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
if (refactor) {
|
|
208
|
+
return {
|
|
209
|
+
text: 'A past decision may need rework.',
|
|
210
|
+
confidence: refactor.confidence,
|
|
211
|
+
suggestedAction: refactor.text,
|
|
212
|
+
contextSummary: 'Review recent bad decisions before starting new work.',
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
if (debugging) {
|
|
216
|
+
return {
|
|
217
|
+
text: 'You\'re in debugging mode.',
|
|
218
|
+
confidence: debugging.confidence,
|
|
219
|
+
suggestedAction: `Focus on the error patterns: ${predictions.filter(p => p.type === 'will_face_error').map(p => p.text).join('; ')}`,
|
|
220
|
+
contextSummary: 'Debugging mode detected. Address error patterns before new feature work.',
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
return {
|
|
224
|
+
text: 'Previous context is available to continue from.',
|
|
225
|
+
confidence: 65,
|
|
226
|
+
suggestedAction: `Review ${predictions.length} context predictions for guidance.`,
|
|
227
|
+
contextSummary: 'Multiple context signals detected from recent sessions.',
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
// Main predictor — runs all analyses and returns state
|
|
231
|
+
function predictContext(project, projectDir) {
|
|
232
|
+
const db = (0, database_1.getDb)();
|
|
233
|
+
const sessions = db.prepare('SELECT id, start_time, end_time, tool_name FROM sessions WHERE project = ? ORDER BY id DESC LIMIT 10').all(project);
|
|
234
|
+
let allPredictions = [];
|
|
235
|
+
// 1. Files AI will need
|
|
236
|
+
const activeFiles = getActiveFileSet(project);
|
|
237
|
+
for (const f of activeFiles.slice(0, 5)) {
|
|
238
|
+
allPredictions.push({
|
|
239
|
+
type: 'will_need_file',
|
|
240
|
+
text: `File still in focus: "${path.basename(f)}" — likely needs to open it.`,
|
|
241
|
+
confidence: 65,
|
|
242
|
+
reason: `Frequently touched across sessions`,
|
|
243
|
+
fromSessions: [],
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
// 2. Error patterns to watch for
|
|
247
|
+
const errorPatterns = getErrorPatterns(project);
|
|
248
|
+
for (const ep of errorPatterns) {
|
|
249
|
+
allPredictions.push({
|
|
250
|
+
type: 'will_face_error',
|
|
251
|
+
text: `Error in "${path.basename(ep.file)}" has occurred ${ep.count} times — may happen again.`,
|
|
252
|
+
confidence: Math.min(80, ep.count * 15),
|
|
253
|
+
reason: `${ep.count} recurrences, last seen ${ep.lastSeen}`,
|
|
254
|
+
fromSessions: [],
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
// 3. Decision revisits
|
|
258
|
+
allPredictions.push(...getDecisionRevisitLikelihood(project));
|
|
259
|
+
// 4. Task continuation
|
|
260
|
+
allPredictions.push(...getTaskContinuation(project));
|
|
261
|
+
// 5. Time pressure
|
|
262
|
+
allPredictions.push(...getTimePressure(sessions));
|
|
263
|
+
// 6. Debugging mode
|
|
264
|
+
allPredictions.push(...getDebuggingMode(project));
|
|
265
|
+
// Sort by confidence
|
|
266
|
+
allPredictions.sort((a, b) => b.confidence - a.confidence);
|
|
267
|
+
const top = allPredictions.slice(0, 10);
|
|
268
|
+
const beachhead = generateBeachhead(top, project);
|
|
269
|
+
// Save state
|
|
270
|
+
try {
|
|
271
|
+
const fs = require('fs');
|
|
272
|
+
const statePath = require('path').join(projectDir, '.cell', 'predictor.json');
|
|
273
|
+
fs.writeFileSync(statePath, JSON.stringify({
|
|
274
|
+
predictions: top,
|
|
275
|
+
beachhead,
|
|
276
|
+
generatedAt: new Date().toISOString(),
|
|
277
|
+
basedOnSessionCount: sessions.length,
|
|
278
|
+
}, null, 2), 'utf-8');
|
|
279
|
+
}
|
|
280
|
+
catch { }
|
|
281
|
+
return {
|
|
282
|
+
predictions: top,
|
|
283
|
+
beachhead,
|
|
284
|
+
generatedAt: new Date().toISOString(),
|
|
285
|
+
basedOnSessionCount: sessions.length,
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
// Format predictions for context block
|
|
289
|
+
function formatPredictions(state) {
|
|
290
|
+
const lines = [];
|
|
291
|
+
if (state.predictions.length === 0) {
|
|
292
|
+
lines.push('🔮 PREDICTIONS');
|
|
293
|
+
lines.push(' No predictions yet — more sessions will reveal patterns.');
|
|
294
|
+
return lines.join('\n');
|
|
295
|
+
}
|
|
296
|
+
lines.push('🔮 CONTEXT PREDICTIONS');
|
|
297
|
+
lines.push(` Based on ${state.basedOnSessionCount} sessions.`);
|
|
298
|
+
if (state.beachhead) {
|
|
299
|
+
lines.push('');
|
|
300
|
+
lines.push(` 🏖️ BEACHHEAD (${state.beachhead.confidence}%):`);
|
|
301
|
+
lines.push(` ${state.beachhead.text}`);
|
|
302
|
+
lines.push(` › ${state.beachhead.suggestedAction}`);
|
|
303
|
+
}
|
|
304
|
+
const topPreds = state.predictions.filter(p => p.confidence >= 60).slice(0, 6);
|
|
305
|
+
if (topPreds.length > 0) {
|
|
306
|
+
lines.push('');
|
|
307
|
+
for (const p of topPreds) {
|
|
308
|
+
const icon = p.confidence >= 80 ? '🔴' : p.confidence >= 70 ? '🟡' : '🟢';
|
|
309
|
+
lines.push(` ${icon} [${p.type}] ${p.text} (${p.confidence}%)`);
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
return lines.join('\n');
|
|
313
|
+
}
|
|
314
|
+
// Inject predictions into the bridge's predictedNextSteps
|
|
315
|
+
function bridgeWithPredictions(bridgeNextSteps, state) {
|
|
316
|
+
const merged = [...bridgeNextSteps];
|
|
317
|
+
for (const p of state.predictions.filter(p => p.confidence >= 70)) {
|
|
318
|
+
merged.push(p.text);
|
|
319
|
+
}
|
|
320
|
+
return [...new Set(merged)].slice(0, 8);
|
|
321
|
+
}
|
|
322
|
+
//# sourceMappingURL=context-predictor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-predictor.js","sourceRoot":"","sources":["../../../../src/walls/01-context/context/context-predictor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-builder.d.ts","sourceRoot":"","sources":["../../../../src/walls/01-context/context/prompt-builder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prompt-builder.d.ts","sourceRoot":"","sources":["../../../../src/walls/01-context/context/prompt-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,12 @@ exports.estimateTokens = estimateTokens;
|
|
|
8
8
|
exports.getStalenessStatus = getStalenessStatus;
|
|
9
9
|
const database_1 = require("../../06-memory/database/database");
|
|
10
10
|
const logger_1 = require("../../06-memory/database/logger");
|
|
11
|
+
const context_continuity_1 = require("./context-continuity");
|
|
12
|
+
const context_bridge_1 = require("./context-bridge");
|
|
13
|
+
const context_predictor_1 = require("./context-predictor");
|
|
14
|
+
const team_supreme_1 = require("../../04-team/collab/team-supreme");
|
|
15
|
+
const community_supreme_1 = require("../../05-community/stats/community-supreme");
|
|
16
|
+
const _PROJECT_DIR = process.cwd();
|
|
11
17
|
function buildContext(projectPath, toolName) {
|
|
12
18
|
const db = (0, database_1.getDb)();
|
|
13
19
|
const profile = readProfile(db, projectPath);
|
|
@@ -42,7 +48,7 @@ function buildContext(projectPath, toolName) {
|
|
|
42
48
|
}
|
|
43
49
|
}
|
|
44
50
|
catch { /* memory store not available */ }
|
|
45
|
-
|
|
51
|
+
const ctx = {
|
|
46
52
|
whoYouAre,
|
|
47
53
|
rightNow,
|
|
48
54
|
yourStyle,
|
|
@@ -59,6 +65,15 @@ function buildContext(projectPath, toolName) {
|
|
|
59
65
|
staleness,
|
|
60
66
|
keyMemories,
|
|
61
67
|
};
|
|
68
|
+
// Step 3.6: Vibe profile injection
|
|
69
|
+
try {
|
|
70
|
+
const { getVibeForContext } = require('../../06-memory/vibe/vibe-context');
|
|
71
|
+
const vibe = getVibeForContext(projectPath);
|
|
72
|
+
if (vibe)
|
|
73
|
+
ctx.vibe = vibe.data;
|
|
74
|
+
}
|
|
75
|
+
catch { /* vibe not yet initialized */ }
|
|
76
|
+
return ctx;
|
|
62
77
|
}
|
|
63
78
|
function formatContextForInjection(ctx, compact = false) {
|
|
64
79
|
if (compact) {
|
|
@@ -118,6 +133,58 @@ function atCellBlock(ctx, projectNameOverride) {
|
|
|
118
133
|
lines.push(`⚡ CELL CONTEXT — ${projectName}`);
|
|
119
134
|
lines.push(divider);
|
|
120
135
|
lines.push('');
|
|
136
|
+
// ─── 🎭 VIBE (Developer Personality) ─────────────────────────────────
|
|
137
|
+
if (ctx.vibe) {
|
|
138
|
+
lines.push(ctx.vibe);
|
|
139
|
+
lines.push('');
|
|
140
|
+
}
|
|
141
|
+
// ─── 🌉 SUPREME CONTEXT: Bridge + Continuity + Predictions ───────────
|
|
142
|
+
// These ensure AI never starts a session blind — always knows previous context
|
|
143
|
+
try {
|
|
144
|
+
const bridge = (0, context_bridge_1.peekSessionBridge)(_PROJECT_DIR);
|
|
145
|
+
if (bridge && !bridge.consumed) {
|
|
146
|
+
lines.push((0, context_bridge_1.formatBridgeForContext)(bridge));
|
|
147
|
+
lines.push('');
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
catch { }
|
|
151
|
+
try {
|
|
152
|
+
const continuityCtx = (0, context_continuity_1.buildContinuityContext)(_PROJECT_DIR, projectName);
|
|
153
|
+
if (continuityCtx.currentThread && continuityCtx.currentThread.sessionCount > 0) {
|
|
154
|
+
const block = (0, context_continuity_1.getContinuityBlock)(continuityCtx);
|
|
155
|
+
if (block.split('\n').length > 2) {
|
|
156
|
+
lines.push(block);
|
|
157
|
+
lines.push('');
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
catch { }
|
|
162
|
+
try {
|
|
163
|
+
const predictorState = (0, context_predictor_1.predictContext)(projectName, _PROJECT_DIR);
|
|
164
|
+
if (predictorState.predictions.length > 0) {
|
|
165
|
+
lines.push((0, context_predictor_1.formatPredictions)(predictorState));
|
|
166
|
+
lines.push('');
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
catch { }
|
|
170
|
+
// ─── 👥 TEAM CONTEXT ─────────────────────────────────────────────────
|
|
171
|
+
try {
|
|
172
|
+
const teamCtx = (0, team_supreme_1.buildTeamSupremeContext)();
|
|
173
|
+
if (teamCtx.members.length > 0) {
|
|
174
|
+
lines.push((0, team_supreme_1.formatTeamContext)(teamCtx));
|
|
175
|
+
lines.push('');
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
catch { }
|
|
179
|
+
// ─── 🌍 COMMUNITY CONTEXT ────────────────────────────────────────────
|
|
180
|
+
try {
|
|
181
|
+
const communityCtx = (0, community_supreme_1.buildCommunitySupremeContext)();
|
|
182
|
+
if (communityCtx.communityHealth.totalPatterns > 0) {
|
|
183
|
+
lines.push((0, community_supreme_1.formatCommunityContext)(communityCtx));
|
|
184
|
+
lines.push('');
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
catch { }
|
|
121
188
|
// ─── 📦 PROJECT (Stack + Developer Context) ─────────────────────────
|
|
122
189
|
lines.push('📦 PROJECT');
|
|
123
190
|
const developer = [];
|