@tom2012/cc-web 2026.6.17-b → 2026.9.6-c

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 (239) hide show
  1. package/CHANGELOG.json +96 -21
  2. package/backend/dist/adapters/claude-adapter.d.ts +4 -0
  3. package/backend/dist/adapters/claude-adapter.d.ts.map +1 -1
  4. package/backend/dist/adapters/claude-adapter.js +18 -2
  5. package/backend/dist/adapters/claude-adapter.js.map +1 -1
  6. package/backend/dist/adapters/types.d.ts +8 -0
  7. package/backend/dist/adapters/types.d.ts.map +1 -1
  8. package/backend/dist/auth.d.ts.map +0 -0
  9. package/backend/dist/config.d.ts +0 -0
  10. package/backend/dist/config.js +0 -0
  11. package/backend/dist/config.js.map +0 -0
  12. package/backend/dist/hooks-manager.d.ts +0 -1
  13. package/backend/dist/hooks-manager.d.ts.map +1 -1
  14. package/backend/dist/hooks-manager.js +19 -19
  15. package/backend/dist/hooks-manager.js.map +1 -1
  16. package/backend/dist/index.d.ts.map +1 -1
  17. package/backend/dist/index.js +76 -1
  18. package/backend/dist/index.js.map +1 -1
  19. package/backend/dist/logger.d.ts.map +1 -1
  20. package/backend/dist/logger.js +3 -0
  21. package/backend/dist/logger.js.map +1 -1
  22. package/backend/dist/routes/auth.d.ts +0 -0
  23. package/backend/dist/routes/auth.d.ts.map +0 -0
  24. package/backend/dist/routes/auth.js.map +0 -0
  25. package/backend/dist/routes/projects.d.ts.map +0 -0
  26. package/backend/dist/routes/projects.js.map +0 -0
  27. package/backend/dist/session-manager.d.ts +0 -0
  28. package/backend/dist/session-manager.d.ts.map +0 -0
  29. package/backend/dist/session-manager.js +0 -0
  30. package/backend/dist/session-manager.js.map +0 -0
  31. package/backend/dist/terminal-manager.d.ts +10 -1
  32. package/backend/dist/terminal-manager.d.ts.map +1 -1
  33. package/backend/dist/terminal-manager.js +19 -2
  34. package/backend/dist/terminal-manager.js.map +1 -1
  35. package/backend/dist/types.d.ts +0 -0
  36. package/backend/dist/types.d.ts.map +0 -0
  37. package/backend/dist/types.js +0 -0
  38. package/backend/dist/types.js.map +0 -0
  39. package/frontend/dist/assets/{ChatOverlay-Dp1BzsYb.js → ChatOverlay-CymdKeQK.js} +1 -1
  40. package/frontend/dist/assets/{ClaudeMemPage-CpzMjJnb.js → ClaudeMemPage-BZ4UtUoz.js} +1 -1
  41. package/frontend/dist/assets/{GraphPreview-DDY1yVOX.js → GraphPreview-21EwV_e_.js} +1 -1
  42. package/frontend/dist/assets/{MobilePage-BnnE820D.js → MobilePage-99vv9cWh.js} +3 -3
  43. package/frontend/dist/assets/{NotebookPage-BOiYcs-l.js → NotebookPage-B-mcSRJm.js} +1 -1
  44. package/frontend/dist/assets/{OfficePreview-C5N2gr8-.js → OfficePreview-C3rHS2Te.js} +2 -2
  45. package/frontend/dist/assets/{PdfPreview-COG-9AQa.js → PdfPreview-B-toyaoA.js} +1 -1
  46. package/frontend/dist/assets/{ProjectPage-ARPH_J5o.js → ProjectPage-CShqyrUl.js} +4 -4
  47. package/frontend/dist/assets/{ProjectSettingsPage-CMWcT-5r.js → ProjectSettingsPage-FxkEGuUP.js} +1 -1
  48. package/frontend/dist/assets/{SettingsPage-BMrIDtg8.js → SettingsPage-B-bqNp6b.js} +1 -1
  49. package/frontend/dist/assets/{SkillHubPage-Bq93A7Rt.js → SkillHubPage-DN79j9Is.js} +1 -1
  50. package/frontend/dist/assets/{check-circle-2-BGT1eH1f.js → check-circle-2-DRT7EX5I.js} +1 -1
  51. package/frontend/dist/assets/{chevron-down-Bbg11n9i.js → chevron-down-DdtdiM4b.js} +1 -1
  52. package/frontend/dist/assets/{chevron-left-BmStQriC.js → chevron-left-Chv-EE6G.js} +1 -1
  53. package/frontend/dist/assets/{file-text-D9WjmbhK.js → file-text-D3ZDULSr.js} +1 -1
  54. package/frontend/dist/assets/{index-EFhMcMWk.js → index-BIGQ6n-i.js} +2 -2
  55. package/frontend/dist/assets/index-BpdaJxoa.css +1 -0
  56. package/frontend/dist/assets/{index-BRqvDxO6.js → index-CH1oLpmL.js} +1 -1
  57. package/frontend/dist/assets/{index-Bhp9CVTp.js → index-Dbm49BgL.js} +1 -1
  58. package/frontend/dist/assets/{index-COZnAgez.js → index-xJR85RJZ.js} +1 -1
  59. package/frontend/dist/assets/{jszip.min-Dyo__hKc.js → jszip.min-CMcZF4_M.js} +1 -1
  60. package/frontend/dist/assets/{save-CAjdgnp7.js → save-Dhw-I0uF.js} +1 -1
  61. package/frontend/dist/assets/{search-DmWhhICR.js → search-zoOED2R0.js} +1 -1
  62. package/frontend/dist/assets/{select-DAfsBGCS.js → select-B7xEE81_.js} +1 -1
  63. package/frontend/dist/assets/{tabs-zra46FZv.js → tabs-BCHX4LWy.js} +1 -1
  64. package/frontend/dist/assets/{textarea-BG4Tvy0e.js → textarea-CGPmR1Ae.js} +1 -1
  65. package/frontend/dist/index.html +2 -2
  66. package/package.json +36 -10
  67. package/backend/dist/backup/config.d.ts +0 -10
  68. package/backend/dist/backup/config.d.ts.map +0 -1
  69. package/backend/dist/backup/config.js +0 -128
  70. package/backend/dist/backup/config.js.map +0 -1
  71. package/backend/dist/backup/engine.d.ts +0 -22
  72. package/backend/dist/backup/engine.d.ts.map +0 -1
  73. package/backend/dist/backup/engine.js +0 -298
  74. package/backend/dist/backup/engine.js.map +0 -1
  75. package/backend/dist/backup/providers/dropbox.d.ts +0 -25
  76. package/backend/dist/backup/providers/dropbox.d.ts.map +0 -1
  77. package/backend/dist/backup/providers/dropbox.js +0 -320
  78. package/backend/dist/backup/providers/dropbox.js.map +0 -1
  79. package/backend/dist/backup/providers/google-drive.d.ts +0 -29
  80. package/backend/dist/backup/providers/google-drive.d.ts.map +0 -1
  81. package/backend/dist/backup/providers/google-drive.js +0 -303
  82. package/backend/dist/backup/providers/google-drive.js.map +0 -1
  83. package/backend/dist/backup/providers/index.d.ts +0 -3
  84. package/backend/dist/backup/providers/index.d.ts.map +0 -1
  85. package/backend/dist/backup/providers/index.js +0 -19
  86. package/backend/dist/backup/providers/index.js.map +0 -1
  87. package/backend/dist/backup/providers/onedrive.d.ts +0 -29
  88. package/backend/dist/backup/providers/onedrive.d.ts.map +0 -1
  89. package/backend/dist/backup/providers/onedrive.js +0 -317
  90. package/backend/dist/backup/providers/onedrive.js.map +0 -1
  91. package/backend/dist/backup/scheduler.d.ts +0 -6
  92. package/backend/dist/backup/scheduler.d.ts.map +0 -1
  93. package/backend/dist/backup/scheduler.js +0 -55
  94. package/backend/dist/backup/scheduler.js.map +0 -1
  95. package/backend/dist/backup/types.d.ts +0 -73
  96. package/backend/dist/backup/types.d.ts.map +0 -1
  97. package/backend/dist/backup/types.js +0 -4
  98. package/backend/dist/backup/types.js.map +0 -1
  99. package/backend/dist/chat-process-manager.d.ts +0 -45
  100. package/backend/dist/chat-process-manager.d.ts.map +0 -1
  101. package/backend/dist/chat-process-manager.js +0 -258
  102. package/backend/dist/chat-process-manager.js.map +0 -1
  103. package/backend/dist/flows/runner.d.ts +0 -37
  104. package/backend/dist/flows/runner.d.ts.map +0 -1
  105. package/backend/dist/flows/runner.js +0 -660
  106. package/backend/dist/flows/runner.js.map +0 -1
  107. package/backend/dist/flows/store.d.ts +0 -40
  108. package/backend/dist/flows/store.d.ts.map +0 -1
  109. package/backend/dist/flows/store.js +0 -284
  110. package/backend/dist/flows/store.js.map +0 -1
  111. package/backend/dist/flows/types.d.ts +0 -176
  112. package/backend/dist/flows/types.d.ts.map +0 -1
  113. package/backend/dist/flows/types.js +0 -25
  114. package/backend/dist/flows/types.js.map +0 -1
  115. package/backend/dist/information/condenser.d.ts +0 -12
  116. package/backend/dist/information/condenser.d.ts.map +0 -1
  117. package/backend/dist/information/condenser.js +0 -568
  118. package/backend/dist/information/condenser.js.map +0 -1
  119. package/backend/dist/information/conversation-sync.d.ts +0 -22
  120. package/backend/dist/information/conversation-sync.d.ts.map +0 -1
  121. package/backend/dist/information/conversation-sync.js +0 -500
  122. package/backend/dist/information/conversation-sync.js.map +0 -1
  123. package/backend/dist/information/types.d.ts +0 -36
  124. package/backend/dist/information/types.d.ts.map +0 -1
  125. package/backend/dist/information/types.js +0 -4
  126. package/backend/dist/information/types.js.map +0 -1
  127. package/backend/dist/memory-pool/buoyancy.d.ts +0 -2
  128. package/backend/dist/memory-pool/buoyancy.d.ts.map +0 -1
  129. package/backend/dist/memory-pool/buoyancy.js +0 -12
  130. package/backend/dist/memory-pool/buoyancy.js.map +0 -1
  131. package/backend/dist/memory-pool/global-pool-manager.d.ts +0 -12
  132. package/backend/dist/memory-pool/global-pool-manager.d.ts.map +0 -1
  133. package/backend/dist/memory-pool/global-pool-manager.js +0 -295
  134. package/backend/dist/memory-pool/global-pool-manager.js.map +0 -1
  135. package/backend/dist/memory-pool/pool-lock.d.ts +0 -2
  136. package/backend/dist/memory-pool/pool-lock.d.ts.map +0 -1
  137. package/backend/dist/memory-pool/pool-lock.js +0 -31
  138. package/backend/dist/memory-pool/pool-lock.js.map +0 -1
  139. package/backend/dist/memory-pool/pool-manager.d.ts +0 -57
  140. package/backend/dist/memory-pool/pool-manager.d.ts.map +0 -1
  141. package/backend/dist/memory-pool/pool-manager.js +0 -322
  142. package/backend/dist/memory-pool/pool-manager.js.map +0 -1
  143. package/backend/dist/memory-pool/templates.d.ts +0 -5
  144. package/backend/dist/memory-pool/templates.d.ts.map +0 -1
  145. package/backend/dist/memory-pool/templates.js +0 -234
  146. package/backend/dist/memory-pool/templates.js.map +0 -1
  147. package/backend/dist/memory-pool/types.d.ts +0 -61
  148. package/backend/dist/memory-pool/types.d.ts.map +0 -1
  149. package/backend/dist/memory-pool/types.js +0 -4
  150. package/backend/dist/memory-pool/types.js.map +0 -1
  151. package/backend/dist/plan-control/checker.d.ts +0 -3
  152. package/backend/dist/plan-control/checker.d.ts.map +0 -1
  153. package/backend/dist/plan-control/checker.js +0 -103
  154. package/backend/dist/plan-control/checker.js.map +0 -1
  155. package/backend/dist/plan-control/executor.d.ts +0 -93
  156. package/backend/dist/plan-control/executor.d.ts.map +0 -1
  157. package/backend/dist/plan-control/executor.js +0 -955
  158. package/backend/dist/plan-control/executor.js.map +0 -1
  159. package/backend/dist/plan-control/parser.d.ts +0 -12
  160. package/backend/dist/plan-control/parser.d.ts.map +0 -1
  161. package/backend/dist/plan-control/parser.js +0 -216
  162. package/backend/dist/plan-control/parser.js.map +0 -1
  163. package/backend/dist/plan-control/templates.d.ts +0 -4
  164. package/backend/dist/plan-control/templates.d.ts.map +0 -1
  165. package/backend/dist/plan-control/templates.js +0 -271
  166. package/backend/dist/plan-control/templates.js.map +0 -1
  167. package/backend/dist/plan-control/types.d.ts +0 -102
  168. package/backend/dist/plan-control/types.d.ts.map +0 -1
  169. package/backend/dist/plan-control/types.js +0 -12
  170. package/backend/dist/plan-control/types.js.map +0 -1
  171. package/backend/dist/routes/backup.d.ts +0 -4
  172. package/backend/dist/routes/backup.d.ts.map +0 -1
  173. package/backend/dist/routes/backup.js +0 -274
  174. package/backend/dist/routes/backup.js.map +0 -1
  175. package/backend/dist/routes/flows.d.ts +0 -5
  176. package/backend/dist/routes/flows.d.ts.map +0 -1
  177. package/backend/dist/routes/flows.js +0 -457
  178. package/backend/dist/routes/flows.js.map +0 -1
  179. package/backend/dist/routes/global-flows.d.ts +0 -3
  180. package/backend/dist/routes/global-flows.d.ts.map +0 -1
  181. package/backend/dist/routes/global-flows.js +0 -90
  182. package/backend/dist/routes/global-flows.js.map +0 -1
  183. package/backend/dist/routes/information.d.ts +0 -3
  184. package/backend/dist/routes/information.d.ts.map +0 -1
  185. package/backend/dist/routes/information.js +0 -159
  186. package/backend/dist/routes/information.js.map +0 -1
  187. package/backend/dist/routes/memory-pool.d.ts +0 -3
  188. package/backend/dist/routes/memory-pool.d.ts.map +0 -1
  189. package/backend/dist/routes/memory-pool.js +0 -837
  190. package/backend/dist/routes/memory-pool.js.map +0 -1
  191. package/backend/dist/routes/plan-control.d.ts +0 -15
  192. package/backend/dist/routes/plan-control.d.ts.map +0 -1
  193. package/backend/dist/routes/plan-control.js +0 -337
  194. package/backend/dist/routes/plan-control.js.map +0 -1
  195. package/backend/dist/routes/share.d.ts +0 -3
  196. package/backend/dist/routes/share.d.ts.map +0 -1
  197. package/backend/dist/routes/share.js +0 -167
  198. package/backend/dist/routes/share.js.map +0 -1
  199. package/backend/dist/routes/sounds.d.ts +0 -3
  200. package/backend/dist/routes/sounds.d.ts.map +0 -1
  201. package/backend/dist/routes/sounds.js +0 -285
  202. package/backend/dist/routes/sounds.js.map +0 -1
  203. package/backend/dist/tracks/__tests__/verify-starter-templates.d.ts +0 -24
  204. package/backend/dist/tracks/__tests__/verify-starter-templates.d.ts.map +0 -1
  205. package/backend/dist/tracks/__tests__/verify-starter-templates.js +0 -175
  206. package/backend/dist/tracks/__tests__/verify-starter-templates.js.map +0 -1
  207. package/backend/dist/tracks/__tests__/verify-track-cancel.d.ts +0 -23
  208. package/backend/dist/tracks/__tests__/verify-track-cancel.d.ts.map +0 -1
  209. package/backend/dist/tracks/__tests__/verify-track-cancel.js +0 -153
  210. package/backend/dist/tracks/__tests__/verify-track-cancel.js.map +0 -1
  211. package/backend/dist/tracks/__tests__/verify-track-t1.d.ts +0 -11
  212. package/backend/dist/tracks/__tests__/verify-track-t1.d.ts.map +0 -1
  213. package/backend/dist/tracks/__tests__/verify-track-t1.js +0 -293
  214. package/backend/dist/tracks/__tests__/verify-track-t1.js.map +0 -1
  215. package/backend/dist/tracks/__tests__/verify-track.d.ts +0 -20
  216. package/backend/dist/tracks/__tests__/verify-track.d.ts.map +0 -1
  217. package/backend/dist/tracks/__tests__/verify-track.js +0 -187
  218. package/backend/dist/tracks/__tests__/verify-track.js.map +0 -1
  219. package/backend/dist/tracks/registry.d.ts +0 -61
  220. package/backend/dist/tracks/registry.d.ts.map +0 -1
  221. package/backend/dist/tracks/registry.js +0 -202
  222. package/backend/dist/tracks/registry.js.map +0 -1
  223. package/backend/dist/tracks/track-runner.d.ts +0 -69
  224. package/backend/dist/tracks/track-runner.d.ts.map +0 -1
  225. package/backend/dist/tracks/track-runner.js +0 -158
  226. package/backend/dist/tracks/track-runner.js.map +0 -1
  227. package/backend/dist/tracks/train-loader.d.ts +0 -44
  228. package/backend/dist/tracks/train-loader.d.ts.map +0 -1
  229. package/backend/dist/tracks/train-loader.js +0 -32
  230. package/backend/dist/tracks/train-loader.js.map +0 -1
  231. package/backend/dist/tracks/types-train.d.ts +0 -12
  232. package/backend/dist/tracks/types-train.d.ts.map +0 -1
  233. package/backend/dist/tracks/types-train.js +0 -13
  234. package/backend/dist/tracks/types-train.js.map +0 -1
  235. package/backend/dist/usage-terminal.d.ts +0 -18
  236. package/backend/dist/usage-terminal.d.ts.map +0 -1
  237. package/backend/dist/usage-terminal.js +0 -191
  238. package/backend/dist/usage-terminal.js.map +0 -1
  239. package/frontend/dist/assets/index-GfCaMXPO.css +0 -1
@@ -1,295 +0,0 @@
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
- const fs = __importStar(require("fs"));
48
- const path = __importStar(require("path"));
49
- const os = __importStar(require("os"));
50
- const config_1 = require("../config");
51
- const pool_manager_1 = require("./pool-manager");
52
- const pool_lock_1 = require("./pool-lock");
53
- const buoyancy_1 = require("./buoyancy");
54
- const GLOBAL_POOL_DIR = path.join(os.homedir(), '.ccweb', 'memory-pool');
55
- const SOURCES_FILE = 'sources.json';
56
- // Concurrency guard
57
- let syncInProgress = false;
58
- function getGlobalPoolDir() {
59
- return GLOBAL_POOL_DIR;
60
- }
61
- // ── Sources management ──
62
- function sourcesPath() {
63
- return path.join(GLOBAL_POOL_DIR, SOURCES_FILE);
64
- }
65
- function readSources() {
66
- const file = sourcesPath();
67
- if (!fs.existsSync(file))
68
- return { version: 1, sources: [] };
69
- try {
70
- return JSON.parse(fs.readFileSync(file, 'utf-8'));
71
- }
72
- catch {
73
- return { version: 1, sources: [] };
74
- }
75
- }
76
- function writeSources(data) {
77
- (0, config_1.atomicWriteSync)(sourcesPath(), JSON.stringify(data, null, 2));
78
- }
79
- // ── Global pool init ──
80
- function isGlobalPoolInitialized() {
81
- return fs.existsSync(path.join(GLOBAL_POOL_DIR, 'pool.json'));
82
- }
83
- function ensureGlobalPool() {
84
- if (isGlobalPoolInitialized())
85
- return;
86
- fs.mkdirSync(path.join(GLOBAL_POOL_DIR, 'balls'), { recursive: true });
87
- const now = new Date().toISOString();
88
- const pool = {
89
- version: 2,
90
- t: 0,
91
- lambda: 0.99,
92
- alpha: 1.0,
93
- active_capacity: 40,
94
- surface_width: 10000,
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
- async function registerProject(projectId, projectName, poolPath) {
114
- ensureGlobalPool();
115
- await (0, pool_lock_1.withPoolLock)(GLOBAL_POOL_DIR, () => {
116
- const sources = readSources();
117
- const existing = sources.sources.find((s) => s.pool_path === poolPath);
118
- if (existing) {
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
- }
138
- async function removeSource(projectId) {
139
- let removed = false;
140
- await (0, pool_lock_1.withPoolLock)(GLOBAL_POOL_DIR, () => {
141
- const sources = readSources();
142
- const idx = sources.sources.findIndex((s) => s.project_id === projectId);
143
- if (idx === -1)
144
- return;
145
- sources.sources.splice(idx, 1);
146
- writeSources(sources);
147
- removed = true;
148
- });
149
- return removed;
150
- }
151
- // ── Sync (global operation) ──
152
- async function syncToGlobal() {
153
- if (syncInProgress) {
154
- throw new Error('SYNC_IN_PROGRESS');
155
- }
156
- syncInProgress = true;
157
- try {
158
- return await (0, pool_lock_1.withPoolLock)(GLOBAL_POOL_DIR, () => {
159
- ensureGlobalPool();
160
- const globalPool = readGlobalPool();
161
- const sources = readSources();
162
- const globalT = computeGlobalT(globalPool.initialized_at);
163
- globalPool.t = globalT;
164
- const result = {
165
- added: 0,
166
- updated: 0,
167
- skipped: 0,
168
- orphaned: 0,
169
- unreachable_projects: [],
170
- synced_projects: [],
171
- };
172
- // Build origin lookup: "projectId:ballId" → global ball index
173
- const originMap = new Map();
174
- globalPool.balls.forEach((gb, idx) => {
175
- if (gb.origins) {
176
- for (const o of gb.origins) {
177
- originMap.set(`${o.source_project}:${o.source_ball_id}`, idx);
178
- }
179
- }
180
- });
181
- // Track which origins are still alive (from synced projects only)
182
- const aliveOrigins = new Set();
183
- // Track projects that were actually synced (for orphan detection scoping)
184
- const syncedProjectIds = new Set();
185
- // Step 1 & 2: Collect and merge
186
- for (const source of sources.sources) {
187
- if (source.status === 'unreachable')
188
- continue;
189
- const projectPool = (0, pool_manager_1.readPool)(source.pool_path);
190
- if (!projectPool) {
191
- source.unreachable_count = (source.unreachable_count ?? 0) + 1;
192
- if (source.unreachable_count >= 3) {
193
- source.status = 'unreachable';
194
- }
195
- result.unreachable_projects.push(source.project_name);
196
- continue;
197
- }
198
- // Reset unreachable count on success
199
- source.unreachable_count = 0;
200
- source.last_synced_at = new Date().toISOString();
201
- result.synced_projects.push(source.project_name);
202
- syncedProjectIds.add(source.project_id);
203
- for (const ball of projectPool.balls) {
204
- const originKey = `${source.project_id}:${ball.id}`;
205
- aliveOrigins.add(originKey);
206
- const existingIdx = originMap.get(originKey);
207
- if (existingIdx !== undefined) {
208
- // Already exists — check content change
209
- const globalBall = globalPool.balls[existingIdx];
210
- const projectContent = (0, pool_manager_1.readBallContent)(source.pool_path, ball.id);
211
- const globalContent = (0, pool_manager_1.readBallContent)(GLOBAL_POOL_DIR, globalBall.id);
212
- if (projectContent !== null && projectContent !== globalContent) {
213
- // Content changed — update content, keep global H
214
- (0, pool_manager_1.writeBallContent)(GLOBAL_POOL_DIR, globalBall.id, projectContent);
215
- globalBall.summary = ball.summary;
216
- globalBall.t_last = globalT;
217
- result.updated++;
218
- }
219
- else {
220
- // Touch: refresh t_last
221
- globalBall.t_last = globalT;
222
- result.skipped++;
223
- }
224
- }
225
- else {
226
- // New ball — compute project buoyancy as B0
227
- const projectBuoyancy = (0, buoyancy_1.computeBuoyancy)(ball.B0, ball.H, projectPool.alpha, projectPool.lambda, projectPool.t, ball.t_last, ball.permanent);
228
- const newId = `ball_${String(globalPool.next_id).padStart(4, '0')}`;
229
- globalPool.next_id++;
230
- const newBall = {
231
- id: newId,
232
- type: ball.type,
233
- summary: ball.summary,
234
- B0: Math.round(projectBuoyancy * 100) / 100,
235
- H: 0,
236
- t_last: globalT,
237
- hardness: ball.hardness,
238
- permanent: ball.permanent,
239
- links: [], // Links resolved separately
240
- created_at: ball.created_at,
241
- origins: [{
242
- source_project: source.project_id,
243
- source_ball_id: ball.id,
244
- synced_at: new Date().toISOString(),
245
- }],
246
- };
247
- // Write ball content first (gate pattern)
248
- const content = (0, pool_manager_1.readBallContent)(source.pool_path, ball.id);
249
- if (content !== null) {
250
- (0, pool_manager_1.writeBallContent)(GLOBAL_POOL_DIR, newId, content);
251
- }
252
- globalPool.balls.push(newBall);
253
- originMap.set(originKey, globalPool.balls.length - 1);
254
- result.added++;
255
- }
256
- }
257
- }
258
- // Step 3: Orphan detection (only check origins from synced projects)
259
- for (const gb of globalPool.balls) {
260
- if (!gb.origins || gb.origins.length === 0)
261
- continue;
262
- // Only remove origins whose source project was actually synced and ball is gone
263
- gb.origins = gb.origins.filter((o) => {
264
- if (!syncedProjectIds.has(o.source_project))
265
- return true; // preserve unreachable/unsynced origins
266
- return aliveOrigins.has(`${o.source_project}:${o.source_ball_id}`);
267
- });
268
- if (gb.origins.length === 0 && !gb.orphaned) {
269
- gb.pre_orphan_B0 = gb.B0;
270
- gb.orphaned = true;
271
- gb.B0 = Math.round(gb.B0 * 0.5 * 100) / 100;
272
- result.orphaned++;
273
- }
274
- else if (gb.origins.length > 0 && gb.orphaned) {
275
- // Restore orphaned ball when origins reappear
276
- if (gb.pre_orphan_B0 !== undefined) {
277
- gb.B0 = gb.pre_orphan_B0;
278
- delete gb.pre_orphan_B0;
279
- }
280
- gb.orphaned = false;
281
- }
282
- }
283
- // Step 4: Write pool.json LAST (gate)
284
- (0, pool_manager_1.writePool)(GLOBAL_POOL_DIR, globalPool);
285
- writeSources(sources);
286
- // Step 5: Rebuild global surface.md
287
- (0, pool_manager_1.buildSurface)(GLOBAL_POOL_DIR);
288
- return result;
289
- });
290
- }
291
- finally {
292
- syncInProgress = false;
293
- }
294
- }
295
- //# sourceMappingURL=global-pool-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"global-pool-manager.js","sourceRoot":"","sources":["../../src/memory-pool/global-pool-manager.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare function withPoolLock<T>(poolDir: string, fn: () => T): Promise<T>;
2
- //# sourceMappingURL=pool-lock.d.ts.map
@@ -1 +0,0 @@
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"}
@@ -1,31 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,57 +0,0 @@
1
- import { PoolJson, PoolBallWithBuoyancy } from './types';
2
- export declare function readPool(poolDir: string): PoolJson | null;
3
- export declare function writePool(poolDir: string, pool: PoolJson): void;
4
- export declare function readBallContent(poolDir: string, ballId: string): string | null;
5
- export declare function writeBallContent(poolDir: string, ballId: string, content: string): void;
6
- export declare function enrichBallsWithBuoyancy(pool: PoolJson): PoolBallWithBuoyancy[];
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;
42
- /**
43
- * Migrate from v1 (state.json + index.json + frontmatter balls) to v2 (pool.json + pure content balls).
44
- * Idempotent: if pool.json already exists with version >= 2, returns empty changes.
45
- */
46
- export declare function migrateV1toV2(poolDir: string): {
47
- changes: string[];
48
- };
49
- /**
50
- * Check if pool directory uses v1 format (has state.json but no pool.json).
51
- */
52
- export declare function needsUpgrade(poolDir: string): boolean;
53
- /**
54
- * Check if pool is initialized (either v1 or v2 format).
55
- */
56
- export declare function isInitialized(poolDir: string): boolean;
57
- //# sourceMappingURL=pool-manager.d.ts.map
@@ -1 +0,0 @@
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,CASzD;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"}