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

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 (237) hide show
  1. package/CHANGELOG.json +92 -20
  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.map +1 -1
  13. package/backend/dist/hooks-manager.js +19 -3
  14. package/backend/dist/hooks-manager.js.map +1 -1
  15. package/backend/dist/index.d.ts.map +1 -1
  16. package/backend/dist/index.js +53 -1
  17. package/backend/dist/index.js.map +1 -1
  18. package/backend/dist/routes/auth.d.ts +0 -0
  19. package/backend/dist/routes/auth.d.ts.map +0 -0
  20. package/backend/dist/routes/auth.js.map +0 -0
  21. package/backend/dist/routes/projects.d.ts.map +0 -0
  22. package/backend/dist/routes/projects.js.map +0 -0
  23. package/backend/dist/session-manager.d.ts +0 -0
  24. package/backend/dist/session-manager.d.ts.map +0 -0
  25. package/backend/dist/session-manager.js +0 -0
  26. package/backend/dist/session-manager.js.map +0 -0
  27. package/backend/dist/terminal-manager.d.ts +10 -1
  28. package/backend/dist/terminal-manager.d.ts.map +1 -1
  29. package/backend/dist/terminal-manager.js +19 -2
  30. package/backend/dist/terminal-manager.js.map +1 -1
  31. package/backend/dist/types.d.ts +0 -0
  32. package/backend/dist/types.d.ts.map +0 -0
  33. package/backend/dist/types.js +0 -0
  34. package/backend/dist/types.js.map +0 -0
  35. package/bin/ccweb.js +1 -2
  36. package/frontend/dist/assets/{ChatOverlay-Jcso3jnE.js → ChatOverlay-BoPckOLq.js} +1 -1
  37. package/frontend/dist/assets/{ClaudeMemPage-egGwexFX.js → ClaudeMemPage-CeaZSvKE.js} +1 -1
  38. package/frontend/dist/assets/{GraphPreview-CYBEhXG-.js → GraphPreview-Ch6KZFsK.js} +2 -2
  39. package/frontend/dist/assets/{MobilePage-tc43L2Lz.js → MobilePage-JiqI8CSK.js} +3 -3
  40. package/frontend/dist/assets/NotebookPage-Ci_tsAYM.js +13 -0
  41. package/frontend/dist/assets/{OfficePreview-DtFr2tIA.js → OfficePreview-76Lw49uc.js} +2 -2
  42. package/frontend/dist/assets/{PdfPreview-jE4EtPVP.js → PdfPreview-DEsqK0ec.js} +1 -1
  43. package/frontend/dist/assets/{ProjectPage-BURCf2Do.js → ProjectPage-v7j0VJzB.js} +5 -5
  44. package/frontend/dist/assets/{ProjectSettingsPage-BSS5ICpz.js → ProjectSettingsPage-BlxBcXB4.js} +1 -1
  45. package/frontend/dist/assets/{SettingsPage-Bg1PltuQ.js → SettingsPage-eRuTffii.js} +1 -1
  46. package/frontend/dist/assets/{SkillHubPage-Dkfphglo.js → SkillHubPage-DTTbUlQD.js} +1 -1
  47. package/frontend/dist/assets/{check-circle-2-D4xZVklI.js → check-circle-2-CuGGbYqq.js} +1 -1
  48. package/frontend/dist/assets/{chevron-down-Bzyofau8.js → chevron-down-DqJlk-z-.js} +1 -1
  49. package/frontend/dist/assets/chevron-left-ADs1oMLf.js +7 -0
  50. package/frontend/dist/assets/{file-text-eaaujWBr.js → file-text-0i5NEvQ3.js} +1 -1
  51. package/frontend/dist/assets/{index-BRZSUCNz.js → index-BcTWKUVp.js} +1 -1
  52. package/frontend/dist/assets/{index-BXMeGbDt.js → index-BicNGyh6.js} +1 -1
  53. package/frontend/dist/assets/{index-BN_T0UV9.js → index-Bni5vqf8.js} +1 -1
  54. package/frontend/dist/assets/index-BpdaJxoa.css +1 -0
  55. package/frontend/dist/assets/{index-DXjluyd1.js → index-D5jbTY4Z.js} +3 -3
  56. package/frontend/dist/assets/{jszip.min-DPhtdqr8.js → jszip.min-CXhYhQvA.js} +1 -1
  57. package/frontend/dist/assets/{save-B8Uv2Egn.js → save-BFBfbWoK.js} +1 -1
  58. package/frontend/dist/assets/{search-Duax5rfs.js → search-DUINGkQd.js} +1 -1
  59. package/frontend/dist/assets/{select-CbDg1CtL.js → select-DxHj2qKT.js} +1 -1
  60. package/frontend/dist/assets/{tabs-8Bm08Uka.js → tabs-6zanHiRL.js} +1 -1
  61. package/frontend/dist/assets/{textarea-CpK1BCh-.js → textarea-DdVP5OsI.js} +1 -1
  62. package/frontend/dist/index.html +2 -2
  63. package/package.json +36 -10
  64. package/backend/dist/backup/config.d.ts +0 -10
  65. package/backend/dist/backup/config.d.ts.map +0 -1
  66. package/backend/dist/backup/config.js +0 -128
  67. package/backend/dist/backup/config.js.map +0 -1
  68. package/backend/dist/backup/engine.d.ts +0 -22
  69. package/backend/dist/backup/engine.d.ts.map +0 -1
  70. package/backend/dist/backup/engine.js +0 -298
  71. package/backend/dist/backup/engine.js.map +0 -1
  72. package/backend/dist/backup/providers/dropbox.d.ts +0 -25
  73. package/backend/dist/backup/providers/dropbox.d.ts.map +0 -1
  74. package/backend/dist/backup/providers/dropbox.js +0 -320
  75. package/backend/dist/backup/providers/dropbox.js.map +0 -1
  76. package/backend/dist/backup/providers/google-drive.d.ts +0 -29
  77. package/backend/dist/backup/providers/google-drive.d.ts.map +0 -1
  78. package/backend/dist/backup/providers/google-drive.js +0 -303
  79. package/backend/dist/backup/providers/google-drive.js.map +0 -1
  80. package/backend/dist/backup/providers/index.d.ts +0 -3
  81. package/backend/dist/backup/providers/index.d.ts.map +0 -1
  82. package/backend/dist/backup/providers/index.js +0 -19
  83. package/backend/dist/backup/providers/index.js.map +0 -1
  84. package/backend/dist/backup/providers/onedrive.d.ts +0 -29
  85. package/backend/dist/backup/providers/onedrive.d.ts.map +0 -1
  86. package/backend/dist/backup/providers/onedrive.js +0 -317
  87. package/backend/dist/backup/providers/onedrive.js.map +0 -1
  88. package/backend/dist/backup/scheduler.d.ts +0 -6
  89. package/backend/dist/backup/scheduler.d.ts.map +0 -1
  90. package/backend/dist/backup/scheduler.js +0 -55
  91. package/backend/dist/backup/scheduler.js.map +0 -1
  92. package/backend/dist/backup/types.d.ts +0 -73
  93. package/backend/dist/backup/types.d.ts.map +0 -1
  94. package/backend/dist/backup/types.js +0 -4
  95. package/backend/dist/backup/types.js.map +0 -1
  96. package/backend/dist/chat-process-manager.d.ts +0 -45
  97. package/backend/dist/chat-process-manager.d.ts.map +0 -1
  98. package/backend/dist/chat-process-manager.js +0 -258
  99. package/backend/dist/chat-process-manager.js.map +0 -1
  100. package/backend/dist/flows/runner.d.ts +0 -37
  101. package/backend/dist/flows/runner.d.ts.map +0 -1
  102. package/backend/dist/flows/runner.js +0 -660
  103. package/backend/dist/flows/runner.js.map +0 -1
  104. package/backend/dist/flows/store.d.ts +0 -40
  105. package/backend/dist/flows/store.d.ts.map +0 -1
  106. package/backend/dist/flows/store.js +0 -284
  107. package/backend/dist/flows/store.js.map +0 -1
  108. package/backend/dist/flows/types.d.ts +0 -176
  109. package/backend/dist/flows/types.d.ts.map +0 -1
  110. package/backend/dist/flows/types.js +0 -25
  111. package/backend/dist/flows/types.js.map +0 -1
  112. package/backend/dist/information/condenser.d.ts +0 -12
  113. package/backend/dist/information/condenser.d.ts.map +0 -1
  114. package/backend/dist/information/condenser.js +0 -568
  115. package/backend/dist/information/condenser.js.map +0 -1
  116. package/backend/dist/information/conversation-sync.d.ts +0 -22
  117. package/backend/dist/information/conversation-sync.d.ts.map +0 -1
  118. package/backend/dist/information/conversation-sync.js +0 -500
  119. package/backend/dist/information/conversation-sync.js.map +0 -1
  120. package/backend/dist/information/types.d.ts +0 -36
  121. package/backend/dist/information/types.d.ts.map +0 -1
  122. package/backend/dist/information/types.js +0 -4
  123. package/backend/dist/information/types.js.map +0 -1
  124. package/backend/dist/memory-pool/buoyancy.d.ts +0 -2
  125. package/backend/dist/memory-pool/buoyancy.d.ts.map +0 -1
  126. package/backend/dist/memory-pool/buoyancy.js +0 -12
  127. package/backend/dist/memory-pool/buoyancy.js.map +0 -1
  128. package/backend/dist/memory-pool/global-pool-manager.d.ts +0 -12
  129. package/backend/dist/memory-pool/global-pool-manager.d.ts.map +0 -1
  130. package/backend/dist/memory-pool/global-pool-manager.js +0 -295
  131. package/backend/dist/memory-pool/global-pool-manager.js.map +0 -1
  132. package/backend/dist/memory-pool/pool-lock.d.ts +0 -2
  133. package/backend/dist/memory-pool/pool-lock.d.ts.map +0 -1
  134. package/backend/dist/memory-pool/pool-lock.js +0 -31
  135. package/backend/dist/memory-pool/pool-lock.js.map +0 -1
  136. package/backend/dist/memory-pool/pool-manager.d.ts +0 -57
  137. package/backend/dist/memory-pool/pool-manager.d.ts.map +0 -1
  138. package/backend/dist/memory-pool/pool-manager.js +0 -322
  139. package/backend/dist/memory-pool/pool-manager.js.map +0 -1
  140. package/backend/dist/memory-pool/templates.d.ts +0 -5
  141. package/backend/dist/memory-pool/templates.d.ts.map +0 -1
  142. package/backend/dist/memory-pool/templates.js +0 -234
  143. package/backend/dist/memory-pool/templates.js.map +0 -1
  144. package/backend/dist/memory-pool/types.d.ts +0 -61
  145. package/backend/dist/memory-pool/types.d.ts.map +0 -1
  146. package/backend/dist/memory-pool/types.js +0 -4
  147. package/backend/dist/memory-pool/types.js.map +0 -1
  148. package/backend/dist/plan-control/checker.d.ts +0 -3
  149. package/backend/dist/plan-control/checker.d.ts.map +0 -1
  150. package/backend/dist/plan-control/checker.js +0 -103
  151. package/backend/dist/plan-control/checker.js.map +0 -1
  152. package/backend/dist/plan-control/executor.d.ts +0 -93
  153. package/backend/dist/plan-control/executor.d.ts.map +0 -1
  154. package/backend/dist/plan-control/executor.js +0 -955
  155. package/backend/dist/plan-control/executor.js.map +0 -1
  156. package/backend/dist/plan-control/parser.d.ts +0 -12
  157. package/backend/dist/plan-control/parser.d.ts.map +0 -1
  158. package/backend/dist/plan-control/parser.js +0 -216
  159. package/backend/dist/plan-control/parser.js.map +0 -1
  160. package/backend/dist/plan-control/templates.d.ts +0 -4
  161. package/backend/dist/plan-control/templates.d.ts.map +0 -1
  162. package/backend/dist/plan-control/templates.js +0 -271
  163. package/backend/dist/plan-control/templates.js.map +0 -1
  164. package/backend/dist/plan-control/types.d.ts +0 -102
  165. package/backend/dist/plan-control/types.d.ts.map +0 -1
  166. package/backend/dist/plan-control/types.js +0 -12
  167. package/backend/dist/plan-control/types.js.map +0 -1
  168. package/backend/dist/routes/backup.d.ts +0 -4
  169. package/backend/dist/routes/backup.d.ts.map +0 -1
  170. package/backend/dist/routes/backup.js +0 -274
  171. package/backend/dist/routes/backup.js.map +0 -1
  172. package/backend/dist/routes/flows.d.ts +0 -5
  173. package/backend/dist/routes/flows.d.ts.map +0 -1
  174. package/backend/dist/routes/flows.js +0 -457
  175. package/backend/dist/routes/flows.js.map +0 -1
  176. package/backend/dist/routes/global-flows.d.ts +0 -3
  177. package/backend/dist/routes/global-flows.d.ts.map +0 -1
  178. package/backend/dist/routes/global-flows.js +0 -90
  179. package/backend/dist/routes/global-flows.js.map +0 -1
  180. package/backend/dist/routes/information.d.ts +0 -3
  181. package/backend/dist/routes/information.d.ts.map +0 -1
  182. package/backend/dist/routes/information.js +0 -159
  183. package/backend/dist/routes/information.js.map +0 -1
  184. package/backend/dist/routes/memory-pool.d.ts +0 -3
  185. package/backend/dist/routes/memory-pool.d.ts.map +0 -1
  186. package/backend/dist/routes/memory-pool.js +0 -837
  187. package/backend/dist/routes/memory-pool.js.map +0 -1
  188. package/backend/dist/routes/plan-control.d.ts +0 -15
  189. package/backend/dist/routes/plan-control.d.ts.map +0 -1
  190. package/backend/dist/routes/plan-control.js +0 -337
  191. package/backend/dist/routes/plan-control.js.map +0 -1
  192. package/backend/dist/routes/share.d.ts +0 -3
  193. package/backend/dist/routes/share.d.ts.map +0 -1
  194. package/backend/dist/routes/share.js +0 -167
  195. package/backend/dist/routes/share.js.map +0 -1
  196. package/backend/dist/routes/sounds.d.ts +0 -3
  197. package/backend/dist/routes/sounds.d.ts.map +0 -1
  198. package/backend/dist/routes/sounds.js +0 -285
  199. package/backend/dist/routes/sounds.js.map +0 -1
  200. package/backend/dist/tracks/__tests__/verify-starter-templates.d.ts +0 -24
  201. package/backend/dist/tracks/__tests__/verify-starter-templates.d.ts.map +0 -1
  202. package/backend/dist/tracks/__tests__/verify-starter-templates.js +0 -175
  203. package/backend/dist/tracks/__tests__/verify-starter-templates.js.map +0 -1
  204. package/backend/dist/tracks/__tests__/verify-track-cancel.d.ts +0 -23
  205. package/backend/dist/tracks/__tests__/verify-track-cancel.d.ts.map +0 -1
  206. package/backend/dist/tracks/__tests__/verify-track-cancel.js +0 -153
  207. package/backend/dist/tracks/__tests__/verify-track-cancel.js.map +0 -1
  208. package/backend/dist/tracks/__tests__/verify-track-t1.d.ts +0 -11
  209. package/backend/dist/tracks/__tests__/verify-track-t1.d.ts.map +0 -1
  210. package/backend/dist/tracks/__tests__/verify-track-t1.js +0 -293
  211. package/backend/dist/tracks/__tests__/verify-track-t1.js.map +0 -1
  212. package/backend/dist/tracks/__tests__/verify-track.d.ts +0 -20
  213. package/backend/dist/tracks/__tests__/verify-track.d.ts.map +0 -1
  214. package/backend/dist/tracks/__tests__/verify-track.js +0 -187
  215. package/backend/dist/tracks/__tests__/verify-track.js.map +0 -1
  216. package/backend/dist/tracks/registry.d.ts +0 -61
  217. package/backend/dist/tracks/registry.d.ts.map +0 -1
  218. package/backend/dist/tracks/registry.js +0 -202
  219. package/backend/dist/tracks/registry.js.map +0 -1
  220. package/backend/dist/tracks/track-runner.d.ts +0 -69
  221. package/backend/dist/tracks/track-runner.d.ts.map +0 -1
  222. package/backend/dist/tracks/track-runner.js +0 -158
  223. package/backend/dist/tracks/track-runner.js.map +0 -1
  224. package/backend/dist/tracks/train-loader.d.ts +0 -44
  225. package/backend/dist/tracks/train-loader.d.ts.map +0 -1
  226. package/backend/dist/tracks/train-loader.js +0 -32
  227. package/backend/dist/tracks/train-loader.js.map +0 -1
  228. package/backend/dist/tracks/types-train.d.ts +0 -12
  229. package/backend/dist/tracks/types-train.d.ts.map +0 -1
  230. package/backend/dist/tracks/types-train.js +0 -13
  231. package/backend/dist/tracks/types-train.js.map +0 -1
  232. package/backend/dist/usage-terminal.d.ts +0 -18
  233. package/backend/dist/usage-terminal.d.ts.map +0 -1
  234. package/backend/dist/usage-terminal.js +0 -191
  235. package/backend/dist/usage-terminal.js.map +0 -1
  236. package/frontend/dist/assets/NotebookPage-Dy1fFqcp.js +0 -13
  237. package/frontend/dist/assets/index-CgRMBOJu.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"}