@tom2012/cc-web 1.5.92 → 1.5.93

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.
Files changed (33) hide show
  1. package/backend/dist/memory-pool/global-pool-manager.d.ts +21 -0
  2. package/backend/dist/memory-pool/global-pool-manager.d.ts.map +1 -0
  3. package/backend/dist/memory-pool/global-pool-manager.js +396 -0
  4. package/backend/dist/memory-pool/global-pool-manager.js.map +1 -0
  5. package/backend/dist/memory-pool/templates.d.ts.map +1 -1
  6. package/backend/dist/memory-pool/templates.js +7 -2
  7. package/backend/dist/memory-pool/templates.js.map +1 -1
  8. package/backend/dist/memory-pool/types.d.ts +38 -0
  9. package/backend/dist/memory-pool/types.d.ts.map +1 -1
  10. package/backend/dist/routes/memory-pool.d.ts.map +1 -1
  11. package/backend/dist/routes/memory-pool.js +150 -0
  12. package/backend/dist/routes/memory-pool.js.map +1 -1
  13. package/frontend/dist/assets/{GraphPreview-QiSxy4LP.js → GraphPreview-CSZTNhQX.js} +1 -1
  14. package/frontend/dist/assets/{OfficePreview-DlUCjmFD.js → OfficePreview-DZmKFnER.js} +2 -2
  15. package/frontend/dist/assets/{PlanPanel-Dn5PCqCc.js → PlanPanel-DuAa0AZZ.js} +1 -1
  16. package/frontend/dist/assets/{ProjectPage-XG9MZm7t.js → ProjectPage-BxuE0x69.js} +5 -5
  17. package/frontend/dist/assets/{SettingsPage-ofs1M1K_.js → SettingsPage-DSnQze4Z.js} +2 -2
  18. package/frontend/dist/assets/{ShareViewPage-u8FXEdhC.js → ShareViewPage-Dmur70tT.js} +1 -1
  19. package/frontend/dist/assets/{SkillHubPage-DYQ3--oW.js → SkillHubPage-DnGb0OHx.js} +2 -2
  20. package/frontend/dist/assets/{bot-63iGenXw.js → bot-DKy4a5yK.js} +1 -1
  21. package/frontend/dist/assets/{chevron-down-CzkwkeMW.js → chevron-down-B-GU2wv8.js} +1 -1
  22. package/frontend/dist/assets/{download-DhFx0Fu-.js → download-CsOUNuPy.js} +1 -1
  23. package/frontend/dist/assets/index-BiVVvGoh.css +1 -0
  24. package/frontend/dist/assets/{index-C8aR4tRp.js → index-C202jcvT.js} +9 -9
  25. package/frontend/dist/assets/{index-DKsG2yPY.js → index-I4_xf4g_.js} +1 -1
  26. package/frontend/dist/assets/{jszip.min-B9vwwWDL.js → jszip.min-Dc0FmeMP.js} +1 -1
  27. package/frontend/dist/assets/{matter-CCkX66fz.js → matter-Da3rDMpe.js} +1 -1
  28. package/frontend/dist/assets/{maximize-2-B3mAuuFs.js → maximize-2-BEyzEiyH.js} +1 -1
  29. package/frontend/dist/assets/{save-CxQAMJ-_.js → save-BYSx9fYK.js} +1 -1
  30. package/frontend/dist/assets/{user-DxwkzcYb.js → user-D3KuBJwv.js} +1 -1
  31. package/frontend/dist/index.html +2 -2
  32. package/package.json +1 -1
  33. package/frontend/dist/assets/index-DVUjdhq8.css +0 -1
@@ -0,0 +1,21 @@
1
+ import { PoolJson, SourcesJson, SyncResult, ImportPreviewBall } from './types';
2
+ export declare function getGlobalPoolDir(): string;
3
+ export declare function readSources(): SourcesJson;
4
+ export declare function writeSources(data: SourcesJson): void;
5
+ export declare function isGlobalPoolInitialized(): boolean;
6
+ export declare function ensureGlobalPool(): void;
7
+ export declare function readGlobalPool(): PoolJson | null;
8
+ export declare function computeGlobalT(initializedAt: string): number;
9
+ export declare function registerProject(projectId: string, projectName: string, poolPath: string): void;
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
+ };
21
+ //# sourceMappingURL=global-pool-manager.d.ts.map
@@ -0,0 +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,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAU1G,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,CAmBvC;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,wBAAgB,YAAY,IAAI,UAAU,CAyJzC;AAID,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG,iBAAiB,EAAE,CA4B5E;AAID,wBAAgB,gBAAgB,CAC9B,cAAc,EAAE,MAAM,EACtB,iBAAiB,EAAE,MAAM,EAAE,GAC1B;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAmG9F"}
@@ -0,0 +1,396 @@
1
+ "use strict";
2
+ // backend/src/memory-pool/global-pool-manager.ts
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.getGlobalPoolDir = getGlobalPoolDir;
38
+ exports.readSources = readSources;
39
+ exports.writeSources = writeSources;
40
+ exports.isGlobalPoolInitialized = isGlobalPoolInitialized;
41
+ exports.ensureGlobalPool = ensureGlobalPool;
42
+ exports.readGlobalPool = readGlobalPool;
43
+ exports.computeGlobalT = computeGlobalT;
44
+ exports.registerProject = registerProject;
45
+ exports.removeSource = removeSource;
46
+ exports.syncToGlobal = syncToGlobal;
47
+ exports.getImportPreview = getImportPreview;
48
+ exports.importFromGlobal = importFromGlobal;
49
+ const fs = __importStar(require("fs"));
50
+ const path = __importStar(require("path"));
51
+ const os = __importStar(require("os"));
52
+ const config_1 = require("../config");
53
+ const pool_manager_1 = require("./pool-manager");
54
+ const buoyancy_1 = require("./buoyancy");
55
+ const GLOBAL_POOL_DIR = path.join(os.homedir(), '.ccweb', 'memory-pool');
56
+ const SOURCES_FILE = 'sources.json';
57
+ // Concurrency guard
58
+ let syncInProgress = false;
59
+ function getGlobalPoolDir() {
60
+ return GLOBAL_POOL_DIR;
61
+ }
62
+ // ── Sources management ──
63
+ function sourcesPath() {
64
+ return path.join(GLOBAL_POOL_DIR, SOURCES_FILE);
65
+ }
66
+ function readSources() {
67
+ const file = sourcesPath();
68
+ if (!fs.existsSync(file))
69
+ return { version: 1, sources: [] };
70
+ try {
71
+ return JSON.parse(fs.readFileSync(file, 'utf-8'));
72
+ }
73
+ catch {
74
+ return { version: 1, sources: [] };
75
+ }
76
+ }
77
+ function writeSources(data) {
78
+ (0, config_1.atomicWriteSync)(sourcesPath(), JSON.stringify(data, null, 2));
79
+ }
80
+ // ── Global pool init ──
81
+ function isGlobalPoolInitialized() {
82
+ return fs.existsSync(path.join(GLOBAL_POOL_DIR, 'pool.json'));
83
+ }
84
+ function ensureGlobalPool() {
85
+ if (isGlobalPoolInitialized())
86
+ return;
87
+ fs.mkdirSync(path.join(GLOBAL_POOL_DIR, 'balls'), { recursive: true });
88
+ const now = new Date().toISOString();
89
+ const pool = {
90
+ version: 2,
91
+ t: 0,
92
+ lambda: 0.99,
93
+ alpha: 1.0,
94
+ active_capacity: 40,
95
+ next_id: 1,
96
+ pool: 'global',
97
+ initialized_at: now,
98
+ balls: [],
99
+ };
100
+ (0, pool_manager_1.writePool)(GLOBAL_POOL_DIR, pool);
101
+ writeSources({ version: 1, sources: [] });
102
+ }
103
+ function readGlobalPool() {
104
+ return (0, pool_manager_1.readPool)(GLOBAL_POOL_DIR);
105
+ }
106
+ // ── Calendar-based t ──
107
+ function computeGlobalT(initializedAt) {
108
+ const epochDay = Math.floor(new Date(initializedAt).getTime() / 86400000);
109
+ const nowDay = Math.floor(Date.now() / 86400000);
110
+ return Math.max(0, nowDay - epochDay);
111
+ }
112
+ // ── Register project ──
113
+ function registerProject(projectId, projectName, poolPath) {
114
+ ensureGlobalPool();
115
+ const sources = readSources();
116
+ const existing = sources.sources.find((s) => s.pool_path === poolPath);
117
+ if (existing) {
118
+ // Refresh metadata
119
+ existing.project_id = projectId;
120
+ existing.project_name = projectName;
121
+ existing.status = 'active';
122
+ existing.unreachable_count = 0;
123
+ }
124
+ else {
125
+ sources.sources.push({
126
+ project_id: projectId,
127
+ project_name: projectName,
128
+ pool_path: poolPath,
129
+ registered_at: new Date().toISOString(),
130
+ last_synced_at: null,
131
+ status: 'active',
132
+ unreachable_count: 0,
133
+ });
134
+ }
135
+ writeSources(sources);
136
+ }
137
+ function removeSource(projectId) {
138
+ const sources = readSources();
139
+ const idx = sources.sources.findIndex((s) => s.project_id === projectId);
140
+ if (idx === -1)
141
+ return false;
142
+ sources.sources.splice(idx, 1);
143
+ writeSources(sources);
144
+ return true;
145
+ }
146
+ // ── Sync (global operation) ──
147
+ function syncToGlobal() {
148
+ if (syncInProgress) {
149
+ throw new Error('SYNC_IN_PROGRESS');
150
+ }
151
+ syncInProgress = true;
152
+ try {
153
+ ensureGlobalPool();
154
+ const globalPool = readGlobalPool();
155
+ const sources = readSources();
156
+ const globalT = computeGlobalT(globalPool.initialized_at);
157
+ globalPool.t = globalT;
158
+ const result = {
159
+ added: 0,
160
+ updated: 0,
161
+ skipped: 0,
162
+ orphaned: 0,
163
+ unreachable_projects: [],
164
+ synced_projects: [],
165
+ };
166
+ // Build origin lookup: "projectId:ballId" → global ball index
167
+ const originMap = new Map();
168
+ globalPool.balls.forEach((gb, idx) => {
169
+ if (gb.origins) {
170
+ for (const o of gb.origins) {
171
+ originMap.set(`${o.source_project}:${o.source_ball_id}`, idx);
172
+ }
173
+ }
174
+ });
175
+ // Track which origins are still alive (from synced projects only)
176
+ const aliveOrigins = new Set();
177
+ // Track projects that were actually synced (for orphan detection scoping)
178
+ const syncedProjectIds = new Set();
179
+ // Step 1 & 2: Collect and merge
180
+ for (const source of sources.sources) {
181
+ if (source.status === 'unreachable')
182
+ continue;
183
+ const projectPool = (0, pool_manager_1.readPool)(source.pool_path);
184
+ if (!projectPool) {
185
+ source.unreachable_count = (source.unreachable_count ?? 0) + 1;
186
+ if (source.unreachable_count >= 3) {
187
+ source.status = 'unreachable';
188
+ }
189
+ result.unreachable_projects.push(source.project_name);
190
+ continue;
191
+ }
192
+ // Reset unreachable count on success
193
+ source.unreachable_count = 0;
194
+ source.last_synced_at = new Date().toISOString();
195
+ result.synced_projects.push(source.project_name);
196
+ syncedProjectIds.add(source.project_id);
197
+ for (const ball of projectPool.balls) {
198
+ const originKey = `${source.project_id}:${ball.id}`;
199
+ aliveOrigins.add(originKey);
200
+ const existingIdx = originMap.get(originKey);
201
+ if (existingIdx !== undefined) {
202
+ // Already exists — check content change
203
+ const globalBall = globalPool.balls[existingIdx];
204
+ const projectContent = (0, pool_manager_1.readBallContent)(source.pool_path, ball.id);
205
+ const globalContent = (0, pool_manager_1.readBallContent)(GLOBAL_POOL_DIR, globalBall.id);
206
+ if (projectContent !== null && projectContent !== globalContent) {
207
+ // Content changed — update content, keep global H
208
+ (0, pool_manager_1.writeBallContent)(GLOBAL_POOL_DIR, globalBall.id, projectContent);
209
+ globalBall.summary = ball.summary;
210
+ globalBall.t_last = globalT;
211
+ result.updated++;
212
+ }
213
+ else {
214
+ // Touch: refresh t_last
215
+ globalBall.t_last = globalT;
216
+ result.skipped++;
217
+ }
218
+ }
219
+ else {
220
+ // New ball — compute project buoyancy as B0
221
+ const projectBuoyancy = (0, buoyancy_1.computeBuoyancy)(ball.B0, ball.H, projectPool.alpha, projectPool.lambda, projectPool.t, ball.t_last, ball.permanent);
222
+ const newId = `ball_${String(globalPool.next_id).padStart(4, '0')}`;
223
+ globalPool.next_id++;
224
+ const newBall = {
225
+ id: newId,
226
+ type: ball.type,
227
+ summary: ball.summary,
228
+ B0: Math.round(projectBuoyancy * 100) / 100,
229
+ H: 0,
230
+ t_last: globalT,
231
+ hardness: ball.hardness,
232
+ permanent: ball.permanent,
233
+ links: [], // Links resolved separately
234
+ created_at: ball.created_at,
235
+ origins: [{
236
+ source_project: source.project_id,
237
+ source_ball_id: ball.id,
238
+ synced_at: new Date().toISOString(),
239
+ }],
240
+ };
241
+ // Write ball content first (gate pattern)
242
+ const content = (0, pool_manager_1.readBallContent)(source.pool_path, ball.id);
243
+ if (content !== null) {
244
+ (0, pool_manager_1.writeBallContent)(GLOBAL_POOL_DIR, newId, content);
245
+ }
246
+ globalPool.balls.push(newBall);
247
+ originMap.set(originKey, globalPool.balls.length - 1);
248
+ result.added++;
249
+ }
250
+ }
251
+ }
252
+ // Step 3: Orphan detection (only check origins from synced projects)
253
+ for (const gb of globalPool.balls) {
254
+ if (!gb.origins || gb.origins.length === 0)
255
+ continue;
256
+ // Only remove origins whose source project was actually synced and ball is gone
257
+ gb.origins = gb.origins.filter((o) => {
258
+ if (!syncedProjectIds.has(o.source_project))
259
+ return true; // preserve unreachable/unsynced origins
260
+ return aliveOrigins.has(`${o.source_project}:${o.source_ball_id}`);
261
+ });
262
+ if (gb.origins.length === 0 && !gb.orphaned) {
263
+ gb.pre_orphan_B0 = gb.B0;
264
+ gb.orphaned = true;
265
+ gb.B0 = Math.round(gb.B0 * 0.5 * 100) / 100;
266
+ result.orphaned++;
267
+ }
268
+ else if (gb.origins.length > 0 && gb.orphaned) {
269
+ // Restore orphaned ball when origins reappear
270
+ if (gb.pre_orphan_B0 !== undefined) {
271
+ gb.B0 = gb.pre_orphan_B0;
272
+ delete gb.pre_orphan_B0;
273
+ }
274
+ gb.orphaned = false;
275
+ }
276
+ }
277
+ // Step 4: Write pool.json LAST (gate)
278
+ (0, pool_manager_1.writePool)(GLOBAL_POOL_DIR, globalPool);
279
+ writeSources(sources);
280
+ return result;
281
+ }
282
+ finally {
283
+ syncInProgress = false;
284
+ }
285
+ }
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
+ //# sourceMappingURL=global-pool-manager.js.map
@@ -0,0 +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 +1 @@
1
- {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/memory-pool/templates.ts"],"names":[],"mappings":"AAEA,wBAAgB,cAAc,IAAI,MAAM,CA6IvC;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CA2D3C;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAiB9C"}
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/memory-pool/templates.ts"],"names":[],"mappings":"AAEA,wBAAgB,cAAc,IAAI,MAAM,CAkJvC;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CA2D3C;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAiB9C"}
@@ -141,9 +141,14 @@ B(t) = (B₀ + α · H) · λ^(t - t_last)
141
141
 
142
142
  \`t\` 由系统 hook 自动递增(每条用户消息 +1)。AI 无需手动管理轮次。
143
143
 
144
- ## 七、多容器架构(预留)
144
+ ## 七、多容器架构
145
145
 
146
- 当前为项目级记忆池(\`pool: "project"\`)。未来可扩展全局池(\`~/.ccweb/memory-pool/\`,\`pool: "global"\`,\`lambda: 0.99\`)。
146
+ 系统支持两层记忆池:
147
+
148
+ - **项目池**(\`pool: "project"\`):位于项目目录下 \`.memory-pool/\`,\`lambda: 0.97\`,记录项目内的局部经验
149
+ - **全局池**(\`pool: "global"\`):位于 \`~/.ccweb/memory-pool/\`,\`lambda: 0.99\`,汇总所有项目的通用经验
150
+
151
+ 全局池的 \`t\` 按日历天数递增,通用性记忆自然上浮。项目池初始化/更新时自动注册到全局池。
147
152
  `;
148
153
  }
149
154
  function generateQuickRefMd() {
@@ -1 +1 @@
1
- {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/memory-pool/templates.ts"],"names":[],"mappings":";AAAA,uCAAuC;;AAEvC,wCA6IC;AAED,gDA2DC;AAED,sDAiBC;AA7ND,SAAgB,cAAc;IAC5B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2IR,CAAC;AACF,CAAC;AAED,SAAgB,kBAAkB;IAChC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDR,CAAC;AACF,CAAC;AAED,SAAgB,qBAAqB;IACnC,OAAO;;;;;;;;;;;;;;;CAeR,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/memory-pool/templates.ts"],"names":[],"mappings":";AAAA,uCAAuC;;AAEvC,wCAkJC;AAED,gDA2DC;AAED,sDAiBC;AAlOD,SAAgB,cAAc;IAC5B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgJR,CAAC;AACF,CAAC;AAED,SAAgB,kBAAkB;IAChC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDR,CAAC;AACF,CAAC;AAED,SAAgB,qBAAqB;IACnC,OAAO;;;;;;;;;;;;;;;CAeR,CAAC;AACF,CAAC"}
@@ -1,3 +1,8 @@
1
+ export interface GlobalBallOrigin {
2
+ source_project: string;
3
+ source_ball_id: string;
4
+ synced_at: string;
5
+ }
1
6
  export interface PoolBallMeta {
2
7
  id: string;
3
8
  type: 'user' | 'feedback' | 'project' | 'reference';
@@ -9,6 +14,10 @@ export interface PoolBallMeta {
9
14
  permanent: boolean;
10
15
  links: string[];
11
16
  created_at: string;
17
+ origins?: GlobalBallOrigin[];
18
+ orphaned?: boolean;
19
+ pre_orphan_B0?: number;
20
+ global_ball_id?: string;
12
21
  }
13
22
  export interface PoolJson {
14
23
  version: number;
@@ -20,8 +29,37 @@ export interface PoolJson {
20
29
  pool: string;
21
30
  initialized_at: string;
22
31
  balls: PoolBallMeta[];
32
+ global_pool_path?: string;
23
33
  }
24
34
  export interface PoolBallWithBuoyancy extends PoolBallMeta {
25
35
  buoyancy: number;
26
36
  }
37
+ export interface SourceEntry {
38
+ project_id: string;
39
+ project_name: string;
40
+ pool_path: string;
41
+ registered_at: string;
42
+ last_synced_at: string | null;
43
+ status: 'active' | 'unreachable';
44
+ unreachable_count?: number;
45
+ }
46
+ export interface SourcesJson {
47
+ version: number;
48
+ sources: SourceEntry[];
49
+ }
50
+ export interface SyncResult {
51
+ added: number;
52
+ updated: number;
53
+ skipped: number;
54
+ orphaned: number;
55
+ unreachable_projects: string[];
56
+ synced_projects: string[];
57
+ }
58
+ export interface ImportPreviewBall {
59
+ global_ball_id: string;
60
+ type: string;
61
+ summary: string;
62
+ buoyancy: number;
63
+ origins_count: number;
64
+ }
27
65
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/memory-pool/types.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,CAAC;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IACxD,QAAQ,EAAE,MAAM,CAAC;CAClB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/memory-pool/types.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,CAAC;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IAEnB,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,YAAY,EAAE,CAAC;IAEtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAqB,SAAQ,YAAY;IACxD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,QAAQ,GAAG,aAAa,CAAC;IACjC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;CACvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"memory-pool.d.ts","sourceRoot":"","sources":["../../src/routes/memory-pool.ts"],"names":[],"mappings":"AAkBA,QAAA,MAAM,MAAM,4CAAW,CAAC;AAiPxB,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"memory-pool.d.ts","sourceRoot":"","sources":["../../src/routes/memory-pool.ts"],"names":[],"mappings":"AA8BA,QAAA,MAAM,MAAM,4CAAW,CAAC;AA8YxB,eAAe,MAAM,CAAC"}