gencode-ai 0.3.0 → 0.4.1
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/RELEASE_NOTES_v0.4.0.md +140 -0
- package/dist/agent/agent.d.ts +17 -2
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.js +279 -49
- package/dist/agent/agent.js.map +1 -1
- package/dist/agent/types.d.ts +15 -1
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/checkpointing/checkpoint-manager.d.ts +24 -0
- package/dist/checkpointing/checkpoint-manager.d.ts.map +1 -1
- package/dist/checkpointing/checkpoint-manager.js +28 -0
- package/dist/checkpointing/checkpoint-manager.js.map +1 -1
- package/dist/cli/components/App.d.ts +8 -0
- package/dist/cli/components/App.d.ts.map +1 -1
- package/dist/cli/components/App.js +478 -36
- package/dist/cli/components/App.js.map +1 -1
- package/dist/cli/components/CommandSuggestions.d.ts.map +1 -1
- package/dist/cli/components/CommandSuggestions.js +2 -0
- package/dist/cli/components/CommandSuggestions.js.map +1 -1
- package/dist/cli/components/Header.d.ts +6 -1
- package/dist/cli/components/Header.d.ts.map +1 -1
- package/dist/cli/components/Header.js +3 -3
- package/dist/cli/components/Header.js.map +1 -1
- package/dist/cli/components/Messages.d.ts.map +1 -1
- package/dist/cli/components/Messages.js +7 -9
- package/dist/cli/components/Messages.js.map +1 -1
- package/dist/cli/index.js +3 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/config/types.d.ts +20 -1
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/input/history-manager.d.ts +78 -0
- package/dist/input/history-manager.d.ts.map +1 -0
- package/dist/input/history-manager.js +224 -0
- package/dist/input/history-manager.js.map +1 -0
- package/dist/input/index.d.ts +6 -0
- package/dist/input/index.d.ts.map +1 -0
- package/dist/input/index.js +5 -0
- package/dist/input/index.js.map +1 -0
- package/dist/prompts/index.js +3 -3
- package/dist/prompts/index.js.map +1 -1
- package/dist/providers/gemini.d.ts.map +1 -1
- package/dist/providers/gemini.js +33 -2
- package/dist/providers/gemini.js.map +1 -1
- package/dist/providers/google.d.ts +22 -0
- package/dist/providers/google.d.ts.map +1 -0
- package/dist/providers/google.js +297 -0
- package/dist/providers/google.js.map +1 -0
- package/dist/providers/index.d.ts +4 -4
- package/dist/providers/index.js +11 -11
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +6 -0
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/registry.js +3 -3
- package/dist/providers/registry.js.map +1 -1
- package/dist/providers/types.d.ts +30 -4
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/session/compression/engine.d.ts +109 -0
- package/dist/session/compression/engine.d.ts.map +1 -0
- package/dist/session/compression/engine.js +311 -0
- package/dist/session/compression/engine.js.map +1 -0
- package/dist/session/compression/index.d.ts +12 -0
- package/dist/session/compression/index.d.ts.map +1 -0
- package/dist/session/compression/index.js +11 -0
- package/dist/session/compression/index.js.map +1 -0
- package/dist/session/compression/types.d.ts +90 -0
- package/dist/session/compression/types.d.ts.map +1 -0
- package/dist/session/compression/types.js +17 -0
- package/dist/session/compression/types.js.map +1 -0
- package/dist/session/manager.d.ts +64 -3
- package/dist/session/manager.d.ts.map +1 -1
- package/dist/session/manager.js +254 -2
- package/dist/session/manager.js.map +1 -1
- package/dist/session/types.d.ts +16 -0
- package/dist/session/types.d.ts.map +1 -1
- package/dist/session/types.js.map +1 -1
- package/docs/README.md +1 -0
- package/docs/diagrams/compression-decision.mmd +30 -0
- package/docs/diagrams/compression-workflow.mmd +54 -0
- package/docs/diagrams/layer1-pruning.mmd +45 -0
- package/docs/diagrams/layer2-compaction.mmd +42 -0
- package/docs/proposals/0007-context-management.md +252 -2
- package/docs/proposals/README.md +4 -3
- package/docs/providers.md +3 -3
- package/docs/session-compression.md +695 -0
- package/examples/agent-demo.ts +23 -1
- package/examples/basic.ts +3 -3
- package/package.json +4 -5
- package/src/agent/agent.ts +314 -52
- package/src/agent/types.ts +19 -1
- package/src/checkpointing/checkpoint-manager.ts +48 -0
- package/src/cli/components/App.tsx +553 -34
- package/src/cli/components/CommandSuggestions.tsx +2 -0
- package/src/cli/components/Header.tsx +16 -1
- package/src/cli/components/Messages.tsx +20 -14
- package/src/cli/index.tsx +3 -2
- package/src/config/types.ts +26 -1
- package/src/index.ts +3 -3
- package/src/input/history-manager.ts +289 -0
- package/src/input/index.ts +6 -0
- package/src/prompts/index.test.ts +2 -1
- package/src/prompts/index.ts +3 -3
- package/src/providers/{gemini.ts → google.ts} +69 -18
- package/src/providers/index.ts +14 -14
- package/src/providers/openai.ts +7 -0
- package/src/providers/registry.ts +3 -3
- package/src/providers/types.ts +33 -3
- package/src/session/compression/engine.ts +406 -0
- package/src/session/compression/index.ts +18 -0
- package/src/session/compression/types.ts +102 -0
- package/src/session/manager.ts +326 -3
- package/src/session/types.ts +21 -0
- package/tests/input-history-manager.test.ts +335 -0
- package/tests/session-checkpoint-persistence.test.ts +198 -0
|
@@ -1,13 +1,39 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Session Manager - Handles session persistence and retrieval
|
|
3
3
|
*/
|
|
4
|
-
import
|
|
4
|
+
import { EventEmitter } from 'events';
|
|
5
|
+
import type { Message, MessageContent } from '../providers/types.js';
|
|
5
6
|
import type { Session, SessionListItem, SessionConfig } from './types.js';
|
|
6
|
-
|
|
7
|
+
import type { ModelInfo } from './compression/types.js';
|
|
8
|
+
interface LLMProvider {
|
|
9
|
+
complete(options: {
|
|
10
|
+
model: string;
|
|
11
|
+
messages: Message[];
|
|
12
|
+
maxTokens?: number;
|
|
13
|
+
}): Promise<{
|
|
14
|
+
content: string | MessageContent[];
|
|
15
|
+
}>;
|
|
16
|
+
getModel?(): string;
|
|
17
|
+
}
|
|
18
|
+
export declare class SessionManager extends EventEmitter {
|
|
7
19
|
private config;
|
|
8
20
|
private storageDir;
|
|
9
21
|
private currentSession;
|
|
22
|
+
private compressionEngine;
|
|
23
|
+
private cumulativeTokens;
|
|
10
24
|
constructor(config?: Partial<SessionConfig>);
|
|
25
|
+
/**
|
|
26
|
+
* Set compression engine (requires LLM provider)
|
|
27
|
+
*/
|
|
28
|
+
setCompressionEngine(provider: LLMProvider, model?: string): void;
|
|
29
|
+
/**
|
|
30
|
+
* Calculate cumulative tokens from session metadata
|
|
31
|
+
*/
|
|
32
|
+
private calculateCumulativeTokens;
|
|
33
|
+
/**
|
|
34
|
+
* Update cumulative token usage from latest completion
|
|
35
|
+
*/
|
|
36
|
+
private updateTokenUsageFromLatestCompletion;
|
|
11
37
|
/**
|
|
12
38
|
* Initialize storage directory
|
|
13
39
|
*/
|
|
@@ -76,7 +102,7 @@ export declare class SessionManager {
|
|
|
76
102
|
/**
|
|
77
103
|
* Add message to current session
|
|
78
104
|
*/
|
|
79
|
-
addMessage(message: Message): Promise<void>;
|
|
105
|
+
addMessage(message: Message, modelInfo?: ModelInfo): Promise<void>;
|
|
80
106
|
/**
|
|
81
107
|
* Update session title
|
|
82
108
|
*/
|
|
@@ -101,5 +127,40 @@ export declare class SessionManager {
|
|
|
101
127
|
* Import session from JSON
|
|
102
128
|
*/
|
|
103
129
|
import(json: string): Promise<Session>;
|
|
130
|
+
/**
|
|
131
|
+
* Layer 1: Prune tool outputs
|
|
132
|
+
*/
|
|
133
|
+
private pruneToolOutputs;
|
|
134
|
+
/**
|
|
135
|
+
* Layer 2: Perform compaction (summarization)
|
|
136
|
+
* Public for manual compaction via /compact command
|
|
137
|
+
*/
|
|
138
|
+
performCompaction(modelInfo: ModelInfo): Promise<void>;
|
|
139
|
+
/**
|
|
140
|
+
* Format summary as context message
|
|
141
|
+
*/
|
|
142
|
+
private formatSummaryAsContext;
|
|
143
|
+
/**
|
|
144
|
+
* Get messages for LLM (includes compression context)
|
|
145
|
+
*/
|
|
146
|
+
getMessagesForLLM(): Message[];
|
|
147
|
+
/**
|
|
148
|
+
* Get compression statistics
|
|
149
|
+
*/
|
|
150
|
+
getCompressionStats(): {
|
|
151
|
+
totalMessages: number;
|
|
152
|
+
activeMessages: number;
|
|
153
|
+
summaryCount: number;
|
|
154
|
+
compressionRatio: number;
|
|
155
|
+
} | null;
|
|
156
|
+
/**
|
|
157
|
+
* Get cumulative token usage for current session
|
|
158
|
+
*/
|
|
159
|
+
getTokenUsage(): {
|
|
160
|
+
input: number;
|
|
161
|
+
output: number;
|
|
162
|
+
total: number;
|
|
163
|
+
};
|
|
104
164
|
}
|
|
165
|
+
export {};
|
|
105
166
|
//# sourceMappingURL=manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/session/manager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/session/manager.ts"],"names":[],"mappings":"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"}
|
package/dist/session/manager.js
CHANGED
|
@@ -5,15 +5,74 @@ import * as fs from 'fs/promises';
|
|
|
5
5
|
import * as path from 'path';
|
|
6
6
|
import * as os from 'os';
|
|
7
7
|
import * as crypto from 'crypto';
|
|
8
|
+
import { EventEmitter } from 'events';
|
|
8
9
|
import { DEFAULT_SESSION_CONFIG } from './types.js';
|
|
9
|
-
|
|
10
|
+
import { CompressionEngine } from './compression/engine.js';
|
|
11
|
+
import { getCheckpointManager, initCheckpointManager } from '../checkpointing/index.js';
|
|
12
|
+
export class SessionManager extends EventEmitter {
|
|
10
13
|
config;
|
|
11
14
|
storageDir;
|
|
12
15
|
currentSession = null;
|
|
16
|
+
compressionEngine = null;
|
|
17
|
+
cumulativeTokens = { input: 0, output: 0, total: 0 };
|
|
13
18
|
constructor(config) {
|
|
19
|
+
super();
|
|
14
20
|
this.config = { ...DEFAULT_SESSION_CONFIG, ...config };
|
|
15
21
|
this.storageDir = this.config.storageDir.replace('~', os.homedir());
|
|
16
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Set compression engine (requires LLM provider)
|
|
25
|
+
*/
|
|
26
|
+
setCompressionEngine(provider, model) {
|
|
27
|
+
const compressionConfig = {
|
|
28
|
+
...this.config.compression,
|
|
29
|
+
model: model || this.config.compression?.model,
|
|
30
|
+
};
|
|
31
|
+
this.compressionEngine = new CompressionEngine(provider, compressionConfig);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Calculate cumulative tokens from session metadata
|
|
35
|
+
*/
|
|
36
|
+
calculateCumulativeTokens(session) {
|
|
37
|
+
let inputTotal = 0;
|
|
38
|
+
let outputTotal = 0;
|
|
39
|
+
// Sum from completions metadata
|
|
40
|
+
if (session.metadata.completions) {
|
|
41
|
+
for (const completion of session.metadata.completions) {
|
|
42
|
+
if (completion.usage) {
|
|
43
|
+
inputTotal += completion.usage.inputTokens;
|
|
44
|
+
outputTotal += completion.usage.outputTokens;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
// Also check session-level tokenUsage (for backwards compatibility)
|
|
49
|
+
if (session.metadata.tokenUsage) {
|
|
50
|
+
inputTotal = Math.max(inputTotal, session.metadata.tokenUsage.input);
|
|
51
|
+
outputTotal = Math.max(outputTotal, session.metadata.tokenUsage.output);
|
|
52
|
+
}
|
|
53
|
+
this.cumulativeTokens = {
|
|
54
|
+
input: inputTotal,
|
|
55
|
+
output: outputTotal,
|
|
56
|
+
total: inputTotal + outputTotal,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Update cumulative token usage from latest completion
|
|
61
|
+
*/
|
|
62
|
+
updateTokenUsageFromLatestCompletion() {
|
|
63
|
+
if (!this.currentSession?.metadata.completions)
|
|
64
|
+
return;
|
|
65
|
+
const completions = this.currentSession.metadata.completions;
|
|
66
|
+
if (completions.length === 0)
|
|
67
|
+
return;
|
|
68
|
+
// Get the latest completion
|
|
69
|
+
const latest = completions[completions.length - 1];
|
|
70
|
+
if (latest.usage) {
|
|
71
|
+
this.cumulativeTokens.input += latest.usage.inputTokens;
|
|
72
|
+
this.cumulativeTokens.output += latest.usage.outputTokens;
|
|
73
|
+
this.cumulativeTokens.total = this.cumulativeTokens.input + this.cumulativeTokens.output;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
17
76
|
/**
|
|
18
77
|
* Initialize storage directory
|
|
19
78
|
*/
|
|
@@ -55,6 +114,8 @@ export class SessionManager {
|
|
|
55
114
|
messages: [],
|
|
56
115
|
};
|
|
57
116
|
this.currentSession = session;
|
|
117
|
+
// Initialize cumulative tokens to zero for new session
|
|
118
|
+
this.cumulativeTokens = { input: 0, output: 0, total: 0 };
|
|
58
119
|
if (this.config.autoSave) {
|
|
59
120
|
await this.save(session);
|
|
60
121
|
}
|
|
@@ -81,8 +142,15 @@ export class SessionManager {
|
|
|
81
142
|
},
|
|
82
143
|
messages: [...parent.messages],
|
|
83
144
|
systemPrompt: parent.systemPrompt,
|
|
145
|
+
summaries: parent.summaries,
|
|
146
|
+
fullMessageCount: parent.fullMessageCount,
|
|
147
|
+
// Copy checkpoints from parent
|
|
148
|
+
checkpoints: parent.checkpoints ? [...parent.checkpoints] : undefined,
|
|
84
149
|
};
|
|
85
150
|
this.currentSession = forked;
|
|
151
|
+
// Inherit token usage from parent (already calculated by load())
|
|
152
|
+
// Token counts remain the same since we copy the messages and completions
|
|
153
|
+
this.calculateCumulativeTokens(forked);
|
|
86
154
|
if (this.config.autoSave) {
|
|
87
155
|
await this.save(forked);
|
|
88
156
|
}
|
|
@@ -95,6 +163,18 @@ export class SessionManager {
|
|
|
95
163
|
await this.init();
|
|
96
164
|
session.metadata.updatedAt = new Date().toISOString();
|
|
97
165
|
session.metadata.messageCount = session.messages.length;
|
|
166
|
+
// Save cumulative token usage to metadata
|
|
167
|
+
if (this.cumulativeTokens.total > 0) {
|
|
168
|
+
session.metadata.tokenUsage = {
|
|
169
|
+
input: this.cumulativeTokens.input,
|
|
170
|
+
output: this.cumulativeTokens.output,
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
// Save checkpoints from current session
|
|
174
|
+
const checkpointManager = getCheckpointManager();
|
|
175
|
+
if (checkpointManager && checkpointManager.getSessionId() === session.metadata.id) {
|
|
176
|
+
session.checkpoints = checkpointManager.serialize();
|
|
177
|
+
}
|
|
98
178
|
const filePath = this.getSessionPath(session.metadata.id);
|
|
99
179
|
await fs.writeFile(filePath, JSON.stringify(session, null, 2), 'utf-8');
|
|
100
180
|
}
|
|
@@ -107,6 +187,13 @@ export class SessionManager {
|
|
|
107
187
|
const content = await fs.readFile(filePath, 'utf-8');
|
|
108
188
|
const session = JSON.parse(content);
|
|
109
189
|
this.currentSession = session;
|
|
190
|
+
// Calculate cumulative tokens from session metadata
|
|
191
|
+
this.calculateCumulativeTokens(session);
|
|
192
|
+
// Restore checkpoints to CheckpointManager
|
|
193
|
+
if (session.checkpoints && session.checkpoints.length > 0) {
|
|
194
|
+
const checkpointManager = initCheckpointManager(id);
|
|
195
|
+
checkpointManager.deserialize(session.checkpoints);
|
|
196
|
+
}
|
|
110
197
|
return session;
|
|
111
198
|
}
|
|
112
199
|
catch {
|
|
@@ -236,11 +323,51 @@ export class SessionManager {
|
|
|
236
323
|
/**
|
|
237
324
|
* Add message to current session
|
|
238
325
|
*/
|
|
239
|
-
async addMessage(message) {
|
|
326
|
+
async addMessage(message, modelInfo) {
|
|
240
327
|
if (!this.currentSession) {
|
|
241
328
|
throw new Error('No active session');
|
|
242
329
|
}
|
|
243
330
|
this.currentSession.messages.push(message);
|
|
331
|
+
// Update full message count
|
|
332
|
+
if (!this.currentSession.fullMessageCount) {
|
|
333
|
+
this.currentSession.fullMessageCount = this.currentSession.messages.length;
|
|
334
|
+
}
|
|
335
|
+
else {
|
|
336
|
+
this.currentSession.fullMessageCount++;
|
|
337
|
+
}
|
|
338
|
+
// Update cumulative token usage from latest completion
|
|
339
|
+
this.updateTokenUsageFromLatestCompletion();
|
|
340
|
+
// Check if compression is needed
|
|
341
|
+
if (this.compressionEngine && modelInfo) {
|
|
342
|
+
// Pass actual token usage to compression engine
|
|
343
|
+
const tokenUsage = this.cumulativeTokens.total > 0
|
|
344
|
+
? { input: this.cumulativeTokens.input, output: this.cumulativeTokens.output }
|
|
345
|
+
: undefined;
|
|
346
|
+
const { needed, strategy, usagePercent, shouldWarn } = this.compressionEngine.needsCompression(this.currentSession.messages, modelInfo, tokenUsage);
|
|
347
|
+
// Emit warning event at 80% usage
|
|
348
|
+
if (shouldWarn && !needed && usagePercent) {
|
|
349
|
+
this.emit('context-warning', {
|
|
350
|
+
usagePercent,
|
|
351
|
+
totalTokens: this.cumulativeTokens.total,
|
|
352
|
+
maxTokens: modelInfo.contextWindow,
|
|
353
|
+
});
|
|
354
|
+
}
|
|
355
|
+
// Handle auto-compaction at 90%
|
|
356
|
+
if (needed) {
|
|
357
|
+
// Emit before auto-compact
|
|
358
|
+
if (usagePercent) {
|
|
359
|
+
this.emit('auto-compacting', { strategy, usagePercent });
|
|
360
|
+
}
|
|
361
|
+
if (strategy === 'prune') {
|
|
362
|
+
await this.pruneToolOutputs();
|
|
363
|
+
}
|
|
364
|
+
else if (strategy === 'compact') {
|
|
365
|
+
await this.performCompaction(modelInfo);
|
|
366
|
+
}
|
|
367
|
+
// Emit after compression complete
|
|
368
|
+
this.emit('compaction-complete', { strategy });
|
|
369
|
+
}
|
|
370
|
+
}
|
|
244
371
|
if (this.config.autoSave) {
|
|
245
372
|
await this.save(this.currentSession);
|
|
246
373
|
}
|
|
@@ -299,5 +426,130 @@ export class SessionManager {
|
|
|
299
426
|
await this.save(session);
|
|
300
427
|
return session;
|
|
301
428
|
}
|
|
429
|
+
// ===== Compression Methods =====
|
|
430
|
+
/**
|
|
431
|
+
* Layer 1: Prune tool outputs
|
|
432
|
+
*/
|
|
433
|
+
async pruneToolOutputs() {
|
|
434
|
+
if (!this.currentSession || !this.compressionEngine)
|
|
435
|
+
return;
|
|
436
|
+
const result = await this.compressionEngine.pruneToolOutputs(this.currentSession.messages);
|
|
437
|
+
if (result.pruned) {
|
|
438
|
+
// Optionally log the pruning event
|
|
439
|
+
// console.log(`Pruned ${result.prunedCount} tool outputs, saved ${result.savedTokens} tokens`);
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
/**
|
|
443
|
+
* Layer 2: Perform compaction (summarization)
|
|
444
|
+
* Public for manual compaction via /compact command
|
|
445
|
+
*/
|
|
446
|
+
async performCompaction(modelInfo) {
|
|
447
|
+
if (!this.currentSession || !this.compressionEngine)
|
|
448
|
+
return;
|
|
449
|
+
const session = this.currentSession;
|
|
450
|
+
// Determine range to summarize
|
|
451
|
+
const preserveRecent = 10; // Default, could be configurable
|
|
452
|
+
const summarizeEnd = session.messages.length - preserveRecent - 1;
|
|
453
|
+
// Find start point: after last summary or beginning
|
|
454
|
+
let summarizeStart = 0;
|
|
455
|
+
if (session.summaries && session.summaries.length > 0) {
|
|
456
|
+
const lastSummary = session.summaries[session.summaries.length - 1];
|
|
457
|
+
summarizeStart = lastSummary.coveringMessages[1] + 1;
|
|
458
|
+
}
|
|
459
|
+
else {
|
|
460
|
+
// Skip system prompt
|
|
461
|
+
const firstSystemIdx = session.messages.findIndex((m) => m.role === 'system');
|
|
462
|
+
if (firstSystemIdx >= 0) {
|
|
463
|
+
summarizeStart = firstSystemIdx + 1;
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
if (summarizeEnd <= summarizeStart)
|
|
467
|
+
return;
|
|
468
|
+
// Generate summary
|
|
469
|
+
const summary = await this.compressionEngine.compact(session.messages, [
|
|
470
|
+
summarizeStart,
|
|
471
|
+
summarizeEnd,
|
|
472
|
+
]);
|
|
473
|
+
// Store summary
|
|
474
|
+
session.summaries = session.summaries || [];
|
|
475
|
+
session.summaries.push(summary);
|
|
476
|
+
// Replace summarized messages
|
|
477
|
+
const preserved = [];
|
|
478
|
+
// Preserve system prompt
|
|
479
|
+
const systemMsg = session.messages.find((m) => m.role === 'system');
|
|
480
|
+
if (systemMsg) {
|
|
481
|
+
preserved.push(systemMsg);
|
|
482
|
+
}
|
|
483
|
+
// Add summary as system message
|
|
484
|
+
const summaryMessage = {
|
|
485
|
+
role: 'system',
|
|
486
|
+
content: this.formatSummaryAsContext(summary),
|
|
487
|
+
};
|
|
488
|
+
preserved.push(summaryMessage);
|
|
489
|
+
// Add recent messages
|
|
490
|
+
const recentMessages = session.messages.slice(summarizeEnd + 1);
|
|
491
|
+
session.messages = [...preserved, ...recentMessages];
|
|
492
|
+
}
|
|
493
|
+
/**
|
|
494
|
+
* Format summary as context message
|
|
495
|
+
*/
|
|
496
|
+
formatSummaryAsContext(summary) {
|
|
497
|
+
const lines = [];
|
|
498
|
+
lines.push(`[Earlier conversation - ${summary.coveringMessages[1] - summary.coveringMessages[0] + 1} messages summarized]`);
|
|
499
|
+
lines.push('');
|
|
500
|
+
lines.push(summary.content);
|
|
501
|
+
if (summary.filesModified.length > 0) {
|
|
502
|
+
lines.push('');
|
|
503
|
+
lines.push(`Files modified: ${summary.filesModified.join(', ')}`);
|
|
504
|
+
}
|
|
505
|
+
if (summary.keyDecisions.length > 0) {
|
|
506
|
+
lines.push('');
|
|
507
|
+
lines.push('Key decisions:');
|
|
508
|
+
summary.keyDecisions.forEach((d) => lines.push(`- ${d}`));
|
|
509
|
+
}
|
|
510
|
+
if (summary.toolsUsed.length > 0) {
|
|
511
|
+
lines.push('');
|
|
512
|
+
lines.push('Tools used:');
|
|
513
|
+
summary.toolsUsed.forEach((t) => {
|
|
514
|
+
lines.push(`- ${t.tool}: ${t.count} times`);
|
|
515
|
+
});
|
|
516
|
+
}
|
|
517
|
+
return lines.join('\n');
|
|
518
|
+
}
|
|
519
|
+
/**
|
|
520
|
+
* Get messages for LLM (includes compression context)
|
|
521
|
+
*/
|
|
522
|
+
getMessagesForLLM() {
|
|
523
|
+
if (!this.currentSession)
|
|
524
|
+
return [];
|
|
525
|
+
// If no summaries, return all messages
|
|
526
|
+
if (!this.currentSession.summaries || this.currentSession.summaries.length === 0) {
|
|
527
|
+
return this.currentSession.messages;
|
|
528
|
+
}
|
|
529
|
+
// Messages already include summary system message
|
|
530
|
+
return this.currentSession.messages;
|
|
531
|
+
}
|
|
532
|
+
/**
|
|
533
|
+
* Get compression statistics
|
|
534
|
+
*/
|
|
535
|
+
getCompressionStats() {
|
|
536
|
+
if (!this.currentSession)
|
|
537
|
+
return null;
|
|
538
|
+
const totalMessages = this.currentSession.fullMessageCount || this.currentSession.messages.length;
|
|
539
|
+
const activeMessages = this.currentSession.messages.length;
|
|
540
|
+
const summaryCount = this.currentSession.summaries?.length || 0;
|
|
541
|
+
return {
|
|
542
|
+
totalMessages,
|
|
543
|
+
activeMessages,
|
|
544
|
+
summaryCount,
|
|
545
|
+
compressionRatio: activeMessages / totalMessages,
|
|
546
|
+
};
|
|
547
|
+
}
|
|
548
|
+
/**
|
|
549
|
+
* Get cumulative token usage for current session
|
|
550
|
+
*/
|
|
551
|
+
getTokenUsage() {
|
|
552
|
+
return { ...this.cumulativeTokens };
|
|
553
|
+
}
|
|
302
554
|
}
|
|
303
555
|
//# sourceMappingURL=manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/session/manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/session/manager.ts"],"names":[],"mappings":"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"}
|
package/dist/session/types.d.ts
CHANGED
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
* Session Management Types
|
|
3
3
|
*/
|
|
4
4
|
import type { Message } from '../providers/types.js';
|
|
5
|
+
import type { CostEstimate } from '../pricing/types.js';
|
|
6
|
+
import type { ConversationSummary, CompressionConfig } from './compression/types.js';
|
|
7
|
+
import type { FileCheckpoint } from '../checkpointing/types.js';
|
|
5
8
|
export interface SessionMetadata {
|
|
6
9
|
id: string;
|
|
7
10
|
title: string;
|
|
@@ -16,11 +19,23 @@ export interface SessionMetadata {
|
|
|
16
19
|
output: number;
|
|
17
20
|
};
|
|
18
21
|
parentId?: string;
|
|
22
|
+
completions?: Array<{
|
|
23
|
+
afterMessageIndex: number;
|
|
24
|
+
durationMs: number;
|
|
25
|
+
usage?: {
|
|
26
|
+
inputTokens: number;
|
|
27
|
+
outputTokens: number;
|
|
28
|
+
};
|
|
29
|
+
cost?: CostEstimate;
|
|
30
|
+
}>;
|
|
19
31
|
}
|
|
20
32
|
export interface Session {
|
|
21
33
|
metadata: SessionMetadata;
|
|
22
34
|
messages: Message[];
|
|
23
35
|
systemPrompt?: string;
|
|
36
|
+
summaries?: ConversationSummary[];
|
|
37
|
+
fullMessageCount?: number;
|
|
38
|
+
checkpoints?: FileCheckpoint[];
|
|
24
39
|
}
|
|
25
40
|
export interface SessionListItem {
|
|
26
41
|
id: string;
|
|
@@ -34,6 +49,7 @@ export interface SessionConfig {
|
|
|
34
49
|
maxSessions: number;
|
|
35
50
|
maxAge: number;
|
|
36
51
|
autoSave: boolean;
|
|
52
|
+
compression?: Partial<CompressionConfig>;
|
|
37
53
|
}
|
|
38
54
|
export declare const DEFAULT_SESSION_CONFIG: SessionConfig;
|
|
39
55
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/session/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/session/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AACrF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE;QACX,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,WAAW,CAAC,EAAE,KAAK,CAAC;QAClB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC;QACtD,IAAI,CAAC,EAAE,YAAY,CAAC;KACrB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,OAAO;IACtB,QAAQ,EAAE,eAAe,CAAC;IAC1B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,SAAS,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAG1B,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAGlB,WAAW,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAC1C;AAED,eAAO,MAAM,sBAAsB,EAAE,aAKpC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/session/types.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/session/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AA8DH,MAAM,CAAC,MAAM,sBAAsB,GAAkB;IACnD,UAAU,EAAE,iBAAiB;IAC7B,WAAW,EAAE,EAAE;IACf,MAAM,EAAE,EAAE;IACV,QAAQ,EAAE,IAAI;CACf,CAAC"}
|
package/docs/README.md
CHANGED
|
@@ -5,6 +5,7 @@ This directory contains documentation for the GenCode project.
|
|
|
5
5
|
## Contents
|
|
6
6
|
|
|
7
7
|
- [**providers-and-models.md**](./providers-and-models.md) - Provider management and model selection
|
|
8
|
+
- [**session-compression.md**](./session-compression.md) - Session compression implementation guide
|
|
8
9
|
- [**proposals/**](./proposals/) - Enhancement proposals for new features
|
|
9
10
|
|
|
10
11
|
## About GenCode
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
%% Compression Decision Flow
|
|
2
|
+
%% needsCompression logic
|
|
3
|
+
|
|
4
|
+
flowchart TD
|
|
5
|
+
Start([Check if compression needed]) --> CheckEnabled{compression.enabled?}
|
|
6
|
+
CheckEnabled -->|No| NoCompression[Return: strategy = none]
|
|
7
|
+
CheckEnabled -->|Yes| CalcTokens[Calculate total tokens]
|
|
8
|
+
|
|
9
|
+
CalcTokens --> UseActual{Has actual TokenUsage?}
|
|
10
|
+
UseActual -->|Yes| SumActual[input + cache.read +<br/>output + reasoning]
|
|
11
|
+
UseActual -->|No| EstimateAll[Estimate all messages<br/>chars / 4]
|
|
12
|
+
|
|
13
|
+
SumActual --> GetUsable[Calculate usable context]
|
|
14
|
+
EstimateAll --> GetUsable
|
|
15
|
+
|
|
16
|
+
GetUsable --> CalcUsable[usable = contextWindow -<br/>min of outputLimit and 32k]
|
|
17
|
+
CalcUsable --> CheckOverflow{total > usable?}
|
|
18
|
+
|
|
19
|
+
CheckOverflow -->|No| NoCompression
|
|
20
|
+
CheckOverflow -->|Yes| CheckPruneMin{total > 20k AND<br/>enablePruning?}
|
|
21
|
+
|
|
22
|
+
CheckPruneMin -->|Yes| UsePrune[Return: strategy = prune]
|
|
23
|
+
CheckPruneMin -->|No| UseCompact[Return: strategy = compact]
|
|
24
|
+
|
|
25
|
+
style CheckEnabled fill:#e3f2fd
|
|
26
|
+
style CheckOverflow fill:#fff3e0
|
|
27
|
+
style CheckPruneMin fill:#fff3e0
|
|
28
|
+
style UsePrune fill:#ffd93d
|
|
29
|
+
style UseCompact fill:#74c0fc
|
|
30
|
+
style NoCompression fill:#f1f3f4
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
%% Session Compression - Complete Workflow
|
|
2
|
+
%% From user input to LLM response
|
|
3
|
+
|
|
4
|
+
flowchart TD
|
|
5
|
+
Start([User Input]) --> AddToAgent[Agent adds message]
|
|
6
|
+
AddToAgent --> CallSM[SessionManager.addMessage<br/>with modelInfo]
|
|
7
|
+
|
|
8
|
+
CallSM --> PushMsg[Push to messages array]
|
|
9
|
+
PushMsg --> UpdateCount[Update fullMessageCount]
|
|
10
|
+
UpdateCount --> CheckCompress{Needs compression?<br/>needsCompression}
|
|
11
|
+
|
|
12
|
+
CheckCompress -->|No| SaveSession[Save session]
|
|
13
|
+
CheckCompress -->|Yes| DetermineStrategy{Determine strategy}
|
|
14
|
+
|
|
15
|
+
DetermineStrategy -->|prune| Layer1[Layer 1: Pruning]
|
|
16
|
+
DetermineStrategy -->|compact| Layer2[Layer 2: Compaction]
|
|
17
|
+
|
|
18
|
+
%% Layer 1 detailed flow
|
|
19
|
+
Layer1 --> EstTokens1[Estimate total tokens]
|
|
20
|
+
EstTokens1 --> CollectRecent[Collect recent tool outputs<br/>within last 40k tokens<br/>backward iteration]
|
|
21
|
+
CollectRecent --> MarkProtected[Mark as protected indices]
|
|
22
|
+
MarkProtected --> ClearOld[Clear unprotected<br/>old tool results]
|
|
23
|
+
ClearOld --> MarkPruned[Mark: Old tool result cleared<br/>pruned: true<br/>prunedAt: timestamp]
|
|
24
|
+
MarkPruned --> SaveSession
|
|
25
|
+
|
|
26
|
+
%% Layer 2 detailed flow
|
|
27
|
+
Layer2 --> DetermineRange[Determine summary range<br/>start: after last summary<br/>end: length - 10]
|
|
28
|
+
DetermineRange --> ExtractInfo[Extract structured info in parallel]
|
|
29
|
+
|
|
30
|
+
ExtractInfo --> Files[Files modified<br/>Write/Edit tools]
|
|
31
|
+
ExtractInfo --> Tools[Tool usage stats<br/>count + top 3 uses]
|
|
32
|
+
ExtractInfo --> Decisions[Key decisions<br/>decided/chose/will use]
|
|
33
|
+
|
|
34
|
+
Files --> GenPrompt[Generate continuation prompt]
|
|
35
|
+
Tools --> GenPrompt
|
|
36
|
+
Decisions --> GenPrompt
|
|
37
|
+
|
|
38
|
+
GenPrompt --> LLMCall[Call LLM<br/>max_tokens: 1500<br/>generate continuation prompt]
|
|
39
|
+
LLMCall --> CreateSummary[Create ConversationSummary<br/>id, range, content, metadata]
|
|
40
|
+
CreateSummary --> StoreSummary[Store to session.summaries array]
|
|
41
|
+
StoreSummary --> ReplaceMessages[Replace messages array]
|
|
42
|
+
|
|
43
|
+
ReplaceMessages --> BuildNew[Build new messages array:<br/>System prompt<br/>Summary system message<br/>Last 10 messages]
|
|
44
|
+
BuildNew --> SaveSession
|
|
45
|
+
|
|
46
|
+
SaveSession --> GetContext[Get LLM context<br/>getMessagesForLLM]
|
|
47
|
+
GetContext --> AgentContinue[Agent continues<br/>call provider.complete]
|
|
48
|
+
AgentContinue --> LLMResponse[LLM returns response]
|
|
49
|
+
LLMResponse --> End([Done])
|
|
50
|
+
|
|
51
|
+
style Layer1 fill:#ffd93d,stroke:#333,stroke-width:2px
|
|
52
|
+
style Layer2 fill:#74c0fc,stroke:#333,stroke-width:2px
|
|
53
|
+
style LLMCall fill:#ff6b6b,stroke:#333,stroke-width:2px
|
|
54
|
+
style GetContext fill:#51cf66,stroke:#333,stroke-width:2px
|