@tom2012/cc-web 1.5.106 → 1.5.108
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 +1 -1
- package/backend/dist/adapters/codex-adapter.d.ts +12 -3
- package/backend/dist/adapters/codex-adapter.d.ts.map +1 -1
- package/backend/dist/adapters/codex-adapter.js +178 -4
- package/backend/dist/adapters/codex-adapter.js.map +1 -1
- package/backend/dist/adapters/types.d.ts +2 -0
- package/backend/dist/adapters/types.d.ts.map +1 -1
- package/backend/dist/index.d.ts.map +1 -1
- package/backend/dist/index.js +9 -3
- package/backend/dist/index.js.map +1 -1
- package/backend/dist/information/condenser.d.ts +12 -0
- package/backend/dist/information/condenser.d.ts.map +1 -0
- package/backend/dist/information/condenser.js +294 -0
- package/backend/dist/information/condenser.js.map +1 -0
- package/backend/dist/information/conversation-sync.d.ts +1 -1
- package/backend/dist/information/conversation-sync.d.ts.map +1 -1
- package/backend/dist/information/conversation-sync.js +58 -39
- package/backend/dist/information/conversation-sync.js.map +1 -1
- package/backend/dist/routes/information.d.ts.map +1 -1
- package/backend/dist/routes/information.js +54 -0
- package/backend/dist/routes/information.js.map +1 -1
- package/frontend/dist/assets/{GraphPreview-BgROXJ8h.js → GraphPreview-DMn-itAz.js} +1 -1
- package/frontend/dist/assets/OfficePreview-cFBu_ab2.js +2 -0
- package/frontend/dist/assets/{PlanPanel-BduqtBLn.js → PlanPanel-CvJjFfnb.js} +1 -1
- package/frontend/dist/assets/{ProjectPage-BsKOwFxX.js → ProjectPage-DkjkhA6K.js} +5 -5
- package/frontend/dist/assets/{SettingsPage-BWhh5oLz.js → SettingsPage-B2ZbX_Hj.js} +1 -1
- package/frontend/dist/assets/{ShareViewPage-B5L-E1tn.js → ShareViewPage-7DjtuJow.js} +1 -1
- package/frontend/dist/assets/{SkillHubPage-gEx-TFLy.js → SkillHubPage-DJUHuXua.js} +2 -2
- package/frontend/dist/assets/{bot-B3HIYq9p.js → bot-BalR6m1o.js} +1 -1
- package/frontend/dist/assets/{chevron-down-RBsFm8E1.js → chevron-down-C49GgGy0.js} +1 -1
- package/frontend/dist/assets/{index-Dgpar9Vb.js → index-Ba2U8d8x.js} +7 -7
- package/frontend/dist/assets/{index-DQ95Benr.css → index-CFC808BK.css} +1 -1
- package/frontend/dist/assets/{index-C9S9saXo.js → index-CFdjUPl3.js} +1 -1
- package/frontend/dist/assets/{jszip.min-D63o32PU.js → jszip.min-iQI1DSPg.js} +1 -1
- package/frontend/dist/assets/{matter-T5H8nfaE.js → matter-BU2MYzEH.js} +1 -1
- package/frontend/dist/assets/{maximize-2-batC-68y.js → maximize-2-BAn5mHjv.js} +1 -1
- package/frontend/dist/assets/{save-tIKZ83A9.js → save-BrvUw-CF.js} +1 -1
- package/frontend/dist/assets/search-CBL-52ce.js +13 -0
- package/frontend/dist/assets/{user-D-tYrYne.js → user-C9DTZF7-.js} +1 -1
- package/frontend/dist/index.html +2 -2
- package/package.json +1 -1
- package/frontend/dist/assets/OfficePreview-DIslkpxK.js +0 -2
- package/frontend/dist/assets/download-faDw-K19.js +0 -7
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// backend/src/information/condenser.ts
|
|
3
|
+
//
|
|
4
|
+
// Condense and reorganize conversations using Claude CLI (haiku).
|
|
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.condenseConversation = condenseConversation;
|
|
40
|
+
exports.reorganizeConversation = reorganizeConversation;
|
|
41
|
+
const fs = __importStar(require("fs"));
|
|
42
|
+
const path = __importStar(require("path"));
|
|
43
|
+
const child_process_1 = require("child_process");
|
|
44
|
+
const config_1 = require("../config");
|
|
45
|
+
const conversation_sync_1 = require("./conversation-sync");
|
|
46
|
+
function estimateTokens(text) {
|
|
47
|
+
return Math.ceil(text.length / 4);
|
|
48
|
+
}
|
|
49
|
+
/** Call Claude CLI in non-interactive mode with haiku. */
|
|
50
|
+
function callHaiku(prompt) {
|
|
51
|
+
return new Promise((resolve, reject) => {
|
|
52
|
+
(0, child_process_1.execFile)('claude', ['-p', prompt, '--model', 'haiku'], { timeout: 90000, maxBuffer: 4 * 1024 * 1024 }, (err, stdout) => {
|
|
53
|
+
if (err)
|
|
54
|
+
return reject(err);
|
|
55
|
+
resolve(stdout);
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
/** Parse v0.md into turn sections. */
|
|
60
|
+
function parseTurns(content) {
|
|
61
|
+
const sections = content.split(/(?=^## [UA]\d+)/m).filter(Boolean);
|
|
62
|
+
return sections.map(s => {
|
|
63
|
+
const match = s.match(/^(## [UA]\d+.*)\n/);
|
|
64
|
+
if (!match)
|
|
65
|
+
return { id: '', header: '', body: s };
|
|
66
|
+
return { id: match[1].replace(/^## /, '').split(/[\s\[]/)[0], header: match[1], body: s.slice(match[0].length).trim() };
|
|
67
|
+
}).filter(t => t.id);
|
|
68
|
+
}
|
|
69
|
+
/** Build condensed content from turns with [cN,P%] markers. */
|
|
70
|
+
function buildCondensedContent(originalTurns, condensedBodies, // turnId → condensed text (null = keep original)
|
|
71
|
+
prevMarkers, // turnId → existing marker chain from previous version
|
|
72
|
+
level) {
|
|
73
|
+
const lines = [];
|
|
74
|
+
for (const turn of originalTurns) {
|
|
75
|
+
const condensed = condensedBodies.get(turn.id);
|
|
76
|
+
const body = condensed ?? turn.body;
|
|
77
|
+
const origTokens = estimateTokens(turn.body);
|
|
78
|
+
const newTokens = estimateTokens(body);
|
|
79
|
+
let marker = '';
|
|
80
|
+
if (condensed !== null && condensed !== undefined) {
|
|
81
|
+
// This turn was condensed
|
|
82
|
+
const pct = origTokens > 0 ? Math.round(newTokens / origTokens * 100) : 100;
|
|
83
|
+
const prevChain = prevMarkers.get(turn.id) || '';
|
|
84
|
+
marker = prevChain ? ` [c${level},${pct}%;${prevChain}]` : ` [c${level},${pct}%]`;
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
// Keep existing marker from previous version
|
|
88
|
+
const existing = prevMarkers.get(turn.id);
|
|
89
|
+
if (existing)
|
|
90
|
+
marker = ` [${existing}]`;
|
|
91
|
+
}
|
|
92
|
+
lines.push(`## ${turn.id}${marker}`);
|
|
93
|
+
lines.push(body);
|
|
94
|
+
lines.push('');
|
|
95
|
+
}
|
|
96
|
+
return lines.join('\n');
|
|
97
|
+
}
|
|
98
|
+
/** Extract existing [cN,P%] marker chain from a header. */
|
|
99
|
+
function extractMarkerChain(header) {
|
|
100
|
+
const match = header.match(/\[(.+)\]\s*$/);
|
|
101
|
+
return match ? match[1] : '';
|
|
102
|
+
}
|
|
103
|
+
// ── Condense ──
|
|
104
|
+
async function condenseConversation(convDir) {
|
|
105
|
+
const meta = (0, conversation_sync_1.readMeta)(convDir);
|
|
106
|
+
if (!meta)
|
|
107
|
+
return null;
|
|
108
|
+
// Read the latest version as base
|
|
109
|
+
const latestEntry = meta.versions[meta.latest];
|
|
110
|
+
if (!latestEntry)
|
|
111
|
+
return null;
|
|
112
|
+
const baseContent = fs.readFileSync(path.join(convDir, latestEntry.file), 'utf-8');
|
|
113
|
+
// Read original for token comparison
|
|
114
|
+
const v0Content = fs.readFileSync(path.join(convDir, 'v0.md'), 'utf-8');
|
|
115
|
+
const originalTurns = parseTurns(v0Content);
|
|
116
|
+
const baseTurns = parseTurns(baseContent);
|
|
117
|
+
// Build prev markers map
|
|
118
|
+
const prevMarkers = new Map();
|
|
119
|
+
for (const t of baseTurns) {
|
|
120
|
+
const chain = extractMarkerChain(t.header);
|
|
121
|
+
if (chain)
|
|
122
|
+
prevMarkers.set(t.id, chain);
|
|
123
|
+
}
|
|
124
|
+
// Build prompt
|
|
125
|
+
const prompt = `你是一个对话缩减器。对以下对话的每一轮进行缩减。
|
|
126
|
+
|
|
127
|
+
判断标准:如果未来的 LLM 只看到缩减后的版本,行为是否会与看到原文时不同?
|
|
128
|
+
- 不同 → 保留原文
|
|
129
|
+
- 相同 → 大幅缩减
|
|
130
|
+
|
|
131
|
+
硬性规则:
|
|
132
|
+
1. 用户纠正/否定行为的发言 → 必须保留原文
|
|
133
|
+
2. 绝不改变语义方向(肯定↔否定)
|
|
134
|
+
3. 保留所有数字、标识符、文件路径
|
|
135
|
+
4. 构建/部署日志 → 一句话结果
|
|
136
|
+
5. 确认性回复 → 保留原文
|
|
137
|
+
|
|
138
|
+
对每轮输出 JSON 数组:
|
|
139
|
+
[{"turn":"U1","condensed":"缩减后的内容或null表示保留原文"},...]
|
|
140
|
+
|
|
141
|
+
对话:
|
|
142
|
+
${baseContent.slice(0, 80000)}`;
|
|
143
|
+
let result;
|
|
144
|
+
try {
|
|
145
|
+
result = await callHaiku(prompt);
|
|
146
|
+
}
|
|
147
|
+
catch (err) {
|
|
148
|
+
throw new Error('Claude CLI 调用失败: ' + (err instanceof Error ? err.message : String(err)));
|
|
149
|
+
}
|
|
150
|
+
// Parse JSON from response
|
|
151
|
+
let condensedArray;
|
|
152
|
+
try {
|
|
153
|
+
const jsonMatch = result.match(/\[[\s\S]*\]/);
|
|
154
|
+
if (!jsonMatch)
|
|
155
|
+
throw new Error('No JSON array in response');
|
|
156
|
+
condensedArray = JSON.parse(jsonMatch[0]);
|
|
157
|
+
}
|
|
158
|
+
catch {
|
|
159
|
+
throw new Error('无法解析 Haiku 返回的 JSON');
|
|
160
|
+
}
|
|
161
|
+
// Build condensed bodies map
|
|
162
|
+
const condensedBodies = new Map();
|
|
163
|
+
for (const item of condensedArray) {
|
|
164
|
+
condensedBodies.set(item.turn, item.condensed);
|
|
165
|
+
}
|
|
166
|
+
// Guard rail: protect uncondensable turns
|
|
167
|
+
for (const turn of originalTurns) {
|
|
168
|
+
if (turn.id.startsWith('U')) {
|
|
169
|
+
const body = turn.body.toLowerCase();
|
|
170
|
+
if (/不要|别|错了|改成|不是|必须|禁止/.test(body)) {
|
|
171
|
+
condensedBodies.set(turn.id, null); // Force keep original
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
// Determine next version number
|
|
176
|
+
const versionNumbers = Object.keys(meta.versions)
|
|
177
|
+
.map(v => parseInt(v.replace('v', '')))
|
|
178
|
+
.filter(n => !isNaN(n));
|
|
179
|
+
const nextNum = Math.max(...versionNumbers) + 1;
|
|
180
|
+
const nextVersion = `v${nextNum}`;
|
|
181
|
+
// Build condensed content
|
|
182
|
+
const condensedContent = buildCondensedContent(originalTurns, condensedBodies, prevMarkers, nextNum);
|
|
183
|
+
const afterTokens = estimateTokens(condensedContent);
|
|
184
|
+
const beforeTokens = latestEntry.tokens;
|
|
185
|
+
// Write file
|
|
186
|
+
const fileName = `${nextVersion}.md`;
|
|
187
|
+
(0, config_1.atomicWriteSync)(path.join(convDir, fileName), condensedContent);
|
|
188
|
+
// Update meta
|
|
189
|
+
meta.versions[nextVersion] = {
|
|
190
|
+
file: fileName,
|
|
191
|
+
tokens: afterTokens,
|
|
192
|
+
created_at: new Date().toISOString(),
|
|
193
|
+
action: 'condense',
|
|
194
|
+
base: meta.latest,
|
|
195
|
+
};
|
|
196
|
+
meta.latest = nextVersion;
|
|
197
|
+
(0, conversation_sync_1.writeMeta)(convDir, meta);
|
|
198
|
+
return { version: nextVersion, before_tokens: beforeTokens, after_tokens: afterTokens };
|
|
199
|
+
}
|
|
200
|
+
// ── Reorganize ──
|
|
201
|
+
async function reorganizeConversation(convDir) {
|
|
202
|
+
const meta = (0, conversation_sync_1.readMeta)(convDir);
|
|
203
|
+
if (!meta)
|
|
204
|
+
return null;
|
|
205
|
+
if (meta.reorganize_count >= 2)
|
|
206
|
+
return null; // Max 2 reorganizations
|
|
207
|
+
// Classify turns by expand stats
|
|
208
|
+
const byTurn = meta.expand_stats.by_turn;
|
|
209
|
+
const highAttention = [];
|
|
210
|
+
const lowAttention = [];
|
|
211
|
+
const neverAccessed = [];
|
|
212
|
+
const v0Content = fs.readFileSync(path.join(convDir, 'v0.md'), 'utf-8');
|
|
213
|
+
const originalTurns = parseTurns(v0Content);
|
|
214
|
+
for (const turn of originalTurns) {
|
|
215
|
+
const count = byTurn[turn.id] || 0;
|
|
216
|
+
if (count >= 3)
|
|
217
|
+
highAttention.push(turn.id);
|
|
218
|
+
else if (count >= 1)
|
|
219
|
+
lowAttention.push(turn.id);
|
|
220
|
+
else
|
|
221
|
+
neverAccessed.push(turn.id);
|
|
222
|
+
}
|
|
223
|
+
if (highAttention.length === 0)
|
|
224
|
+
return null; // Nothing to reorganize
|
|
225
|
+
const prompt = `你是一个对话重整器。以下对话被缩减后,用户反复需要展开某些轮次。
|
|
226
|
+
请从原始对话重新生成缩减版,调整策略:
|
|
227
|
+
|
|
228
|
+
高关注轮次(保留更多细节):${highAttention.join(', ')}
|
|
229
|
+
低关注轮次(大幅缩减):${lowAttention.join(', ')}
|
|
230
|
+
从未访问的轮次(高度缩减为一句话):${neverAccessed.join(', ')}
|
|
231
|
+
|
|
232
|
+
硬性规则:
|
|
233
|
+
1. 用户纠正/否定行为的发言 → 必须保留原文
|
|
234
|
+
2. 绝不改变语义方向
|
|
235
|
+
3. 保留所有数字、标识符、文件路径
|
|
236
|
+
|
|
237
|
+
对每轮输出 JSON 数组:
|
|
238
|
+
[{"turn":"U1","condensed":"缩减后的内容或null表示保留原文"},...]
|
|
239
|
+
|
|
240
|
+
原始对话:
|
|
241
|
+
${v0Content.slice(0, 80000)}`;
|
|
242
|
+
let result;
|
|
243
|
+
try {
|
|
244
|
+
result = await callHaiku(prompt);
|
|
245
|
+
}
|
|
246
|
+
catch (err) {
|
|
247
|
+
throw new Error('Claude CLI 调用失败: ' + (err instanceof Error ? err.message : String(err)));
|
|
248
|
+
}
|
|
249
|
+
let condensedArray;
|
|
250
|
+
try {
|
|
251
|
+
const jsonMatch = result.match(/\[[\s\S]*\]/);
|
|
252
|
+
if (!jsonMatch)
|
|
253
|
+
throw new Error('No JSON array');
|
|
254
|
+
condensedArray = JSON.parse(jsonMatch[0]);
|
|
255
|
+
}
|
|
256
|
+
catch {
|
|
257
|
+
throw new Error('无法解析 Haiku 返回的 JSON');
|
|
258
|
+
}
|
|
259
|
+
const condensedBodies = new Map();
|
|
260
|
+
for (const item of condensedArray) {
|
|
261
|
+
condensedBodies.set(item.turn, item.condensed);
|
|
262
|
+
}
|
|
263
|
+
// Guard rail
|
|
264
|
+
for (const turn of originalTurns) {
|
|
265
|
+
if (turn.id.startsWith('U') && /不要|别|错了|改成|不是|必须|禁止/.test(turn.body.toLowerCase())) {
|
|
266
|
+
condensedBodies.set(turn.id, null);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
const versionNumbers = Object.keys(meta.versions)
|
|
270
|
+
.map(v => parseInt(v.replace('v', '')))
|
|
271
|
+
.filter(n => !isNaN(n));
|
|
272
|
+
const nextNum = Math.max(...versionNumbers) + 1;
|
|
273
|
+
const nextVersion = `v${nextNum}`;
|
|
274
|
+
const condensedContent = buildCondensedContent(originalTurns, condensedBodies, new Map(), nextNum);
|
|
275
|
+
const afterTokens = estimateTokens(condensedContent);
|
|
276
|
+
const latestEntry = meta.versions[meta.latest];
|
|
277
|
+
const beforeTokens = latestEntry?.tokens ?? meta.original_tokens;
|
|
278
|
+
const fileName = `${nextVersion}.md`;
|
|
279
|
+
(0, config_1.atomicWriteSync)(path.join(convDir, fileName), condensedContent);
|
|
280
|
+
meta.versions[nextVersion] = {
|
|
281
|
+
file: fileName,
|
|
282
|
+
tokens: afterTokens,
|
|
283
|
+
created_at: new Date().toISOString(),
|
|
284
|
+
action: 'reorganize',
|
|
285
|
+
base: 'v0',
|
|
286
|
+
high_attention_turns: highAttention,
|
|
287
|
+
};
|
|
288
|
+
meta.latest = nextVersion;
|
|
289
|
+
meta.reorganize_count += 1;
|
|
290
|
+
meta.last_reorganize_at = new Date().toISOString();
|
|
291
|
+
(0, conversation_sync_1.writeMeta)(convDir, meta);
|
|
292
|
+
return { version: nextVersion, before_tokens: beforeTokens, after_tokens: afterTokens, high_attention_turns: highAttention };
|
|
293
|
+
}
|
|
294
|
+
//# sourceMappingURL=condenser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"condenser.js","sourceRoot":"","sources":["../../src/information/condenser.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@ export declare function listConversationIds(projectFolder: string): string[];
|
|
|
12
12
|
*/
|
|
13
13
|
export declare function syncFromJsonl(projectFolder: string, jsonlPath: string, chatBlocks: ChatBlock[]): string | null;
|
|
14
14
|
/**
|
|
15
|
-
* Scan JSONL
|
|
15
|
+
* Scan JSONL files and sync any not yet in .ccweb/information/.
|
|
16
16
|
*/
|
|
17
17
|
export declare function compensationSync(projectFolder: string, cliTool: string, parseLineBlocksFn: (line: string) => ChatBlock | null): {
|
|
18
18
|
synced: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-sync.d.ts","sourceRoot":"","sources":["../../src/information/conversation-sync.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,SAAS,EAAiB,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAQ3C,wBAAgB,OAAO,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAErD;AAMD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAQjE;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAEvE;AAED,uEAAuE;AACvE,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE,CAWnE;AAuED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,SAAS,EAAE,GACtB,MAAM,GAAG,IAAI,CAgDf;
|
|
1
|
+
{"version":3,"file":"conversation-sync.d.ts","sourceRoot":"","sources":["../../src/information/conversation-sync.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,SAAS,EAAiB,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAQ3C,wBAAgB,OAAO,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAErD;AAMD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAQjE;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAEvE;AAED,uEAAuE;AACvE,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE,CAWnE;AAuED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,SAAS,EAAE,GACtB,MAAM,GAAG,IAAI,CAgDf;AA6BD;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACf,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,SAAS,GAAG,IAAI,GACpD;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA+CrD"}
|
|
@@ -212,62 +212,81 @@ function syncFromJsonl(projectFolder, jsonlPath, chatBlocks) {
|
|
|
212
212
|
return convId;
|
|
213
213
|
}
|
|
214
214
|
/**
|
|
215
|
-
*
|
|
215
|
+
* Collect all JSONL files for a project.
|
|
216
|
+
* Claude: flat directory per project.
|
|
217
|
+
* Codex: nested date dirs, filter by cwd in session_meta.
|
|
216
218
|
*/
|
|
217
|
-
function
|
|
219
|
+
function collectJsonlFiles(projectFolder, cliTool) {
|
|
218
220
|
const { getAdapter } = require('../adapters');
|
|
219
221
|
const adapter = getAdapter(cliTool);
|
|
222
|
+
// Codex has getSessionFilesForProject that filters by cwd
|
|
223
|
+
if (typeof adapter.getSessionFilesForProject === 'function') {
|
|
224
|
+
return adapter.getSessionFilesForProject(projectFolder);
|
|
225
|
+
}
|
|
226
|
+
// Claude: flat directory with all JSONLs belonging to this project
|
|
220
227
|
const sessionDir = adapter.getSessionDir(projectFolder);
|
|
221
228
|
if (!sessionDir || !fs.existsSync(sessionDir))
|
|
229
|
+
return [];
|
|
230
|
+
try {
|
|
231
|
+
return fs.readdirSync(sessionDir)
|
|
232
|
+
.filter(f => f.endsWith('.jsonl'))
|
|
233
|
+
.map(f => path.join(sessionDir, f));
|
|
234
|
+
}
|
|
235
|
+
catch {
|
|
236
|
+
return [];
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Scan JSONL files and sync any not yet in .ccweb/information/.
|
|
241
|
+
*/
|
|
242
|
+
function compensationSync(projectFolder, cliTool, parseLineBlocksFn) {
|
|
243
|
+
const jsonlFiles = collectJsonlFiles(projectFolder, cliTool);
|
|
244
|
+
if (jsonlFiles.length === 0)
|
|
222
245
|
return { synced: 0, updated: 0, errors: 0 };
|
|
223
246
|
const dir = infoDir(projectFolder);
|
|
224
247
|
const existingIds = new Set(listConversationIds(projectFolder));
|
|
225
248
|
let synced = 0;
|
|
226
249
|
let updated = 0;
|
|
227
250
|
let errors = 0;
|
|
228
|
-
|
|
229
|
-
const
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
const isNew = !existingIds.has(convId);
|
|
236
|
-
if (!isNew) {
|
|
237
|
-
try {
|
|
238
|
-
const jsonlMtime = fs.statSync(filePath).mtimeMs;
|
|
239
|
-
const v0Path = path.join(convDir, 'v0.md');
|
|
240
|
-
if (fs.existsSync(v0Path)) {
|
|
241
|
-
const v0Mtime = fs.statSync(v0Path).mtimeMs;
|
|
242
|
-
if (jsonlMtime <= v0Mtime)
|
|
243
|
-
continue; // Already up to date
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
catch { /* sync anyway */ }
|
|
247
|
-
}
|
|
251
|
+
for (const filePath of jsonlFiles) {
|
|
252
|
+
const fileName = path.basename(filePath);
|
|
253
|
+
const convId = fileName.replace('.jsonl', '');
|
|
254
|
+
// Check if needs sync: new or JSONL is newer than v0.md
|
|
255
|
+
const convDir = path.join(dir, convId);
|
|
256
|
+
const isNew = !existingIds.has(convId);
|
|
257
|
+
if (!isNew) {
|
|
248
258
|
try {
|
|
249
|
-
const
|
|
250
|
-
const
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
blocks.push(block);
|
|
256
|
-
}
|
|
257
|
-
const result = syncFromJsonl(projectFolder, filePath, blocks);
|
|
258
|
-
if (result) {
|
|
259
|
-
if (isNew)
|
|
260
|
-
synced++;
|
|
261
|
-
else
|
|
262
|
-
updated++;
|
|
259
|
+
const jsonlMtime = fs.statSync(filePath).mtimeMs;
|
|
260
|
+
const v0Path = path.join(convDir, 'v0.md');
|
|
261
|
+
if (fs.existsSync(v0Path)) {
|
|
262
|
+
const v0Mtime = fs.statSync(v0Path).mtimeMs;
|
|
263
|
+
if (jsonlMtime <= v0Mtime)
|
|
264
|
+
continue;
|
|
263
265
|
}
|
|
264
266
|
}
|
|
265
|
-
catch {
|
|
266
|
-
|
|
267
|
+
catch { /* sync anyway */ }
|
|
268
|
+
}
|
|
269
|
+
try {
|
|
270
|
+
const content = fs.readFileSync(filePath, 'utf-8');
|
|
271
|
+
const lines = content.split('\n').filter(l => l.trim());
|
|
272
|
+
const blocks = [];
|
|
273
|
+
for (const line of lines) {
|
|
274
|
+
const block = parseLineBlocksFn(line);
|
|
275
|
+
if (block)
|
|
276
|
+
blocks.push(block);
|
|
267
277
|
}
|
|
278
|
+
const result = syncFromJsonl(projectFolder, filePath, blocks);
|
|
279
|
+
if (result) {
|
|
280
|
+
if (isNew)
|
|
281
|
+
synced++;
|
|
282
|
+
else
|
|
283
|
+
updated++;
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
catch {
|
|
287
|
+
errors++;
|
|
268
288
|
}
|
|
269
289
|
}
|
|
270
|
-
catch { /* dir not readable */ }
|
|
271
290
|
return { synced, updated, errors };
|
|
272
291
|
}
|
|
273
292
|
//# sourceMappingURL=conversation-sync.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-sync.js","sourceRoot":"","sources":["../../src/information/conversation-sync.ts"],"names":[],"mappings":";AAAA,+CAA+C;AAC/C,EAAE;AACF,+CAA+C;AAC/C,wCAAwC;AACxC,+EAA+E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAc/E,0BAEC;AAMD,4BAQC;AAED,8BAEC;AAGD,kDAWC;AA4ED,sCAoDC;
|
|
1
|
+
{"version":3,"file":"conversation-sync.js","sourceRoot":"","sources":["../../src/information/conversation-sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"information.d.ts","sourceRoot":"","sources":["../../src/routes/information.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"information.d.ts","sourceRoot":"","sources":["../../src/routes/information.ts"],"names":[],"mappings":"AAYA,QAAA,MAAM,MAAM,4CAAW,CAAC;AA2NxB,eAAe,MAAM,CAAC"}
|
|
@@ -39,6 +39,7 @@ const fs = __importStar(require("fs"));
|
|
|
39
39
|
const path = __importStar(require("path"));
|
|
40
40
|
const config_1 = require("../config");
|
|
41
41
|
const conversation_sync_1 = require("../information/conversation-sync");
|
|
42
|
+
const condenser_1 = require("../information/condenser");
|
|
42
43
|
const adapters_1 = require("../adapters");
|
|
43
44
|
const router = (0, express_1.Router)();
|
|
44
45
|
const MAX_RECENT_EXPANDS = 50;
|
|
@@ -175,6 +176,59 @@ router.delete('/:projectId/conversations/:convId', (req, res) => {
|
|
|
175
176
|
}
|
|
176
177
|
res.json({ deleted: true });
|
|
177
178
|
});
|
|
179
|
+
// ── POST /api/information/:projectId/conversations/:convId/condense ──
|
|
180
|
+
router.post('/:projectId/conversations/:convId/condense', async (req, res) => {
|
|
181
|
+
const folder = resolveProjectFolder(req.params.projectId, req.user?.username || '', res);
|
|
182
|
+
if (!folder)
|
|
183
|
+
return;
|
|
184
|
+
const convDir = path.join((0, conversation_sync_1.infoDir)(folder), req.params.convId);
|
|
185
|
+
if (!(0, conversation_sync_1.readMeta)(convDir)) {
|
|
186
|
+
res.status(404).json({ error: 'Conversation not found' });
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
try {
|
|
190
|
+
const result = await (0, condenser_1.condenseConversation)(convDir);
|
|
191
|
+
if (!result) {
|
|
192
|
+
res.status(400).json({ error: 'Cannot condense further' });
|
|
193
|
+
return;
|
|
194
|
+
}
|
|
195
|
+
res.json(result);
|
|
196
|
+
}
|
|
197
|
+
catch (err) {
|
|
198
|
+
res.status(500).json({ error: err.message || 'Condense failed' });
|
|
199
|
+
}
|
|
200
|
+
});
|
|
201
|
+
// ── POST /api/information/:projectId/conversations/:convId/reorganize ──
|
|
202
|
+
router.post('/:projectId/conversations/:convId/reorganize', async (req, res) => {
|
|
203
|
+
const folder = resolveProjectFolder(req.params.projectId, req.user?.username || '', res);
|
|
204
|
+
if (!folder)
|
|
205
|
+
return;
|
|
206
|
+
const convDir = path.join((0, conversation_sync_1.infoDir)(folder), req.params.convId);
|
|
207
|
+
const meta = (0, conversation_sync_1.readMeta)(convDir);
|
|
208
|
+
if (!meta) {
|
|
209
|
+
res.status(404).json({ error: 'Conversation not found' });
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
if (meta.expand_stats.total_llm === 0) {
|
|
213
|
+
res.status(400).json({ error: 'No expand records to drive reorganization' });
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
if (meta.reorganize_count >= 2) {
|
|
217
|
+
res.status(400).json({ error: 'Max reorganization limit (2) reached' });
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
try {
|
|
221
|
+
const result = await (0, condenser_1.reorganizeConversation)(convDir);
|
|
222
|
+
if (!result) {
|
|
223
|
+
res.status(400).json({ error: 'Cannot reorganize' });
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
226
|
+
res.json(result);
|
|
227
|
+
}
|
|
228
|
+
catch (err) {
|
|
229
|
+
res.status(500).json({ error: err.message || 'Reorganize failed' });
|
|
230
|
+
}
|
|
231
|
+
});
|
|
178
232
|
// ── POST /api/information/:projectId/sync ──
|
|
179
233
|
router.post('/:projectId/sync', (req, res) => {
|
|
180
234
|
const folder = resolveProjectFolder(req.params.projectId, req.user?.username || '', res);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"information.js","sourceRoot":"","sources":["../../src/routes/information.ts"],"names":[],"mappings":";AAAA,oCAAoC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEpC,qCAA2C;AAC3C,uCAAyB;AACzB,2CAA6B;AAE7B,sCAAoE;AACpE,wEAAuH;
|
|
1
|
+
{"version":3,"file":"information.js","sourceRoot":"","sources":["../../src/routes/information.ts"],"names":[],"mappings":"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"}
|