@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,322 +0,0 @@
1
- "use strict";
2
- // backend/src/memory-pool/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.readPool = readPool;
38
- exports.writePool = writePool;
39
- exports.readBallContent = readBallContent;
40
- exports.writeBallContent = writeBallContent;
41
- exports.enrichBallsWithBuoyancy = enrichBallsWithBuoyancy;
42
- exports.generateSnapshot = generateSnapshot;
43
- exports.estimateTokens = estimateTokens;
44
- exports.buildSurface = buildSurface;
45
- exports.computeDiameter = computeDiameter;
46
- exports.tickPool = tickPool;
47
- exports.migrateV1toV2 = migrateV1toV2;
48
- exports.needsUpgrade = needsUpgrade;
49
- exports.isInitialized = isInitialized;
50
- const fs = __importStar(require("fs"));
51
- const path = __importStar(require("path"));
52
- const config_1 = require("../config");
53
- const buoyancy_1 = require("./buoyancy");
54
- const POOL_FILE = 'pool.json';
55
- const BALLS_DIR = 'balls';
56
- const FRONTMATTER_RE = /^---\r?\n[\s\S]*?\r?\n---\r?\n?/;
57
- function readPool(poolDir) {
58
- const file = path.join(poolDir, POOL_FILE);
59
- if (!fs.existsSync(file))
60
- return null;
61
- try {
62
- return JSON.parse(fs.readFileSync(file, 'utf-8'));
63
- }
64
- catch (err) {
65
- console.error(`[memory-pool] pool.json corrupt at ${file}:`, err);
66
- return null;
67
- }
68
- }
69
- function writePool(poolDir, pool) {
70
- (0, config_1.atomicWriteSync)(path.join(poolDir, POOL_FILE), JSON.stringify(pool, null, 2));
71
- }
72
- function readBallContent(poolDir, ballId) {
73
- const file = path.join(poolDir, BALLS_DIR, `${ballId}.md`);
74
- if (!fs.existsSync(file))
75
- return null;
76
- try {
77
- return fs.readFileSync(file, 'utf-8');
78
- }
79
- catch {
80
- return null;
81
- }
82
- }
83
- function writeBallContent(poolDir, ballId, content) {
84
- const dir = path.join(poolDir, BALLS_DIR);
85
- if (!fs.existsSync(dir))
86
- fs.mkdirSync(dir, { recursive: true });
87
- (0, config_1.atomicWriteSync)(path.join(dir, `${ballId}.md`), content);
88
- }
89
- function enrichBallsWithBuoyancy(pool) {
90
- const { lambda, alpha, t } = pool;
91
- return pool.balls
92
- .map((ball) => ({
93
- ...ball,
94
- buoyancy: (0, buoyancy_1.computeBuoyancy)(ball.B0, ball.H, alpha, lambda, t, ball.t_last, ball.permanent),
95
- }))
96
- .sort((a, b) => b.buoyancy - a.buoyancy);
97
- }
98
- function generateSnapshot(pool) {
99
- const balls = enrichBallsWithBuoyancy(pool);
100
- const cap = pool.active_capacity;
101
- const active = balls.slice(0, cap);
102
- const deep = balls.slice(cap);
103
- const lines = [`## Memory Pool Snapshot (t=${pool.t})`, '### Active (sorted by buoyancy)'];
104
- active.forEach((b, i) => {
105
- const perm = b.permanent ? ', permanent' : '';
106
- lines.push(`${i + 1}. [${b.type}] ${b.summary} (B=${b.buoyancy.toFixed(1)}${perm})`);
107
- });
108
- if (deep.length > 0) {
109
- const lowest = deep[deep.length - 1].buoyancy;
110
- lines.push(`### Deep (${deep.length} balls, lowest B=${lowest.toFixed(2)})`);
111
- }
112
- return lines.join('\n');
113
- }
114
- // ── Surface builder ──
115
- /**
116
- * Estimate token count from text content (rough: ~4 chars per token for mixed CJK/EN).
117
- */
118
- function estimateTokens(text) {
119
- return Math.ceil(text.length / 4);
120
- }
121
- /**
122
- * Build surface.md — the set of top-buoyancy balls whose total token diameter
123
- * fits within the wedge top width (surface_width). Writes surface.md to poolDir.
124
- * MUST be called within withPoolLock when pool.json may be concurrently modified.
125
- */
126
- function buildSurface(poolDir) {
127
- const pool = readPool(poolDir);
128
- if (!pool)
129
- return { surfaceBalls: [], totalTokens: 0 };
130
- const surfaceWidth = pool.surface_width ?? 10000;
131
- const enriched = enrichBallsWithBuoyancy(pool);
132
- const surfaceBalls = [];
133
- let totalTokens = 0;
134
- for (const ball of enriched) {
135
- // Use cached diameter if available, otherwise read and estimate
136
- let diameter = ball.diameter ?? 0;
137
- if (!diameter) {
138
- const content = readBallContent(poolDir, ball.id);
139
- diameter = content ? estimateTokens(content) : 0;
140
- }
141
- // M-1 fix: skip ghost entries (pool.json has ball but file missing → diameter=0)
142
- if (diameter === 0)
143
- continue;
144
- if (totalTokens + diameter > surfaceWidth && surfaceBalls.length > 0) {
145
- continue; // Skip this ball — try smaller ones that still fit (greedy knapsack)
146
- }
147
- surfaceBalls.push({
148
- id: ball.id,
149
- type: ball.type,
150
- summary: ball.summary,
151
- buoyancy: ball.buoyancy,
152
- diameter,
153
- links: ball.links,
154
- });
155
- totalTokens += diameter;
156
- }
157
- // Write surface.md
158
- const lines = [
159
- `# Memory Pool Surface`,
160
- ``,
161
- `> t=${pool.t} | surface_width=${surfaceWidth} | used≈${totalTokens} tokens | ${surfaceBalls.length}/${pool.balls.length} balls`,
162
- ``,
163
- ];
164
- for (const b of surfaceBalls) {
165
- const linksStr = b.links.length > 0 ? ` → links: ${b.links.join(', ')}` : '';
166
- lines.push(`- **[${b.type}]** ${b.summary} — \`${b.id}\` (B=${b.buoyancy.toFixed(1)}, ~${b.diameter}tok${linksStr})`);
167
- }
168
- lines.push('', `读取内容: \`.memory-pool/balls/{id}.md\``, `探索关系: 通过 links 字段读取关联球`);
169
- (0, config_1.atomicWriteSync)(path.join(poolDir, 'surface.md'), lines.join('\n'));
170
- return { surfaceBalls, totalTokens };
171
- }
172
- /**
173
- * Compute and cache the diameter (token estimate) for a ball.
174
- */
175
- function computeDiameter(poolDir, ballId) {
176
- const content = readBallContent(poolDir, ballId);
177
- return content ? estimateTokens(content) : 0;
178
- }
179
- /**
180
- * Tick the pool: increment t with session-based dedup.
181
- * Returns { t, deduplicated } or null if pool not found.
182
- * MUST be called within withPoolLock to prevent concurrent read-modify-write races.
183
- */
184
- function tickPool(poolDir, session) {
185
- const pool = readPool(poolDir);
186
- if (!pool)
187
- return null;
188
- // Session-based dedup: same session won't tick twice
189
- if (session && pool.last_tick_session === session) {
190
- return { t: pool.t, deduplicated: true };
191
- }
192
- pool.t += 1;
193
- pool.last_tick_at = new Date().toISOString();
194
- if (session)
195
- pool.last_tick_session = session;
196
- writePool(poolDir, pool);
197
- buildSurface(poolDir);
198
- return { t: pool.t, deduplicated: false };
199
- }
200
- /**
201
- * Migrate from v1 (state.json + index.json + frontmatter balls) to v2 (pool.json + pure content balls).
202
- * Idempotent: if pool.json already exists with version >= 2, returns empty changes.
203
- */
204
- function migrateV1toV2(poolDir) {
205
- const changes = [];
206
- // Check if already migrated
207
- const existing = readPool(poolDir);
208
- if (existing && existing.version >= 2)
209
- return { changes };
210
- // Read old state.json
211
- const stateFile = path.join(poolDir, 'state.json');
212
- if (!fs.existsSync(stateFile))
213
- return { changes: ['no state.json found, skipping'] };
214
- let state;
215
- try {
216
- state = JSON.parse(fs.readFileSync(stateFile, 'utf-8'));
217
- }
218
- catch (e) {
219
- throw new Error('state.json is corrupt: ' + (e.message || e));
220
- }
221
- // Read old index.json
222
- const indexFile = path.join(poolDir, 'index.json');
223
- let oldBalls = [];
224
- if (fs.existsSync(indexFile)) {
225
- try {
226
- const idx = JSON.parse(fs.readFileSync(indexFile, 'utf-8'));
227
- oldBalls = idx.balls || [];
228
- }
229
- catch { /* empty */ }
230
- }
231
- // Build ball metadata from index.json entries, enriching with frontmatter data where available
232
- const ballsMeta = oldBalls.map((b) => {
233
- // Try to read created_at from ball frontmatter
234
- let created_at = new Date().toISOString();
235
- const ballFile = path.join(poolDir, BALLS_DIR, `${b.id}.md`);
236
- if (fs.existsSync(ballFile)) {
237
- const raw = fs.readFileSync(ballFile, 'utf-8');
238
- const match = raw.match(/created_at:\s*"?([^"\n]+)"?/);
239
- if (match)
240
- created_at = match[1].trim();
241
- }
242
- return {
243
- id: b.id,
244
- type: b.type || 'project',
245
- summary: b.summary || '',
246
- B0: b.B0 ?? 5,
247
- H: b.H ?? 0,
248
- t_last: b.t_last ?? 0,
249
- hardness: b.hardness ?? 5,
250
- permanent: false,
251
- links: b.links || [],
252
- created_at,
253
- };
254
- });
255
- // Strip frontmatter from ball files FIRST (before writing pool.json as the v2 gate)
256
- const ballsDir = path.join(poolDir, BALLS_DIR);
257
- if (fs.existsSync(ballsDir)) {
258
- const files = fs.readdirSync(ballsDir).filter((f) => f.endsWith('.md'));
259
- let stripped = 0;
260
- for (const file of files) {
261
- try {
262
- const filePath = path.join(ballsDir, file);
263
- const raw = fs.readFileSync(filePath, 'utf-8');
264
- if (raw.startsWith('---')) {
265
- const clean = raw.replace(FRONTMATTER_RE, '').trimStart();
266
- (0, config_1.atomicWriteSync)(filePath, clean);
267
- stripped++;
268
- }
269
- }
270
- catch (e) {
271
- changes.push(`warning: failed to strip frontmatter from ${file}: ${e.message}`);
272
- }
273
- }
274
- if (stripped > 0)
275
- changes.push(`stripped frontmatter from ${stripped} ball files`);
276
- }
277
- // Write pool.json LAST — this is the v2 gate, so partial migration can be retried
278
- const pool = {
279
- version: 2,
280
- t: state.t ?? 0,
281
- lambda: state.lambda ?? 0.97,
282
- alpha: state.alpha ?? 1.0,
283
- active_capacity: state.active_capacity ?? 20,
284
- surface_width: state.surface_width ?? 10000,
285
- next_id: state.next_id ?? 1,
286
- pool: state.pool ?? 'project',
287
- initialized_at: state.initialized_at ?? new Date().toISOString(),
288
- balls: ballsMeta,
289
- };
290
- writePool(poolDir, pool);
291
- changes.push(`created pool.json with ${ballsMeta.length} balls`);
292
- // Backup old files (rename, not delete)
293
- try {
294
- fs.renameSync(stateFile, stateFile + '.v1bak');
295
- changes.push('backed up state.json → state.json.v1bak');
296
- }
297
- catch { /* non-fatal */ }
298
- if (fs.existsSync(indexFile)) {
299
- try {
300
- fs.renameSync(indexFile, indexFile + '.v1bak');
301
- changes.push('backed up index.json → index.json.v1bak');
302
- }
303
- catch { /* non-fatal */ }
304
- }
305
- return { changes };
306
- }
307
- /**
308
- * Check if pool directory uses v1 format (has state.json but no pool.json).
309
- */
310
- function needsUpgrade(poolDir) {
311
- const hasPool = fs.existsSync(path.join(poolDir, POOL_FILE));
312
- const hasState = fs.existsSync(path.join(poolDir, 'state.json'));
313
- return hasState && !hasPool;
314
- }
315
- /**
316
- * Check if pool is initialized (either v1 or v2 format).
317
- */
318
- function isInitialized(poolDir) {
319
- return (fs.existsSync(path.join(poolDir, POOL_FILE)) ||
320
- fs.existsSync(path.join(poolDir, 'state.json')));
321
- }
322
- //# sourceMappingURL=pool-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pool-manager.js","sourceRoot":"","sources":["../../src/memory-pool/pool-manager.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- export declare function generateSpecMd(): string;
2
- export declare function generateQuickRefMd(): string;
3
- export declare function generateClaudeMdBlock(): string;
4
- export declare function generateInformationMdBlock(): string;
5
- //# sourceMappingURL=templates.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/memory-pool/templates.ts"],"names":[],"mappings":"AAEA,wBAAgB,cAAc,IAAI,MAAM,CAgGvC;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CA4F3C;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAiB9C;AAED,wBAAgB,0BAA0B,IAAI,MAAM,CAiBnD"}
@@ -1,234 +0,0 @@
1
- "use strict";
2
- // backend/src/memory-pool/templates.ts
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.generateSpecMd = generateSpecMd;
5
- exports.generateQuickRefMd = generateQuickRefMd;
6
- exports.generateClaudeMdBlock = generateClaudeMdBlock;
7
- exports.generateInformationMdBlock = generateInformationMdBlock;
8
- function generateSpecMd() {
9
- return `# Memory Pool 规范文档 (SPEC.md)
10
-
11
- > 本文档定义了记忆池系统的完整规范。AI 应在执行复杂记忆操作时参考本文档。
12
- > 日常操作请使用 QUICK-REF.md。
13
-
14
- ## 一、核心模型:楔形容器与浮球系统
15
-
16
- 记忆池是一个**楔形容器**——利用物理几何来施加计算层面的容量约束。每条记忆是容器中的一个**浮球**,对应 \`.memory-pool/balls/\` 下的一个 \`.md\` 文件。
17
-
18
- - **活跃层**:浮力最高的 Top-N 个球(N = \`active_capacity\`),AI 每次对话应优先加载
19
- - **表面层(Surface)**:浮力最高且总 token 直径不超过楔形顶部宽度(\`surface_width\`)的球
20
- - **深层**:其余球,不主动加载,但可通过 hit 查询或连线召回
21
- - **永不消失**:浮力趋近于零但永远不为零,任何记忆都可被召回
22
-
23
- ## 二、浮力公式
24
-
25
- \`\`\`
26
- B(t) = (B₀ + α · H) · λ^(t - t_last)
27
- \`\`\`
28
-
29
- | 符号 | 含义 | 来源 |
30
- |------|------|------|
31
- | B₀ | 初始浮力 | 由 ccweb 按类型自动分配 |
32
- | H | 累计命中次数 | ccweb 通过 hit API 自动计数 |
33
- | α | 查询增益系数 | pool.json → alpha(默认 1.0) |
34
- | λ | 衰减率 | pool.json → lambda(默认 0.97) |
35
- | t | 当前全局轮次 | ccweb 通过 hook 自动递增 |
36
- | t_last | 上次访问轮次 | ccweb 通过 hit API 自动更新 |
37
-
38
- **浮力动态计算**:buoyancy 不存储在文件中,每次读取时由后端根据公式实时计算。
39
-
40
- **永久标记**:\`permanent: true\` 的球跳过衰减项。
41
-
42
- ## 三、球的属性
43
-
44
- | 属性 | 字段 | 说明 |
45
- |------|------|------|
46
- | 直径 | \`diameter\` | 内容 token 数估算,由 ccweb 自动计算并缓存 |
47
- | 浮力 | \`B0\`, \`H\`, \`t_last\` | 由公式计算,决定检索优先级 |
48
- | 硬度 | \`hardness\` (0-10) | 抗拆解能力,硬度高的球抵抗分化 |
49
- | 连线 | \`links[]\` | 与其他球的关联(ID 数组) |
50
- | 永久 | \`permanent\` | true 时不参与衰减 |
51
-
52
- ## 四、球的四种类型与默认 B₀
53
-
54
- | 类型 | 默认 B₀ | 用途 |
55
- |------|---------|------|
56
- | \`feedback\` | 9 | 用户纠正、行为反馈——直接影响行为正确性 |
57
- | \`user\` | 6 | 用户身份、偏好、知识背景 |
58
- | \`project\` | 5 | 项目上下文、技术决策、进度状态 |
59
- | \`reference\` | 3 | 外部资源指针(URL、文档位置等) |
60
-
61
- ## 五、文件结构
62
-
63
- \`\`\`
64
- .memory-pool/
65
- ├── pool.json ← ccweb 独占管理(AI 不直接读写)
66
- ├── surface.md ← ccweb 自动生成(活跃层摘要)
67
- ├── balls/ # 球文件,纯 markdown 内容
68
- │ ├── ball_0001.md
69
- │ └── ...
70
- ├── QUICK-REF.md # AI 操作参考(本文档)
71
- └── SPEC.md # 完整规范
72
- \`\`\`
73
-
74
- ## 六、操作流程(通过 ccweb API)
75
-
76
- 所有操作通过 ccweb REST API 完成,AI 不再直接操作 pool.json。
77
-
78
- ### 6.1 创建球
79
- 调用 \`POST /api/memory-pool/{projectId}/balls\`,传入 type、summary、content。
80
- ccweb 自动:分配 ID、设定 B₀、写入 ball.md、更新 pool.json、重建 surface.md。
81
-
82
- ### 6.2 命中查询
83
- 调用 \`POST /api/memory-pool/{projectId}/balls/{ballId}/hit\`。
84
- ccweb 自动:H+=1、t_last=t、返回球内容和关联球摘要。
85
-
86
- ### 6.3 修改球内容
87
- 先 Edit \`balls/ball_XXXX.md\`,然后调用 \`PUT /api/memory-pool/{projectId}/balls/{ballId}\`。
88
- ccweb 自动:重算 diameter、更新 pool.json、重建 surface.md。
89
-
90
- ### 6.4 删除球
91
- 调用 \`DELETE /api/memory-pool/{projectId}/balls/{ballId}\`。
92
- ccweb 自动:删文件、清理 links、更新 pool.json、重建 surface.md。
93
-
94
- ### 6.5 轮次自增
95
- \`t\` 由 ccweb 在 Claude Code Stop hook 事件时自动递增。AI 也可手动调用 \`POST /tick\`。
96
-
97
- ## 七、多容器架构
98
-
99
- - **项目池**(\`pool: "project"\`):\`.memory-pool/\`,\`lambda: 0.97\`
100
- - **全局池**(\`pool: "global"\`):\`~/.ccweb/memory-pool/\`,\`lambda: 0.99\`
101
-
102
- 全局池的 \`t\` 按日历天数递增。AI 通过 \`GET /api/memory-pool/global/surface\` 访问全局记忆,无需导入到项目池。
103
- `;
104
- }
105
- function generateQuickRefMd() {
106
- return `# Memory Pool 快速参考 (QUICK-REF.md)
107
-
108
- > AI 日常操作记忆池时读取此文档。完整规范见 SPEC.md。
109
- > 所有操作通过 ccweb API 完成,**不要直接读写 pool.json**。
110
-
111
- ## 连接发现
112
-
113
- 1. 读取 \`~/.ccweb/port\` 获取当前端口号(如 \`3001\`)
114
- 2. 获取 projectId:\`curl http://localhost:{port}/api/projects\` → 找到当前项目的 \`id\` 字段(UUID 格式)
115
- 3. BASE URL: \`http://localhost:{port}/api/memory-pool/{projectId}\`
116
-
117
- > **注意:** projectId 是 ccweb 分配的 UUID(如 \`1a2df2fe-d956-4d05-b27e-d9c1c30db21a\`),**不是**文件路径。
118
-
119
- 示例:
120
- \`\`\`
121
- curl http://localhost:3001/api/projects # 查 UUID
122
- curl http://localhost:3001/api/memory-pool/{uuid}/surface # 调 API
123
- \`\`\`
124
-
125
- ## API 不可用时的 Fallback
126
-
127
- 如果 ccweb 未运行或 API 返回错误,可直接读写文件:
128
- - 读取活跃层:\`cat .memory-pool/surface.md\`
129
- - 读取球内容:\`cat .memory-pool/balls/ball_XXXX.md\`
130
- - **不要手动修改 pool.json**,等 ccweb 恢复后通过 API 操作
131
-
132
- ## 对话开始
133
-
134
- \`\`\`
135
- GET /surface → 获取活跃层记忆(按浮力排序,受楔形宽度限制)
136
- \`\`\`
137
-
138
- 按需读取具体球:
139
- \`\`\`
140
- POST /balls/{ballId}/hit → 返回内容 + 关联球摘要(自动计数 H+=1)
141
- \`\`\`
142
-
143
- 如需查看全局记忆:
144
- \`\`\`
145
- GET /api/memory-pool/global/surface → 全局活跃层
146
- POST /api/memory-pool/global/balls/{ballId}/hit → 全局球命中查询
147
- \`\`\`
148
-
149
- ## 创建球
150
-
151
- \`\`\`
152
- POST /balls
153
- Body: { "type": "feedback", "summary": "简短摘要", "content": "markdown正文" }
154
- 可选: "links": ["ball_0004"], "b0_override": 8
155
- \`\`\`
156
-
157
- type 决定默认 B₀:feedback=9 | user=6 | project=5 | reference=3
158
-
159
- ## 修改球
160
-
161
- 1. 用 Edit 工具修改 \`.memory-pool/balls/ball_XXXX.md\`
162
- 2. 调用:\`PUT /balls/{ballId}\` Body: \`{ "summary": "新摘要" }\`(summary 可选)
163
-
164
- ## 删除球
165
-
166
- \`\`\`
167
- DELETE /balls/{ballId}
168
- \`\`\`
169
-
170
- ccweb 自动清理其他球对该球的 links 引用。
171
-
172
- ## 管理连线
173
-
174
- \`\`\`
175
- PATCH /balls/{ballId}/links
176
- Body: { "add": ["ball_0007"], "remove": ["ball_0003"] }
177
- \`\`\`
178
-
179
- ## 纯读取(不增加命中计数)
180
-
181
- \`\`\`
182
- GET /ball/{ballId} → 只返回内容,不影响 H 和 t_last
183
- \`\`\`
184
-
185
- ## 轮次管理
186
-
187
- \`t\` 由 ccweb 在对话结束时自动递增(Stop hook)。无需手动操作。
188
-
189
- ## 维护
190
-
191
- \`\`\`
192
- POST /maintenance → 返回分化建议 + 异常检测
193
- \`\`\`
194
-
195
- 分化执行:创建多个新球(POST /balls)→ 删除原球(DELETE /balls/{id})。
196
- `;
197
- }
198
- function generateClaudeMdBlock() {
199
- return `## 记忆池(Memory Pool)
200
-
201
- 本项目已启用记忆池系统,通过 ccweb API 管理。
202
-
203
- **每次对话开始时:**
204
- 1. 读取 \`.memory-pool/QUICK-REF.md\` 了解 API 操作规范(含连接发现方式)
205
- 2. 读取 \`~/.ccweb/port\` 获取端口,通过 \`GET /api/projects\` 查到项目 UUID,拼接 \`http://localhost:{port}/api/memory-pool/{uuid}/surface\` 获取活跃层记忆
206
- 3. 按需调用 \`POST /balls/{ballId}/hit\` 获取具体球内容
207
-
208
- **对话过程中:**
209
- - 遇到重要信息时,通过 \`POST /balls\` 创建新球
210
- - 使用球信息时,通过 \`POST /balls/{ballId}/hit\` 自动计数
211
- - 不要直接读写 pool.json,所有元数据由 ccweb 管理
212
-
213
- **完整规范:** \`.memory-pool/SPEC.md\`
214
- `;
215
- }
216
- function generateInformationMdBlock() {
217
- return `## 信息系统(Information)
218
-
219
- 本项目已启用对话信息系统,ccweb 自动同步聊天记录并支持渐进缩减。
220
-
221
- **查阅对话**:
222
- 1. 读取 \`~/.ccweb/port\` 获取端口,\`GET /api/projects\` 查到项目 UUID
223
- 2. \`GET /api/information/{uuid}/conversations\` 列出近期对话
224
- 3. \`GET /api/information/{uuid}/conversations/{convId}\` 读取对话内容(默认返回最短缩减版)
225
-
226
- **需要更多细节时**:
227
- - 查看标记:\`[c2,30%;c1,60%]\` 表示当前内容是原文的 30%,上一版是 60%
228
- - P% < 40% 的轮次可能有信息损失,通过 \`?version=v1\` 或 \`?version=v0\` 获取更详细版本
229
- - 可以只读取特定轮次:\`?turns=U3,A3\`
230
-
231
- **不需要手动操作**:对话同步、缩减、重整均由 ccweb 自动或用户手动触发,LLM 只需读取。
232
- `;
233
- }
234
- //# sourceMappingURL=templates.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/memory-pool/templates.ts"],"names":[],"mappings":";AAAA,uCAAuC;;AAEvC,wCAgGC;AAED,gDA4FC;AAED,sDAiBC;AAED,gEAiBC;AApOD,SAAgB,cAAc;IAC5B,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8FR,CAAC;AACF,CAAC;AAED,SAAgB,kBAAkB;IAChC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0FR,CAAC;AACF,CAAC;AAED,SAAgB,qBAAqB;IACnC,OAAO;;;;;;;;;;;;;;;CAeR,CAAC;AACF,CAAC;AAED,SAAgB,0BAA0B;IACxC,OAAO;;;;;;;;;;;;;;;CAeR,CAAC;AACF,CAAC"}
@@ -1,61 +0,0 @@
1
- export interface GlobalBallOrigin {
2
- source_project: string;
3
- source_ball_id: string;
4
- synced_at: string;
5
- }
6
- export interface PoolBallMeta {
7
- id: string;
8
- type: 'user' | 'feedback' | 'project' | 'reference';
9
- summary: string;
10
- B0: number;
11
- H: number;
12
- t_last: number;
13
- hardness: number;
14
- permanent: boolean;
15
- links: string[];
16
- created_at: string;
17
- diameter?: number;
18
- origins?: GlobalBallOrigin[];
19
- orphaned?: boolean;
20
- pre_orphan_B0?: number;
21
- }
22
- export interface PoolJson {
23
- version: number;
24
- t: number;
25
- lambda: number;
26
- alpha: number;
27
- active_capacity: number;
28
- surface_width: number;
29
- next_id: number;
30
- pool: string;
31
- initialized_at: string;
32
- balls: PoolBallMeta[];
33
- last_tick_at?: string;
34
- last_tick_session?: string;
35
- global_pool_path?: string;
36
- }
37
- export interface PoolBallWithBuoyancy extends PoolBallMeta {
38
- buoyancy: number;
39
- }
40
- export interface SourceEntry {
41
- project_id: string;
42
- project_name: string;
43
- pool_path: string;
44
- registered_at: string;
45
- last_synced_at: string | null;
46
- status: 'active' | 'unreachable';
47
- unreachable_count?: number;
48
- }
49
- export interface SourcesJson {
50
- version: number;
51
- sources: SourceEntry[];
52
- }
53
- export interface SyncResult {
54
- added: number;
55
- updated: number;
56
- skipped: number;
57
- orphaned: number;
58
- unreachable_projects: string[];
59
- synced_projects: string[];
60
- }
61
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
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;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;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,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,YAAY,EAAE,CAAC;IAEtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,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"}
@@ -1,4 +0,0 @@
1
- "use strict";
2
- // backend/src/memory-pool/types.ts
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/memory-pool/types.ts"],"names":[],"mappings":";AAAA,mCAAmC"}
@@ -1,3 +0,0 @@
1
- import { ASTNode, CheckError } from './types';
2
- export declare function check(ast: ASTNode[]): CheckError[];
3
- //# sourceMappingURL=checker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../../src/plan-control/checker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAG9C,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,CAWlD"}