@tom2012/cc-web 1.5.93 → 1.5.94
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/memory-pool/global-pool-manager.d.ts +2 -11
- package/backend/dist/memory-pool/global-pool-manager.d.ts.map +1 -1
- package/backend/dist/memory-pool/global-pool-manager.js +126 -232
- package/backend/dist/memory-pool/global-pool-manager.js.map +1 -1
- package/backend/dist/memory-pool/pool-lock.d.ts +2 -0
- package/backend/dist/memory-pool/pool-lock.d.ts.map +1 -0
- package/backend/dist/memory-pool/pool-lock.js +31 -0
- package/backend/dist/memory-pool/pool-lock.js.map +1 -0
- package/backend/dist/memory-pool/pool-manager.d.ts +34 -0
- package/backend/dist/memory-pool/pool-manager.d.ts.map +1 -1
- package/backend/dist/memory-pool/pool-manager.js +91 -0
- package/backend/dist/memory-pool/pool-manager.js.map +1 -1
- package/backend/dist/memory-pool/templates.d.ts.map +1 -1
- package/backend/dist/memory-pool/templates.js +97 -131
- package/backend/dist/memory-pool/templates.js.map +1 -1
- package/backend/dist/memory-pool/types.d.ts +4 -8
- package/backend/dist/memory-pool/types.d.ts.map +1 -1
- package/backend/dist/routes/hooks.d.ts.map +1 -1
- package/backend/dist/routes/hooks.js +14 -0
- package/backend/dist/routes/hooks.js.map +1 -1
- package/backend/dist/routes/memory-pool.d.ts.map +1 -1
- package/backend/dist/routes/memory-pool.js +505 -95
- package/backend/dist/routes/memory-pool.js.map +1 -1
- package/frontend/dist/assets/{GraphPreview-CSZTNhQX.js → GraphPreview-BFYA_WA5.js} +1 -1
- package/frontend/dist/assets/{OfficePreview-DZmKFnER.js → OfficePreview-DN-it4Af.js} +2 -2
- package/frontend/dist/assets/{PlanPanel-DuAa0AZZ.js → PlanPanel-DYupjf3X.js} +1 -1
- package/frontend/dist/assets/{ProjectPage-BxuE0x69.js → ProjectPage-B6tVjIYr.js} +5 -5
- package/frontend/dist/assets/{SettingsPage-DSnQze4Z.js → SettingsPage-CQL_FfkR.js} +1 -1
- package/frontend/dist/assets/{ShareViewPage-Dmur70tT.js → ShareViewPage-C_x31zAw.js} +1 -1
- package/frontend/dist/assets/{SkillHubPage-DnGb0OHx.js → SkillHubPage-Cgoxl30L.js} +2 -2
- package/frontend/dist/assets/{bot-DKy4a5yK.js → bot-Dst2XqWX.js} +1 -1
- package/frontend/dist/assets/{chevron-down-B-GU2wv8.js → chevron-down-DsAldQb3.js} +1 -1
- package/frontend/dist/assets/{download-CsOUNuPy.js → download-YA6lXM4C.js} +1 -1
- package/frontend/dist/assets/index-BDYnq-Fr.css +1 -0
- package/frontend/dist/assets/{index-C202jcvT.js → index-CY9Au1bg.js} +4 -4
- package/frontend/dist/assets/{index-I4_xf4g_.js → index-_m8u9esJ.js} +1 -1
- package/frontend/dist/assets/{jszip.min-Dc0FmeMP.js → jszip.min-BC9RCrTS.js} +1 -1
- package/frontend/dist/assets/{matter-Da3rDMpe.js → matter-Mm9BJmx6.js} +1 -1
- package/frontend/dist/assets/{maximize-2-BEyzEiyH.js → maximize-2-CuzznumM.js} +1 -1
- package/frontend/dist/assets/{save-BYSx9fYK.js → save-Q2W6S7fk.js} +1 -1
- package/frontend/dist/assets/{user-D3KuBJwv.js → user-BM9GY1Xb.js} +1 -1
- package/frontend/dist/index.html +2 -2
- package/package.json +1 -1
- package/frontend/dist/assets/index-BiVVvGoh.css +0 -1
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
A self-hosted web application (distributed as npm package) that provides a browser-based interface for [Claude Code](https://docs.anthropic.com/en/docs/claude-code) CLI sessions. Create projects, each with a persistent terminal running Claude Code, and interact with them through a real-time terminal UI.
|
|
4
4
|
|
|
5
|
-
**Current version**: v1.5.
|
|
5
|
+
**Current version**: v1.5.94 | [GitHub](https://github.com/zbc0315/cc-web) | MIT License
|
|
6
6
|
|
|
7
7
|
## Features
|
|
8
8
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PoolJson, SourcesJson, SyncResult
|
|
1
|
+
import { PoolJson, SourcesJson, SyncResult } from './types';
|
|
2
2
|
export declare function getGlobalPoolDir(): string;
|
|
3
3
|
export declare function readSources(): SourcesJson;
|
|
4
4
|
export declare function writeSources(data: SourcesJson): void;
|
|
@@ -8,14 +8,5 @@ export declare function readGlobalPool(): PoolJson | null;
|
|
|
8
8
|
export declare function computeGlobalT(initializedAt: string): number;
|
|
9
9
|
export declare function registerProject(projectId: string, projectName: string, poolPath: string): void;
|
|
10
10
|
export declare function removeSource(projectId: string): boolean;
|
|
11
|
-
export declare function syncToGlobal(): SyncResult
|
|
12
|
-
export declare function getImportPreview(projectPoolDir: string): ImportPreviewBall[];
|
|
13
|
-
export declare function importFromGlobal(projectPoolDir: string, selectedGlobalIds: string[]): {
|
|
14
|
-
imported: number;
|
|
15
|
-
balls: Array<{
|
|
16
|
-
local_id: string;
|
|
17
|
-
global_id: string;
|
|
18
|
-
summary: string;
|
|
19
|
-
}>;
|
|
20
|
-
};
|
|
11
|
+
export declare function syncToGlobal(): Promise<SyncResult>;
|
|
21
12
|
//# sourceMappingURL=global-pool-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-pool-manager.d.ts","sourceRoot":"","sources":["../../src/memory-pool/global-pool-manager.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAe,UAAU,EAAgB,
|
|
1
|
+
{"version":3,"file":"global-pool-manager.d.ts","sourceRoot":"","sources":["../../src/memory-pool/global-pool-manager.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAe,UAAU,EAAgB,MAAM,SAAS,CAAC;AAWvF,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAQD,wBAAgB,WAAW,IAAI,WAAW,CAQzC;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAEpD;AAID,wBAAgB,uBAAuB,IAAI,OAAO,CAEjD;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAoBvC;AAED,wBAAgB,cAAc,IAAI,QAAQ,GAAG,IAAI,CAEhD;AAID,wBAAgB,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAI5D;AAID,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAsB9F;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAOvD;AAID,wBAAsB,YAAY,IAAI,OAAO,CAAC,UAAU,CAAC,CA8JxD"}
|
|
@@ -44,13 +44,12 @@ exports.computeGlobalT = computeGlobalT;
|
|
|
44
44
|
exports.registerProject = registerProject;
|
|
45
45
|
exports.removeSource = removeSource;
|
|
46
46
|
exports.syncToGlobal = syncToGlobal;
|
|
47
|
-
exports.getImportPreview = getImportPreview;
|
|
48
|
-
exports.importFromGlobal = importFromGlobal;
|
|
49
47
|
const fs = __importStar(require("fs"));
|
|
50
48
|
const path = __importStar(require("path"));
|
|
51
49
|
const os = __importStar(require("os"));
|
|
52
50
|
const config_1 = require("../config");
|
|
53
51
|
const pool_manager_1 = require("./pool-manager");
|
|
52
|
+
const pool_lock_1 = require("./pool-lock");
|
|
54
53
|
const buoyancy_1 = require("./buoyancy");
|
|
55
54
|
const GLOBAL_POOL_DIR = path.join(os.homedir(), '.ccweb', 'memory-pool');
|
|
56
55
|
const SOURCES_FILE = 'sources.json';
|
|
@@ -92,6 +91,7 @@ function ensureGlobalPool() {
|
|
|
92
91
|
lambda: 0.99,
|
|
93
92
|
alpha: 1.0,
|
|
94
93
|
active_capacity: 40,
|
|
94
|
+
surface_width: 10000,
|
|
95
95
|
next_id: 1,
|
|
96
96
|
pool: 'global',
|
|
97
97
|
initialized_at: now,
|
|
@@ -144,253 +144,147 @@ function removeSource(projectId) {
|
|
|
144
144
|
return true;
|
|
145
145
|
}
|
|
146
146
|
// ── Sync (global operation) ──
|
|
147
|
-
function syncToGlobal() {
|
|
147
|
+
async function syncToGlobal() {
|
|
148
148
|
if (syncInProgress) {
|
|
149
149
|
throw new Error('SYNC_IN_PROGRESS');
|
|
150
150
|
}
|
|
151
151
|
syncInProgress = true;
|
|
152
152
|
try {
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
153
|
+
return await (0, pool_lock_1.withPoolLock)(GLOBAL_POOL_DIR, () => {
|
|
154
|
+
ensureGlobalPool();
|
|
155
|
+
const globalPool = readGlobalPool();
|
|
156
|
+
const sources = readSources();
|
|
157
|
+
const globalT = computeGlobalT(globalPool.initialized_at);
|
|
158
|
+
globalPool.t = globalT;
|
|
159
|
+
const result = {
|
|
160
|
+
added: 0,
|
|
161
|
+
updated: 0,
|
|
162
|
+
skipped: 0,
|
|
163
|
+
orphaned: 0,
|
|
164
|
+
unreachable_projects: [],
|
|
165
|
+
synced_projects: [],
|
|
166
|
+
};
|
|
167
|
+
// Build origin lookup: "projectId:ballId" → global ball index
|
|
168
|
+
const originMap = new Map();
|
|
169
|
+
globalPool.balls.forEach((gb, idx) => {
|
|
170
|
+
if (gb.origins) {
|
|
171
|
+
for (const o of gb.origins) {
|
|
172
|
+
originMap.set(`${o.source_project}:${o.source_ball_id}`, idx);
|
|
173
|
+
}
|
|
172
174
|
}
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
175
|
+
});
|
|
176
|
+
// Track which origins are still alive (from synced projects only)
|
|
177
|
+
const aliveOrigins = new Set();
|
|
178
|
+
// Track projects that were actually synced (for orphan detection scoping)
|
|
179
|
+
const syncedProjectIds = new Set();
|
|
180
|
+
// Step 1 & 2: Collect and merge
|
|
181
|
+
for (const source of sources.sources) {
|
|
182
|
+
if (source.status === 'unreachable')
|
|
183
|
+
continue;
|
|
184
|
+
const projectPool = (0, pool_manager_1.readPool)(source.pool_path);
|
|
185
|
+
if (!projectPool) {
|
|
186
|
+
source.unreachable_count = (source.unreachable_count ?? 0) + 1;
|
|
187
|
+
if (source.unreachable_count >= 3) {
|
|
188
|
+
source.status = 'unreachable';
|
|
189
|
+
}
|
|
190
|
+
result.unreachable_projects.push(source.project_name);
|
|
191
|
+
continue;
|
|
188
192
|
}
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
193
|
+
// Reset unreachable count on success
|
|
194
|
+
source.unreachable_count = 0;
|
|
195
|
+
source.last_synced_at = new Date().toISOString();
|
|
196
|
+
result.synced_projects.push(source.project_name);
|
|
197
|
+
syncedProjectIds.add(source.project_id);
|
|
198
|
+
for (const ball of projectPool.balls) {
|
|
199
|
+
const originKey = `${source.project_id}:${ball.id}`;
|
|
200
|
+
aliveOrigins.add(originKey);
|
|
201
|
+
const existingIdx = originMap.get(originKey);
|
|
202
|
+
if (existingIdx !== undefined) {
|
|
203
|
+
// Already exists — check content change
|
|
204
|
+
const globalBall = globalPool.balls[existingIdx];
|
|
205
|
+
const projectContent = (0, pool_manager_1.readBallContent)(source.pool_path, ball.id);
|
|
206
|
+
const globalContent = (0, pool_manager_1.readBallContent)(GLOBAL_POOL_DIR, globalBall.id);
|
|
207
|
+
if (projectContent !== null && projectContent !== globalContent) {
|
|
208
|
+
// Content changed — update content, keep global H
|
|
209
|
+
(0, pool_manager_1.writeBallContent)(GLOBAL_POOL_DIR, globalBall.id, projectContent);
|
|
210
|
+
globalBall.summary = ball.summary;
|
|
211
|
+
globalBall.t_last = globalT;
|
|
212
|
+
result.updated++;
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
// Touch: refresh t_last
|
|
216
|
+
globalBall.t_last = globalT;
|
|
217
|
+
result.skipped++;
|
|
218
|
+
}
|
|
212
219
|
}
|
|
213
220
|
else {
|
|
214
|
-
//
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
if (content !== null) {
|
|
244
|
-
(0, pool_manager_1.writeBallContent)(GLOBAL_POOL_DIR, newId, content);
|
|
221
|
+
// New ball — compute project buoyancy as B0
|
|
222
|
+
const projectBuoyancy = (0, buoyancy_1.computeBuoyancy)(ball.B0, ball.H, projectPool.alpha, projectPool.lambda, projectPool.t, ball.t_last, ball.permanent);
|
|
223
|
+
const newId = `ball_${String(globalPool.next_id).padStart(4, '0')}`;
|
|
224
|
+
globalPool.next_id++;
|
|
225
|
+
const newBall = {
|
|
226
|
+
id: newId,
|
|
227
|
+
type: ball.type,
|
|
228
|
+
summary: ball.summary,
|
|
229
|
+
B0: Math.round(projectBuoyancy * 100) / 100,
|
|
230
|
+
H: 0,
|
|
231
|
+
t_last: globalT,
|
|
232
|
+
hardness: ball.hardness,
|
|
233
|
+
permanent: ball.permanent,
|
|
234
|
+
links: [], // Links resolved separately
|
|
235
|
+
created_at: ball.created_at,
|
|
236
|
+
origins: [{
|
|
237
|
+
source_project: source.project_id,
|
|
238
|
+
source_ball_id: ball.id,
|
|
239
|
+
synced_at: new Date().toISOString(),
|
|
240
|
+
}],
|
|
241
|
+
};
|
|
242
|
+
// Write ball content first (gate pattern)
|
|
243
|
+
const content = (0, pool_manager_1.readBallContent)(source.pool_path, ball.id);
|
|
244
|
+
if (content !== null) {
|
|
245
|
+
(0, pool_manager_1.writeBallContent)(GLOBAL_POOL_DIR, newId, content);
|
|
246
|
+
}
|
|
247
|
+
globalPool.balls.push(newBall);
|
|
248
|
+
originMap.set(originKey, globalPool.balls.length - 1);
|
|
249
|
+
result.added++;
|
|
245
250
|
}
|
|
246
|
-
globalPool.balls.push(newBall);
|
|
247
|
-
originMap.set(originKey, globalPool.balls.length - 1);
|
|
248
|
-
result.added++;
|
|
249
251
|
}
|
|
250
252
|
}
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
return
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
253
|
+
// Step 3: Orphan detection (only check origins from synced projects)
|
|
254
|
+
for (const gb of globalPool.balls) {
|
|
255
|
+
if (!gb.origins || gb.origins.length === 0)
|
|
256
|
+
continue;
|
|
257
|
+
// Only remove origins whose source project was actually synced and ball is gone
|
|
258
|
+
gb.origins = gb.origins.filter((o) => {
|
|
259
|
+
if (!syncedProjectIds.has(o.source_project))
|
|
260
|
+
return true; // preserve unreachable/unsynced origins
|
|
261
|
+
return aliveOrigins.has(`${o.source_project}:${o.source_ball_id}`);
|
|
262
|
+
});
|
|
263
|
+
if (gb.origins.length === 0 && !gb.orphaned) {
|
|
264
|
+
gb.pre_orphan_B0 = gb.B0;
|
|
265
|
+
gb.orphaned = true;
|
|
266
|
+
gb.B0 = Math.round(gb.B0 * 0.5 * 100) / 100;
|
|
267
|
+
result.orphaned++;
|
|
268
|
+
}
|
|
269
|
+
else if (gb.origins.length > 0 && gb.orphaned) {
|
|
270
|
+
// Restore orphaned ball when origins reappear
|
|
271
|
+
if (gb.pre_orphan_B0 !== undefined) {
|
|
272
|
+
gb.B0 = gb.pre_orphan_B0;
|
|
273
|
+
delete gb.pre_orphan_B0;
|
|
274
|
+
}
|
|
275
|
+
gb.orphaned = false;
|
|
273
276
|
}
|
|
274
|
-
gb.orphaned = false;
|
|
275
277
|
}
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
278
|
+
// Step 4: Write pool.json LAST (gate)
|
|
279
|
+
(0, pool_manager_1.writePool)(GLOBAL_POOL_DIR, globalPool);
|
|
280
|
+
writeSources(sources);
|
|
281
|
+
// Step 5: Rebuild global surface.md
|
|
282
|
+
(0, pool_manager_1.buildSurface)(GLOBAL_POOL_DIR);
|
|
283
|
+
return result;
|
|
284
|
+
});
|
|
281
285
|
}
|
|
282
286
|
finally {
|
|
283
287
|
syncInProgress = false;
|
|
284
288
|
}
|
|
285
289
|
}
|
|
286
|
-
// ── Import preview ──
|
|
287
|
-
function getImportPreview(projectPoolDir) {
|
|
288
|
-
const globalPool = readGlobalPool();
|
|
289
|
-
if (!globalPool)
|
|
290
|
-
return [];
|
|
291
|
-
// Use fresh calendar-based t for accurate buoyancy
|
|
292
|
-
globalPool.t = computeGlobalT(globalPool.initialized_at);
|
|
293
|
-
const projectPool = (0, pool_manager_1.readPool)(projectPoolDir);
|
|
294
|
-
if (!projectPool)
|
|
295
|
-
return [];
|
|
296
|
-
// Get global active balls sorted by buoyancy
|
|
297
|
-
const enriched = (0, pool_manager_1.enrichBallsWithBuoyancy)(globalPool);
|
|
298
|
-
const activeBalls = enriched.slice(0, globalPool.active_capacity);
|
|
299
|
-
// Find which global balls are already imported into this project
|
|
300
|
-
const importedGlobalIds = new Set(projectPool.balls.filter((b) => b.global_ball_id).map((b) => b.global_ball_id));
|
|
301
|
-
return activeBalls
|
|
302
|
-
.filter((b) => !importedGlobalIds.has(b.id) && !b.orphaned)
|
|
303
|
-
.map((b) => ({
|
|
304
|
-
global_ball_id: b.id,
|
|
305
|
-
type: b.type,
|
|
306
|
-
summary: b.summary,
|
|
307
|
-
buoyancy: b.buoyancy,
|
|
308
|
-
origins_count: b.origins?.length ?? 0,
|
|
309
|
-
}));
|
|
310
|
-
}
|
|
311
|
-
// ── Import from global ──
|
|
312
|
-
function importFromGlobal(projectPoolDir, selectedGlobalIds) {
|
|
313
|
-
const globalPool = readGlobalPool();
|
|
314
|
-
if (!globalPool)
|
|
315
|
-
throw new Error('Global pool not initialized');
|
|
316
|
-
// Use fresh calendar-based t for accurate buoyancy
|
|
317
|
-
globalPool.t = computeGlobalT(globalPool.initialized_at);
|
|
318
|
-
const projectPool = (0, pool_manager_1.readPool)(projectPoolDir);
|
|
319
|
-
if (!projectPool)
|
|
320
|
-
throw new Error('Project pool not initialized');
|
|
321
|
-
// Compute global buoyancies
|
|
322
|
-
const enriched = (0, pool_manager_1.enrichBallsWithBuoyancy)(globalPool);
|
|
323
|
-
const globalBallMap = new Map(enriched.map((b) => [b.id, b]));
|
|
324
|
-
// Compute project active layer lowest buoyancy for B0 normalization
|
|
325
|
-
const projectEnriched = (0, pool_manager_1.enrichBallsWithBuoyancy)(projectPool);
|
|
326
|
-
const projectActiveBalls = projectEnriched.slice(0, projectPool.active_capacity);
|
|
327
|
-
const lowestActiveB = projectActiveBalls.length > 0
|
|
328
|
-
? projectActiveBalls[projectActiveBalls.length - 1].buoyancy
|
|
329
|
-
: 5;
|
|
330
|
-
// Default B0 by type
|
|
331
|
-
const defaultB0 = { feedback: 8, user: 5, project: 4, reference: 2 };
|
|
332
|
-
// Build global→local ID mapping for links (include previously imported balls)
|
|
333
|
-
const globalToLocal = new Map();
|
|
334
|
-
for (const b of projectPool.balls) {
|
|
335
|
-
if (b.global_ball_id) {
|
|
336
|
-
globalToLocal.set(b.global_ball_id, b.id);
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
|
-
const imported = [];
|
|
340
|
-
// First pass: assign local IDs for new imports
|
|
341
|
-
for (const gid of selectedGlobalIds) {
|
|
342
|
-
const gb = globalBallMap.get(gid);
|
|
343
|
-
if (!gb)
|
|
344
|
-
continue;
|
|
345
|
-
// Skip if already imported
|
|
346
|
-
if (globalToLocal.has(gid))
|
|
347
|
-
continue;
|
|
348
|
-
const localId = `ball_${String(projectPool.next_id).padStart(4, '0')}`;
|
|
349
|
-
projectPool.next_id++;
|
|
350
|
-
globalToLocal.set(gid, localId);
|
|
351
|
-
}
|
|
352
|
-
// Collect newly assigned IDs (exclude previously imported)
|
|
353
|
-
const previouslyImported = new Set(projectPool.balls.filter((b) => b.global_ball_id).map((b) => b.global_ball_id));
|
|
354
|
-
// Second pass: create balls with mapped links
|
|
355
|
-
for (const gid of selectedGlobalIds) {
|
|
356
|
-
const gb = globalBallMap.get(gid);
|
|
357
|
-
if (!gb)
|
|
358
|
-
continue;
|
|
359
|
-
// Skip if this was previously imported
|
|
360
|
-
if (previouslyImported.has(gid))
|
|
361
|
-
continue;
|
|
362
|
-
const localId = globalToLocal.get(gid);
|
|
363
|
-
if (!localId)
|
|
364
|
-
continue;
|
|
365
|
-
// B0 normalization
|
|
366
|
-
const normalizedB0 = Math.max(defaultB0[gb.type] ?? 4, Math.min(gb.buoyancy, lowestActiveB * 1.5));
|
|
367
|
-
// Map links: only keep links to simultaneously imported balls
|
|
368
|
-
const mappedLinks = (gb.links || [])
|
|
369
|
-
.map((linkGid) => globalToLocal.get(linkGid))
|
|
370
|
-
.filter((id) => id !== undefined);
|
|
371
|
-
const newBall = {
|
|
372
|
-
id: localId,
|
|
373
|
-
type: gb.type,
|
|
374
|
-
summary: gb.summary,
|
|
375
|
-
B0: Math.round(normalizedB0 * 100) / 100,
|
|
376
|
-
H: 0,
|
|
377
|
-
t_last: projectPool.t,
|
|
378
|
-
hardness: gb.hardness,
|
|
379
|
-
permanent: gb.permanent,
|
|
380
|
-
links: mappedLinks,
|
|
381
|
-
created_at: new Date().toISOString(),
|
|
382
|
-
global_ball_id: gid,
|
|
383
|
-
};
|
|
384
|
-
// Copy ball content
|
|
385
|
-
const content = (0, pool_manager_1.readBallContent)(GLOBAL_POOL_DIR, gid);
|
|
386
|
-
if (content !== null) {
|
|
387
|
-
(0, pool_manager_1.writeBallContent)(projectPoolDir, localId, content);
|
|
388
|
-
}
|
|
389
|
-
projectPool.balls.push(newBall);
|
|
390
|
-
imported.push({ local_id: localId, global_id: gid, summary: gb.summary });
|
|
391
|
-
}
|
|
392
|
-
// Write project pool
|
|
393
|
-
(0, pool_manager_1.writePool)(projectPoolDir, projectPool);
|
|
394
|
-
return { imported: imported.length, balls: imported };
|
|
395
|
-
}
|
|
396
290
|
//# sourceMappingURL=global-pool-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-pool-manager.js","sourceRoot":"","sources":["../../src/memory-pool/global-pool-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"global-pool-manager.js","sourceRoot":"","sources":["../../src/memory-pool/global-pool-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pool-lock.d.ts","sourceRoot":"","sources":["../../src/memory-pool/pool-lock.ts"],"names":[],"mappings":"AAKA,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CA4BxE"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// backend/src/memory-pool/pool-lock.ts
|
|
3
|
+
// Per-project Promise-chain mutex for serializing pool.json writes.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.withPoolLock = withPoolLock;
|
|
6
|
+
const locks = new Map();
|
|
7
|
+
function withPoolLock(poolDir, fn) {
|
|
8
|
+
const prev = locks.get(poolDir) ?? Promise.resolve();
|
|
9
|
+
let resolve;
|
|
10
|
+
let reject;
|
|
11
|
+
const resultPromise = new Promise((res, rej) => { resolve = res; reject = rej; });
|
|
12
|
+
const next = prev.then(() => {
|
|
13
|
+
try {
|
|
14
|
+
const result = fn();
|
|
15
|
+
if (result instanceof Promise) {
|
|
16
|
+
return result.then((v) => resolve(v), (e) => reject(e));
|
|
17
|
+
}
|
|
18
|
+
resolve(result);
|
|
19
|
+
}
|
|
20
|
+
catch (e) {
|
|
21
|
+
reject(e);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
// Keep chain alive (swallow rejections so next caller can proceed)
|
|
25
|
+
const chain = next.catch(() => { });
|
|
26
|
+
locks.set(poolDir, chain);
|
|
27
|
+
chain.then(() => { if (locks.get(poolDir) === chain)
|
|
28
|
+
locks.delete(poolDir); });
|
|
29
|
+
return resultPromise;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=pool-lock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pool-lock.js","sourceRoot":"","sources":["../../src/memory-pool/pool-lock.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,oEAAoE;;AAIpE,oCA4BC;AA9BD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAyB,CAAC;AAE/C,SAAgB,YAAY,CAAI,OAAe,EAAE,EAAW;IAC1D,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAErD,IAAI,OAAwB,CAAC;IAC7B,IAAI,MAA6B,CAAC;IAClC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,OAAO,GAAG,GAAG,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAErF,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;QAC1B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,EAAE,EAAE,CAAC;YACpB,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;gBAC9B,OAAQ,MAA2B,CAAC,IAAI,CACtC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAM,CAAC,EACtB,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CACjB,CAAC;YACJ,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,CAAC,CAAC,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,mEAAmE;IACnE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACnC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC1B,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK;QAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/E,OAAO,aAAa,CAAC;AACvB,CAAC"}
|
|
@@ -5,6 +5,40 @@ export declare function readBallContent(poolDir: string, ballId: string): string
|
|
|
5
5
|
export declare function writeBallContent(poolDir: string, ballId: string, content: string): void;
|
|
6
6
|
export declare function enrichBallsWithBuoyancy(pool: PoolJson): PoolBallWithBuoyancy[];
|
|
7
7
|
export declare function generateSnapshot(pool: PoolJson): string;
|
|
8
|
+
/**
|
|
9
|
+
* Estimate token count from text content (rough: ~4 chars per token for mixed CJK/EN).
|
|
10
|
+
*/
|
|
11
|
+
export declare function estimateTokens(text: string): number;
|
|
12
|
+
export interface SurfaceBall {
|
|
13
|
+
id: string;
|
|
14
|
+
type: string;
|
|
15
|
+
summary: string;
|
|
16
|
+
buoyancy: number;
|
|
17
|
+
diameter: number;
|
|
18
|
+
links: string[];
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Build surface.md — the set of top-buoyancy balls whose total token diameter
|
|
22
|
+
* fits within the wedge top width (surface_width). Writes surface.md to poolDir.
|
|
23
|
+
* MUST be called within withPoolLock when pool.json may be concurrently modified.
|
|
24
|
+
*/
|
|
25
|
+
export declare function buildSurface(poolDir: string): {
|
|
26
|
+
surfaceBalls: SurfaceBall[];
|
|
27
|
+
totalTokens: number;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* Compute and cache the diameter (token estimate) for a ball.
|
|
31
|
+
*/
|
|
32
|
+
export declare function computeDiameter(poolDir: string, ballId: string): number;
|
|
33
|
+
/**
|
|
34
|
+
* Tick the pool: increment t with session-based dedup.
|
|
35
|
+
* Returns { t, deduplicated } or null if pool not found.
|
|
36
|
+
* MUST be called within withPoolLock to prevent concurrent read-modify-write races.
|
|
37
|
+
*/
|
|
38
|
+
export declare function tickPool(poolDir: string, session?: string): {
|
|
39
|
+
t: number;
|
|
40
|
+
deduplicated: boolean;
|
|
41
|
+
} | null;
|
|
8
42
|
/**
|
|
9
43
|
* Migrate from v1 (state.json + index.json + frontmatter balls) to v2 (pool.json + pure content balls).
|
|
10
44
|
* Idempotent: if pool.json already exists with version >= 2, returns empty changes.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pool-manager.d.ts","sourceRoot":"","sources":["../../src/memory-pool/pool-manager.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAgB,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAOvE,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAQzD;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,IAAI,CAE/D;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQ9E;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAIvF;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,QAAQ,GAAG,oBAAoB,EAAE,CAQ9E;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAkBvD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"pool-manager.d.ts","sourceRoot":"","sources":["../../src/memory-pool/pool-manager.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAgB,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAOvE,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAQzD;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,IAAI,CAE/D;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQ9E;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAIvF;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,QAAQ,GAAG,oBAAoB,EAAE,CAQ9E;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAkBvD;AAID;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,YAAY,EAAE,WAAW,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAsDlG;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAGvE;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAevG;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAsGpE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAIrD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAKtD"}
|