opencarly 1.0.1 → 1.0.3
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 +78 -0
- package/dist/config/manifest.d.ts +6 -5
- package/dist/config/manifest.d.ts.map +1 -1
- package/dist/config/manifest.js +73 -22
- package/dist/config/manifest.js.map +1 -1
- package/dist/config/schema.d.ts +73 -93
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +23 -14
- package/dist/config/schema.js.map +1 -1
- package/dist/engine/loader.d.ts +2 -2
- package/dist/engine/loader.d.ts.map +1 -1
- package/dist/engine/loader.js +36 -20
- package/dist/engine/loader.js.map +1 -1
- package/dist/engine/matcher.d.ts +0 -3
- package/dist/engine/matcher.d.ts.map +1 -1
- package/dist/engine/matcher.js +45 -40
- package/dist/engine/matcher.js.map +1 -1
- package/dist/engine/trimmer.d.ts +4 -1
- package/dist/engine/trimmer.d.ts.map +1 -1
- package/dist/engine/trimmer.js +110 -30
- package/dist/engine/trimmer.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +107 -66
- package/dist/index.js.map +1 -1
- package/dist/session/session.d.ts +16 -10
- package/dist/session/session.d.ts.map +1 -1
- package/dist/session/session.js +267 -96
- package/dist/session/session.js.map +1 -1
- package/package.json +3 -1
package/dist/session/session.js
CHANGED
|
@@ -7,50 +7,74 @@
|
|
|
7
7
|
import * as fs from "fs";
|
|
8
8
|
import * as path from "path";
|
|
9
9
|
import { SessionConfigSchema, CumulativeStatsSchema, } from "../config/schema";
|
|
10
|
+
async function atomicWrite(filePath, data) {
|
|
11
|
+
const tmpPath = `${filePath}.${Date.now()}.${Math.random().toString(36).slice(2)}.tmp`;
|
|
12
|
+
await fs.promises.writeFile(tmpPath, data, "utf-8");
|
|
13
|
+
try {
|
|
14
|
+
await fs.promises.rename(tmpPath, filePath);
|
|
15
|
+
}
|
|
16
|
+
catch (err) {
|
|
17
|
+
try {
|
|
18
|
+
await fs.promises.unlink(tmpPath);
|
|
19
|
+
}
|
|
20
|
+
catch { }
|
|
21
|
+
throw err;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
class Mutex {
|
|
25
|
+
queue = [];
|
|
26
|
+
locked = false;
|
|
27
|
+
async acquire() {
|
|
28
|
+
if (this.locked)
|
|
29
|
+
await new Promise(resolve => this.queue.push(resolve));
|
|
30
|
+
this.locked = true;
|
|
31
|
+
return () => {
|
|
32
|
+
if (this.queue.length > 0) {
|
|
33
|
+
const next = this.queue.shift();
|
|
34
|
+
if (next)
|
|
35
|
+
next();
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
this.locked = false;
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
const sessionMutex = new Mutex();
|
|
10
44
|
const SESSIONS_DIR = "sessions";
|
|
11
45
|
const STATS_FILE = "stats.json";
|
|
12
|
-
const STALE_SESSION_HOURS =
|
|
46
|
+
const STALE_SESSION_HOURS = 720;
|
|
13
47
|
// ---------------------------------------------------------------------------
|
|
14
48
|
// Session CRUD
|
|
15
49
|
// ---------------------------------------------------------------------------
|
|
16
50
|
/**
|
|
17
51
|
* Get the sessions directory path, creating it if needed.
|
|
18
52
|
*/
|
|
19
|
-
function getSessionsDir(configPath) {
|
|
53
|
+
async function getSessionsDir(configPath) {
|
|
20
54
|
const dir = path.join(configPath, SESSIONS_DIR);
|
|
21
|
-
|
|
22
|
-
fs.mkdirSync(dir, { recursive: true });
|
|
23
|
-
}
|
|
55
|
+
await fs.promises.mkdir(dir, { recursive: true });
|
|
24
56
|
return dir;
|
|
25
57
|
}
|
|
26
58
|
/**
|
|
27
59
|
* Get path to a specific session file.
|
|
28
60
|
*/
|
|
29
|
-
function getSessionFilePath(configPath, sessionId) {
|
|
61
|
+
async function getSessionFilePath(configPath, sessionId) {
|
|
30
62
|
// Sanitize the sessionId to prevent path traversal
|
|
31
63
|
const safeId = sessionId.replace(/[^a-zA-Z0-9_-]/g, "");
|
|
32
|
-
|
|
64
|
+
const dir = await getSessionsDir(configPath);
|
|
65
|
+
return path.join(dir, `${safeId}.json`);
|
|
33
66
|
}
|
|
34
67
|
/**
|
|
35
68
|
* Load an existing session from disk. Returns null if not found.
|
|
36
69
|
*/
|
|
37
|
-
export function loadSession(configPath, sessionId) {
|
|
38
|
-
const filePath = getSessionFilePath(configPath, sessionId);
|
|
39
|
-
if (!fs.existsSync(filePath)) {
|
|
40
|
-
return null;
|
|
41
|
-
}
|
|
70
|
+
export async function loadSession(configPath, sessionId) {
|
|
71
|
+
const filePath = await getSessionFilePath(configPath, sessionId);
|
|
42
72
|
try {
|
|
43
|
-
const raw = fs.
|
|
73
|
+
const raw = await fs.promises.readFile(filePath, "utf-8");
|
|
44
74
|
return SessionConfigSchema.parse(JSON.parse(raw));
|
|
45
75
|
}
|
|
46
76
|
catch {
|
|
47
|
-
//
|
|
48
|
-
try {
|
|
49
|
-
fs.unlinkSync(filePath);
|
|
50
|
-
}
|
|
51
|
-
catch {
|
|
52
|
-
// ignore cleanup errors
|
|
53
|
-
}
|
|
77
|
+
// Return null on read error (ENOENT, EBUSY) or parse error. Do not delete file.
|
|
54
78
|
return null;
|
|
55
79
|
}
|
|
56
80
|
}
|
|
@@ -74,20 +98,36 @@ export function createSession(sessionId, cwd) {
|
|
|
74
98
|
/**
|
|
75
99
|
* Get or create a session. Returns the session and whether it was newly created.
|
|
76
100
|
*/
|
|
77
|
-
export function getOrCreateSession(configPath, sessionId, cwd) {
|
|
78
|
-
const existing = loadSession(configPath, sessionId);
|
|
101
|
+
export async function getOrCreateSession(configPath, sessionId, cwd) {
|
|
102
|
+
const existing = await loadSession(configPath, sessionId);
|
|
79
103
|
if (existing) {
|
|
80
104
|
return { session: existing, isNew: false };
|
|
81
105
|
}
|
|
82
106
|
const session = createSession(sessionId, cwd);
|
|
83
107
|
return { session, isNew: true };
|
|
84
108
|
}
|
|
109
|
+
const pendingSessionWrites = new Map();
|
|
85
110
|
/**
|
|
86
|
-
* Save a session to disk.
|
|
111
|
+
* Save a session to disk (debounced).
|
|
87
112
|
*/
|
|
88
|
-
export function saveSession(configPath, session) {
|
|
89
|
-
const
|
|
90
|
-
|
|
113
|
+
export async function saveSession(configPath, session) {
|
|
114
|
+
const sessionId = session.id;
|
|
115
|
+
if (pendingSessionWrites.has(sessionId)) {
|
|
116
|
+
clearTimeout(pendingSessionWrites.get(sessionId));
|
|
117
|
+
}
|
|
118
|
+
// Deep clone to prevent concurrent modification issues before the timeout fires
|
|
119
|
+
const sessionClone = JSON.parse(JSON.stringify(session));
|
|
120
|
+
pendingSessionWrites.set(sessionId, setTimeout(async () => {
|
|
121
|
+
pendingSessionWrites.delete(sessionId);
|
|
122
|
+
const release = await sessionMutex.acquire();
|
|
123
|
+
try {
|
|
124
|
+
const filePath = await getSessionFilePath(configPath, sessionClone.id);
|
|
125
|
+
await atomicWrite(filePath, JSON.stringify(sessionClone, null, 2));
|
|
126
|
+
}
|
|
127
|
+
finally {
|
|
128
|
+
release();
|
|
129
|
+
}
|
|
130
|
+
}, 1000));
|
|
91
131
|
}
|
|
92
132
|
// ---------------------------------------------------------------------------
|
|
93
133
|
// Session updates
|
|
@@ -113,16 +153,29 @@ export function updateSessionActivity(session, promptText) {
|
|
|
113
153
|
* Session overrides take precedence over manifest values.
|
|
114
154
|
*/
|
|
115
155
|
export function applySessionOverrides(manifest, session) {
|
|
116
|
-
|
|
117
|
-
const
|
|
156
|
+
const hasDevmodeOverride = session.overrides.devmode !== null;
|
|
157
|
+
const hasDomainOverrides = Object.keys(session.overrides.domainStates).length > 0;
|
|
158
|
+
if (!hasDevmodeOverride && !hasDomainOverrides) {
|
|
159
|
+
return manifest;
|
|
160
|
+
}
|
|
161
|
+
// Shallow clone the manifest
|
|
162
|
+
const result = { ...manifest };
|
|
118
163
|
// Override devmode if session has a non-null override
|
|
119
|
-
if (
|
|
164
|
+
if (hasDevmodeOverride) {
|
|
120
165
|
result.devmode = session.overrides.devmode;
|
|
121
166
|
}
|
|
122
167
|
// Override per-domain states
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
168
|
+
if (hasDomainOverrides) {
|
|
169
|
+
// Shallow clone the domains object so we can mutate specific domains
|
|
170
|
+
result.domains = { ...manifest.domains };
|
|
171
|
+
for (const [domainName, stateOverride] of Object.entries(session.overrides.domainStates)) {
|
|
172
|
+
if (stateOverride !== null && result.domains[domainName]) {
|
|
173
|
+
// Shallow clone the specific domain before mutating its state
|
|
174
|
+
result.domains[domainName] = {
|
|
175
|
+
...result.domains[domainName],
|
|
176
|
+
state: stateOverride ? "active" : "inactive"
|
|
177
|
+
};
|
|
178
|
+
}
|
|
126
179
|
}
|
|
127
180
|
}
|
|
128
181
|
return result;
|
|
@@ -133,31 +186,33 @@ export function applySessionOverrides(manifest, session) {
|
|
|
133
186
|
/**
|
|
134
187
|
* Remove session files older than STALE_SESSION_HOURS.
|
|
135
188
|
*/
|
|
136
|
-
export function cleanStaleSessions(configPath) {
|
|
189
|
+
export async function cleanStaleSessions(configPath) {
|
|
137
190
|
const sessionsDir = path.join(configPath, SESSIONS_DIR);
|
|
138
|
-
|
|
191
|
+
let files;
|
|
192
|
+
try {
|
|
193
|
+
files = await fs.promises.readdir(sessionsDir);
|
|
194
|
+
}
|
|
195
|
+
catch {
|
|
139
196
|
return 0;
|
|
140
197
|
}
|
|
141
198
|
const cutoff = Date.now() - STALE_SESSION_HOURS * 60 * 60 * 1000;
|
|
142
199
|
let cleaned = 0;
|
|
143
|
-
const files = fs.readdirSync(sessionsDir);
|
|
144
200
|
for (const file of files) {
|
|
145
201
|
if (!file.endsWith(".json"))
|
|
146
202
|
continue;
|
|
147
203
|
const filePath = path.join(sessionsDir, file);
|
|
148
204
|
try {
|
|
149
|
-
const
|
|
150
|
-
const
|
|
151
|
-
const lastActivity = new Date(session.lastActivity).getTime();
|
|
205
|
+
const stats = await fs.promises.stat(filePath);
|
|
206
|
+
const lastActivity = stats.mtimeMs;
|
|
152
207
|
if (lastActivity < cutoff) {
|
|
153
|
-
fs.
|
|
208
|
+
await fs.promises.rm(filePath, { recursive: true, force: true });
|
|
154
209
|
cleaned++;
|
|
155
210
|
}
|
|
156
211
|
}
|
|
157
212
|
catch {
|
|
158
|
-
// Remove corrupted files too
|
|
213
|
+
// Remove corrupted/unreadable files too
|
|
159
214
|
try {
|
|
160
|
-
fs.
|
|
215
|
+
await fs.promises.rm(filePath, { recursive: true, force: true });
|
|
161
216
|
cleaned++;
|
|
162
217
|
}
|
|
163
218
|
catch {
|
|
@@ -179,29 +234,28 @@ function getStatsFilePath(configPath) {
|
|
|
179
234
|
/**
|
|
180
235
|
* Read JSON file, returning null if doesn't exist or invalid.
|
|
181
236
|
*/
|
|
182
|
-
function
|
|
183
|
-
if (!fs.existsSync(filePath)) {
|
|
184
|
-
return null;
|
|
185
|
-
}
|
|
237
|
+
async function readJsonFileSafeAsync(filePath) {
|
|
186
238
|
try {
|
|
187
|
-
const raw = fs.
|
|
239
|
+
const raw = await fs.promises.readFile(filePath, "utf-8");
|
|
188
240
|
return JSON.parse(raw);
|
|
189
241
|
}
|
|
190
242
|
catch {
|
|
191
243
|
return null;
|
|
192
244
|
}
|
|
193
245
|
}
|
|
194
|
-
function
|
|
195
|
-
|
|
246
|
+
async function getSessionFilesAsync(sessionsDir) {
|
|
247
|
+
try {
|
|
248
|
+
const files = await fs.promises.readdir(sessionsDir);
|
|
249
|
+
return files
|
|
250
|
+
.filter((f) => f.endsWith(".json"))
|
|
251
|
+
.map((name) => ({
|
|
252
|
+
path: path.join(sessionsDir, name),
|
|
253
|
+
name,
|
|
254
|
+
}));
|
|
255
|
+
}
|
|
256
|
+
catch {
|
|
196
257
|
return [];
|
|
197
258
|
}
|
|
198
|
-
const files = fs.readdirSync(sessionsDir);
|
|
199
|
-
return files
|
|
200
|
-
.filter((f) => f.endsWith(".json"))
|
|
201
|
-
.map((name) => ({
|
|
202
|
-
path: path.join(sessionsDir, name),
|
|
203
|
-
name,
|
|
204
|
-
}));
|
|
205
259
|
}
|
|
206
260
|
function calculateTokensSaved(tokenStats) {
|
|
207
261
|
return ((tokenStats.tokensSkippedBySelection || 0) +
|
|
@@ -229,9 +283,9 @@ function calculateCumulativeStats(sessions) {
|
|
|
229
283
|
* Load cumulative stats from stats.json and session files.
|
|
230
284
|
* Returns defaults if no data exists.
|
|
231
285
|
*/
|
|
232
|
-
export function loadCumulativeStats(configPath) {
|
|
286
|
+
export async function loadCumulativeStats(configPath, trackDuration = "all") {
|
|
233
287
|
const statsPath = getStatsFilePath(configPath);
|
|
234
|
-
const raw =
|
|
288
|
+
const raw = await readJsonFileSafeAsync(statsPath);
|
|
235
289
|
let statsJson;
|
|
236
290
|
if (raw) {
|
|
237
291
|
try {
|
|
@@ -275,8 +329,8 @@ export function loadCumulativeStats(configPath) {
|
|
|
275
329
|
}
|
|
276
330
|
}
|
|
277
331
|
// Load sessions from session files
|
|
278
|
-
const sessionsDir =
|
|
279
|
-
const sessionFiles =
|
|
332
|
+
const sessionsDir = path.join(configPath, SESSIONS_DIR);
|
|
333
|
+
const sessionFiles = await getSessionFilesAsync(sessionsDir);
|
|
280
334
|
const sessionMap = new Map();
|
|
281
335
|
// Add sessions from stats.json first
|
|
282
336
|
for (const session of statsJson.sessions) {
|
|
@@ -284,7 +338,7 @@ export function loadCumulativeStats(configPath) {
|
|
|
284
338
|
}
|
|
285
339
|
// Merge sessions from session files
|
|
286
340
|
for (const sessionFile of sessionFiles) {
|
|
287
|
-
const sessionData =
|
|
341
|
+
const sessionData = await readJsonFileSafeAsync(sessionFile.path);
|
|
288
342
|
if (sessionData && sessionData.id && sessionData.tokenStats) {
|
|
289
343
|
const existing = sessionMap.get(sessionData.id);
|
|
290
344
|
if (!existing) {
|
|
@@ -292,6 +346,7 @@ export function loadCumulativeStats(configPath) {
|
|
|
292
346
|
sessionMap.set(sessionData.id, {
|
|
293
347
|
sessionId: sessionData.id,
|
|
294
348
|
date: sessionData.started,
|
|
349
|
+
lastActivity: sessionData.lastActivity || sessionData.started,
|
|
295
350
|
tokensSaved: calculateTokensSaved(sessionData.tokenStats),
|
|
296
351
|
promptsProcessed: sessionData.promptCount || 0,
|
|
297
352
|
tokensSkippedBySelection: sessionData.tokenStats.tokensSkippedBySelection || 0,
|
|
@@ -304,64 +359,122 @@ export function loadCumulativeStats(configPath) {
|
|
|
304
359
|
}
|
|
305
360
|
}
|
|
306
361
|
// Recalculate cumulative totals from merged sessions
|
|
307
|
-
|
|
308
|
-
|
|
362
|
+
let sessions = Array.from(sessionMap.values());
|
|
363
|
+
let cumulative;
|
|
364
|
+
if (trackDuration !== "all") {
|
|
365
|
+
const cutoff = new Date();
|
|
366
|
+
if (trackDuration === "week") {
|
|
367
|
+
cutoff.setDate(cutoff.getDate() - 7);
|
|
368
|
+
}
|
|
369
|
+
else if (trackDuration === "month") {
|
|
370
|
+
cutoff.setMonth(cutoff.getMonth() - 1);
|
|
371
|
+
}
|
|
372
|
+
const cutoffTime = cutoff.getTime();
|
|
373
|
+
sessions = sessions.filter(s => new Date(s.lastActivity || s.date).getTime() >= cutoffTime);
|
|
374
|
+
// For specific durations, recalculate to only include sessions within the timeframe
|
|
375
|
+
cumulative = calculateCumulativeStats(sessions);
|
|
376
|
+
}
|
|
377
|
+
else {
|
|
378
|
+
// For "all" time, use the persistent running total to avoid truncation after 100 sessions
|
|
379
|
+
cumulative = { ...statsJson.cumulative };
|
|
380
|
+
}
|
|
381
|
+
sessions.sort((a, b) => {
|
|
382
|
+
const timeA = new Date(a.lastActivity || a.date).getTime();
|
|
383
|
+
const timeB = new Date(b.lastActivity || b.date).getTime();
|
|
384
|
+
return timeB - timeA;
|
|
385
|
+
});
|
|
386
|
+
if (sessions.length > 100) {
|
|
387
|
+
sessions = sessions.slice(0, 100);
|
|
388
|
+
}
|
|
309
389
|
return {
|
|
310
390
|
version: statsJson.version,
|
|
311
391
|
cumulative,
|
|
312
392
|
sessions,
|
|
313
393
|
};
|
|
314
394
|
}
|
|
395
|
+
const pendingStatsWrites = new Map();
|
|
396
|
+
async function debouncedAtomicWrite(filePath, data) {
|
|
397
|
+
if (pendingStatsWrites.has(filePath)) {
|
|
398
|
+
clearTimeout(pendingStatsWrites.get(filePath));
|
|
399
|
+
}
|
|
400
|
+
pendingStatsWrites.set(filePath, setTimeout(async () => {
|
|
401
|
+
pendingStatsWrites.delete(filePath);
|
|
402
|
+
const release = await sessionMutex.acquire();
|
|
403
|
+
try {
|
|
404
|
+
await atomicWrite(filePath, data);
|
|
405
|
+
}
|
|
406
|
+
finally {
|
|
407
|
+
release();
|
|
408
|
+
}
|
|
409
|
+
}, 1000));
|
|
410
|
+
}
|
|
315
411
|
/**
|
|
316
412
|
* Save cumulative stats to stats.json.
|
|
317
413
|
*/
|
|
318
|
-
export function saveCumulativeStats(configPath, stats) {
|
|
414
|
+
export async function saveCumulativeStats(configPath, stats) {
|
|
319
415
|
const statsPath = getStatsFilePath(configPath);
|
|
320
|
-
|
|
416
|
+
await debouncedAtomicWrite(statsPath, JSON.stringify(stats, null, 2));
|
|
321
417
|
}
|
|
322
418
|
/**
|
|
323
419
|
* Clear all stats by removing stats.json and all session files.
|
|
324
420
|
*/
|
|
325
|
-
export function clearAllStats(configPath) {
|
|
326
|
-
const
|
|
327
|
-
|
|
421
|
+
export async function clearAllStats(configPath) {
|
|
422
|
+
const release = await sessionMutex.acquire();
|
|
423
|
+
try {
|
|
424
|
+
const statsPath = getStatsFilePath(configPath);
|
|
328
425
|
try {
|
|
329
|
-
fs.
|
|
426
|
+
await fs.promises.unlink(statsPath);
|
|
330
427
|
}
|
|
331
428
|
catch { }
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
429
|
+
const sessionsDir = path.join(configPath, SESSIONS_DIR);
|
|
430
|
+
try {
|
|
431
|
+
const files = await fs.promises.readdir(sessionsDir);
|
|
432
|
+
for (const file of files) {
|
|
433
|
+
if (file.endsWith(".json")) {
|
|
434
|
+
try {
|
|
435
|
+
await fs.promises.unlink(path.join(sessionsDir, file));
|
|
436
|
+
}
|
|
437
|
+
catch { }
|
|
340
438
|
}
|
|
341
|
-
catch { }
|
|
342
439
|
}
|
|
343
440
|
}
|
|
441
|
+
catch { }
|
|
442
|
+
}
|
|
443
|
+
finally {
|
|
444
|
+
release();
|
|
344
445
|
}
|
|
345
446
|
}
|
|
346
447
|
/**
|
|
347
448
|
* Update cumulative stats with the current session's stats.
|
|
348
449
|
* Called on every prompt to keep stats current.
|
|
349
450
|
*/
|
|
350
|
-
export function updateCumulativeStats(configPath, session) {
|
|
451
|
+
export async function updateCumulativeStats(configPath, session, trackDuration, currentDelta, memoryStats) {
|
|
351
452
|
const statsPath = getStatsFilePath(configPath);
|
|
352
453
|
let stats;
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
stats = raw ? CumulativeStatsSchema.parse(raw) : { version: 1, cumulative: { tokensSkippedBySelection: 0, tokensInjected: 0, tokensTrimmedFromHistory: 0, tokensTrimmedCarlyBlocks: 0, totalTokensSaved: 0 }, sessions: [] };
|
|
454
|
+
if (memoryStats) {
|
|
455
|
+
stats = memoryStats;
|
|
356
456
|
}
|
|
357
|
-
|
|
358
|
-
|
|
457
|
+
else {
|
|
458
|
+
const release = await sessionMutex.acquire();
|
|
459
|
+
try {
|
|
460
|
+
try {
|
|
461
|
+
const raw = await readJsonFileSafeAsync(statsPath);
|
|
462
|
+
stats = raw ? CumulativeStatsSchema.parse(raw) : { version: 1, cumulative: { tokensSkippedBySelection: 0, tokensInjected: 0, tokensTrimmedFromHistory: 0, tokensTrimmedCarlyBlocks: 0, totalTokensSaved: 0 }, sessions: [] };
|
|
463
|
+
}
|
|
464
|
+
catch {
|
|
465
|
+
stats = { version: 1, cumulative: { tokensSkippedBySelection: 0, tokensInjected: 0, tokensTrimmedFromHistory: 0, tokensTrimmedCarlyBlocks: 0, totalTokensSaved: 0 }, sessions: [] };
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
finally {
|
|
469
|
+
release();
|
|
470
|
+
}
|
|
359
471
|
}
|
|
360
472
|
const tokensSaved = calculateTokensSaved(session.tokenStats);
|
|
361
473
|
const existingIndex = stats.sessions.findIndex(s => s.sessionId === session.id);
|
|
362
474
|
const summary = {
|
|
363
475
|
sessionId: session.id,
|
|
364
476
|
date: session.started,
|
|
477
|
+
lastActivity: session.lastActivity,
|
|
365
478
|
tokensSaved,
|
|
366
479
|
promptsProcessed: session.tokenStats.promptsProcessed,
|
|
367
480
|
tokensSkippedBySelection: session.tokenStats.tokensSkippedBySelection,
|
|
@@ -370,25 +483,83 @@ export function updateCumulativeStats(configPath, session) {
|
|
|
370
483
|
tokensInjected: session.tokenStats.tokensInjected,
|
|
371
484
|
rulesInjected: session.tokenStats.rulesInjected || 0,
|
|
372
485
|
};
|
|
486
|
+
const isReEntering = existingIndex === -1 && session.tokenStats.promptsProcessed > 1;
|
|
487
|
+
let isReset = false;
|
|
488
|
+
// We preserve the previous cumulative totals
|
|
489
|
+
const prevCumulativeTokensSkipped = stats.cumulative.tokensSkippedBySelection || 0;
|
|
490
|
+
const prevCumulativeTokensTrimmedHistory = stats.cumulative.tokensTrimmedFromHistory || 0;
|
|
491
|
+
const prevCumulativeTokensTrimmedCarlyBlocks = stats.cumulative.tokensTrimmedCarlyBlocks || 0;
|
|
492
|
+
const prevCumulativeTokensInjected = stats.cumulative.tokensInjected || 0;
|
|
493
|
+
const prevCumulativeTotalSaved = stats.cumulative.totalTokensSaved || 0;
|
|
373
494
|
if (existingIndex >= 0) {
|
|
495
|
+
const oldSession = stats.sessions[existingIndex];
|
|
496
|
+
isReset = session.tokenStats.promptsProcessed < (oldSession.promptsProcessed || 0);
|
|
497
|
+
if (!isReset) {
|
|
498
|
+
// If it's an existing session and not reset, subtract the old values first before adding new ones
|
|
499
|
+
stats.cumulative.tokensSkippedBySelection = prevCumulativeTokensSkipped - (oldSession.tokensSkippedBySelection || 0);
|
|
500
|
+
stats.cumulative.tokensTrimmedFromHistory = prevCumulativeTokensTrimmedHistory - (oldSession.tokensTrimmedFromHistory || 0);
|
|
501
|
+
stats.cumulative.tokensTrimmedCarlyBlocks = prevCumulativeTokensTrimmedCarlyBlocks - (oldSession.tokensTrimmedCarlyBlocks || 0);
|
|
502
|
+
stats.cumulative.tokensInjected = prevCumulativeTokensInjected - (oldSession.tokensInjected || 0);
|
|
503
|
+
stats.cumulative.totalTokensSaved = prevCumulativeTotalSaved - (oldSession.tokensSaved || 0);
|
|
504
|
+
}
|
|
505
|
+
else {
|
|
506
|
+
// It's a reset. Keep current totals, do not subtract old session to preserve historical stats
|
|
507
|
+
stats.cumulative.tokensSkippedBySelection = prevCumulativeTokensSkipped;
|
|
508
|
+
stats.cumulative.tokensTrimmedFromHistory = prevCumulativeTokensTrimmedHistory;
|
|
509
|
+
stats.cumulative.tokensTrimmedCarlyBlocks = prevCumulativeTokensTrimmedCarlyBlocks;
|
|
510
|
+
stats.cumulative.tokensInjected = prevCumulativeTokensInjected;
|
|
511
|
+
stats.cumulative.totalTokensSaved = prevCumulativeTotalSaved;
|
|
512
|
+
}
|
|
374
513
|
stats.sessions[existingIndex] = summary;
|
|
375
514
|
}
|
|
376
515
|
else {
|
|
377
516
|
stats.sessions.push(summary);
|
|
517
|
+
// Keep current totals, we will add the new session's values below if not re-entering
|
|
518
|
+
stats.cumulative.tokensSkippedBySelection = prevCumulativeTokensSkipped;
|
|
519
|
+
stats.cumulative.tokensTrimmedFromHistory = prevCumulativeTokensTrimmedHistory;
|
|
520
|
+
stats.cumulative.tokensTrimmedCarlyBlocks = prevCumulativeTokensTrimmedCarlyBlocks;
|
|
521
|
+
stats.cumulative.tokensInjected = prevCumulativeTokensInjected;
|
|
522
|
+
stats.cumulative.totalTokensSaved = prevCumulativeTotalSaved;
|
|
523
|
+
}
|
|
524
|
+
// Add the newly updated or pushed session to the cumulative totals
|
|
525
|
+
if (!isReEntering) {
|
|
526
|
+
stats.cumulative.tokensSkippedBySelection += summary.tokensSkippedBySelection || 0;
|
|
527
|
+
stats.cumulative.tokensTrimmedFromHistory += summary.tokensTrimmedFromHistory || 0;
|
|
528
|
+
stats.cumulative.tokensTrimmedCarlyBlocks += summary.tokensTrimmedCarlyBlocks || 0;
|
|
529
|
+
stats.cumulative.tokensInjected += summary.tokensInjected || 0;
|
|
530
|
+
stats.cumulative.totalTokensSaved += summary.tokensSaved || 0;
|
|
531
|
+
}
|
|
532
|
+
else if (currentDelta) {
|
|
533
|
+
// If re-entering, only add the delta from the current prompt to avoid double-counting history
|
|
534
|
+
stats.cumulative.tokensSkippedBySelection += currentDelta.tokensSkippedBySelection || 0;
|
|
535
|
+
stats.cumulative.tokensTrimmedFromHistory += currentDelta.tokensTrimmedFromHistory || 0;
|
|
536
|
+
stats.cumulative.tokensTrimmedCarlyBlocks += currentDelta.tokensTrimmedCarlyBlocks || 0;
|
|
537
|
+
stats.cumulative.tokensInjected += currentDelta.tokensInjected || 0;
|
|
538
|
+
stats.cumulative.totalTokensSaved += currentDelta.tokensSaved || 0;
|
|
539
|
+
}
|
|
540
|
+
// Filter based on trackDuration
|
|
541
|
+
if (trackDuration !== "all") {
|
|
542
|
+
const cutoff = new Date();
|
|
543
|
+
if (trackDuration === "week") {
|
|
544
|
+
cutoff.setDate(cutoff.getDate() - 7);
|
|
545
|
+
}
|
|
546
|
+
else if (trackDuration === "month") {
|
|
547
|
+
cutoff.setMonth(cutoff.getMonth() - 1);
|
|
548
|
+
}
|
|
549
|
+
const cutoffTime = cutoff.getTime();
|
|
550
|
+
stats.sessions = stats.sessions.filter(s => new Date(s.lastActivity || s.date).getTime() >= cutoffTime);
|
|
551
|
+
stats.cumulative = calculateCumulativeStats(stats.sessions);
|
|
552
|
+
}
|
|
553
|
+
// Limit array size to prevent unbounded growth (max 100)
|
|
554
|
+
stats.sessions.sort((a, b) => {
|
|
555
|
+
const timeA = new Date(a.lastActivity || a.date).getTime();
|
|
556
|
+
const timeB = new Date(b.lastActivity || b.date).getTime();
|
|
557
|
+
return timeB - timeA;
|
|
558
|
+
});
|
|
559
|
+
if (stats.sessions.length > 100) {
|
|
560
|
+
stats.sessions = stats.sessions.slice(0, 100);
|
|
378
561
|
}
|
|
379
|
-
stats
|
|
380
|
-
stats.cumulative.tokensTrimmedFromHistory = 0;
|
|
381
|
-
stats.cumulative.tokensTrimmedCarlyBlocks = 0;
|
|
382
|
-
stats.cumulative.tokensInjected = 0;
|
|
383
|
-
stats.cumulative.totalTokensSaved = 0;
|
|
384
|
-
for (const s of stats.sessions) {
|
|
385
|
-
stats.cumulative.tokensSkippedBySelection += s.tokensSkippedBySelection || 0;
|
|
386
|
-
stats.cumulative.tokensTrimmedFromHistory += s.tokensTrimmedFromHistory || 0;
|
|
387
|
-
stats.cumulative.tokensTrimmedCarlyBlocks += s.tokensTrimmedCarlyBlocks || 0;
|
|
388
|
-
stats.cumulative.tokensInjected += s.tokensInjected || 0;
|
|
389
|
-
stats.cumulative.totalTokensSaved += s.tokensSaved || 0;
|
|
390
|
-
}
|
|
391
|
-
saveCumulativeStats(configPath, stats);
|
|
562
|
+
await debouncedAtomicWrite(statsPath, JSON.stringify(stats, null, 2));
|
|
392
563
|
return stats;
|
|
393
564
|
}
|
|
394
565
|
//# sourceMappingURL=session.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/session/session.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/session/session.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "opencarly",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Context Augmentation & Reinforcement Layer for OpenCode - Dynamic rules that load when relevant, disappear when not.",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -21,10 +21,12 @@
|
|
|
21
21
|
"prepublishOnly": "npm run build"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
+
"minimatch": "^10.2.4",
|
|
24
25
|
"zod": "^3.23.0"
|
|
25
26
|
},
|
|
26
27
|
"devDependencies": {
|
|
27
28
|
"@opencode-ai/plugin": "^1.0.0",
|
|
29
|
+
"@types/minimatch": "^5.1.2",
|
|
28
30
|
"@types/node": "^22.0.0",
|
|
29
31
|
"typescript": "^5.7.0"
|
|
30
32
|
},
|