cortex-mcp 2.6.0 → 2.7.1

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 (198) hide show
  1. package/CHANGELOG.md +58 -279
  2. package/README.md +224 -393
  3. package/dist/cli/setup.js +60 -58
  4. package/dist/cli/setup.js.map +1 -1
  5. package/dist/config/config.js +2 -2
  6. package/dist/config/config.js.map +1 -1
  7. package/dist/db/database.d.ts +0 -8
  8. package/dist/db/database.d.ts.map +1 -1
  9. package/dist/db/database.js +2 -34
  10. package/dist/db/database.js.map +1 -1
  11. package/dist/db/event-log.d.ts +0 -4
  12. package/dist/db/event-log.d.ts.map +1 -1
  13. package/dist/db/event-log.js +10 -14
  14. package/dist/db/event-log.js.map +1 -1
  15. package/dist/db/memory-store.d.ts +3 -30
  16. package/dist/db/memory-store.d.ts.map +1 -1
  17. package/dist/db/memory-store.js +44 -140
  18. package/dist/db/memory-store.js.map +1 -1
  19. package/dist/embedding-worker.js +1 -1
  20. package/dist/embedding-worker.js.map +1 -1
  21. package/dist/hooks/git-capture.js +3 -3
  22. package/dist/hooks/git-hooks.js +2 -5
  23. package/dist/mcp-stdio.js +3 -34
  24. package/dist/mcp-stdio.js.map +1 -1
  25. package/dist/memory/anticipation-engine.d.ts.map +1 -1
  26. package/dist/memory/anticipation-engine.js +10 -18
  27. package/dist/memory/anticipation-engine.js.map +1 -1
  28. package/dist/memory/auto-learner.d.ts.map +1 -1
  29. package/dist/memory/auto-learner.js +43 -190
  30. package/dist/memory/auto-learner.js.map +1 -1
  31. package/dist/memory/confidence-decay.d.ts.map +1 -1
  32. package/dist/memory/confidence-decay.js +9 -13
  33. package/dist/memory/confidence-decay.js.map +1 -1
  34. package/dist/memory/embedding-manager.d.ts.map +1 -1
  35. package/dist/memory/embedding-manager.js +4 -6
  36. package/dist/memory/embedding-manager.js.map +1 -1
  37. package/dist/memory/export-import.js +2 -2
  38. package/dist/memory/export-import.js.map +1 -1
  39. package/dist/memory/git-memory.d.ts.map +1 -1
  40. package/dist/memory/git-memory.js +26 -20
  41. package/dist/memory/git-memory.js.map +1 -1
  42. package/dist/memory/learning-rate.js +7 -8
  43. package/dist/memory/learning-rate.js.map +1 -1
  44. package/dist/memory/llm-enhancer.d.ts +14 -2
  45. package/dist/memory/llm-enhancer.d.ts.map +1 -1
  46. package/dist/memory/llm-enhancer.js +46 -66
  47. package/dist/memory/llm-enhancer.js.map +1 -1
  48. package/dist/memory/memory-cache.d.ts.map +1 -1
  49. package/dist/memory/memory-cache.js +0 -10
  50. package/dist/memory/memory-cache.js.map +1 -1
  51. package/dist/memory/memory-consolidator.d.ts.map +1 -1
  52. package/dist/memory/memory-consolidator.js +14 -20
  53. package/dist/memory/memory-consolidator.js.map +1 -1
  54. package/dist/memory/memory-decay.d.ts.map +1 -1
  55. package/dist/memory/memory-decay.js +52 -82
  56. package/dist/memory/memory-decay.js.map +1 -1
  57. package/dist/memory/memory-quality.d.ts +1 -1
  58. package/dist/memory/memory-quality.d.ts.map +1 -1
  59. package/dist/memory/memory-quality.js +6 -9
  60. package/dist/memory/memory-quality.js.map +1 -1
  61. package/dist/memory/memory-ranker.d.ts.map +1 -1
  62. package/dist/memory/memory-ranker.js +3 -12
  63. package/dist/memory/memory-ranker.js.map +1 -1
  64. package/dist/memory/meta-memory.js +3 -3
  65. package/dist/memory/meta-memory.js.map +1 -1
  66. package/dist/memory/session-tracker.d.ts +0 -2
  67. package/dist/memory/session-tracker.d.ts.map +1 -1
  68. package/dist/memory/session-tracker.js +8 -26
  69. package/dist/memory/session-tracker.js.map +1 -1
  70. package/dist/memory/temporal-engine.d.ts.map +1 -1
  71. package/dist/memory/temporal-engine.js +13 -9
  72. package/dist/memory/temporal-engine.js.map +1 -1
  73. package/dist/retrieval/hybrid-retriever.d.ts +2 -0
  74. package/dist/retrieval/hybrid-retriever.d.ts.map +1 -1
  75. package/dist/retrieval/hybrid-retriever.js +13 -3
  76. package/dist/retrieval/hybrid-retriever.js.map +1 -1
  77. package/dist/scanners/architecture-graph.js +2 -2
  78. package/dist/scanners/architecture-graph.js.map +1 -1
  79. package/dist/scanners/code-verifier.d.ts +0 -1
  80. package/dist/scanners/code-verifier.d.ts.map +1 -1
  81. package/dist/scanners/code-verifier.js +14 -14
  82. package/dist/scanners/code-verifier.js.map +1 -1
  83. package/dist/scanners/context-builder.d.ts.map +1 -1
  84. package/dist/scanners/context-builder.js +45 -33
  85. package/dist/scanners/context-builder.js.map +1 -1
  86. package/dist/scanners/export-map.js +2 -2
  87. package/dist/scanners/export-map.js.map +1 -1
  88. package/dist/scanners/project-scanner.js +2 -2
  89. package/dist/scanners/project-scanner.js.map +1 -1
  90. package/dist/security/encryption.js +1 -1
  91. package/dist/security/encryption.js.map +1 -1
  92. package/dist/security/feature-gate.d.ts.map +1 -1
  93. package/dist/security/feature-gate.js +20 -62
  94. package/dist/security/feature-gate.js.map +1 -1
  95. package/dist/security/license.js +35 -282
  96. package/dist/security/license.js.map +1 -1
  97. package/dist/security/rate-limiter.d.ts +3 -4
  98. package/dist/security/rate-limiter.d.ts.map +1 -1
  99. package/dist/security/rate-limiter.js +29 -11
  100. package/dist/security/rate-limiter.js.map +1 -1
  101. package/dist/server/dashboard.js +327 -166
  102. package/dist/server/dashboard.js.map +1 -1
  103. package/dist/server/mcp-handler.d.ts.map +1 -1
  104. package/dist/server/mcp-handler.js +827 -1002
  105. package/dist/server/mcp-handler.js.map +1 -1
  106. package/package.json +8 -18
  107. package/dist/memory/access-pattern-tracker.d.ts +0 -51
  108. package/dist/memory/access-pattern-tracker.d.ts.map +0 -1
  109. package/dist/memory/access-pattern-tracker.js +0 -92
  110. package/dist/memory/access-pattern-tracker.js.map +0 -1
  111. package/dist/memory/completion-resolver.d.ts +0 -38
  112. package/dist/memory/completion-resolver.d.ts.map +0 -1
  113. package/dist/memory/completion-resolver.js +0 -127
  114. package/dist/memory/completion-resolver.js.map +0 -1
  115. package/dist/memory/convention-detector.d.ts +0 -11
  116. package/dist/memory/convention-detector.d.ts.map +0 -1
  117. package/dist/memory/convention-detector.js +0 -294
  118. package/dist/memory/convention-detector.js.map +0 -1
  119. package/dist/memory/correction-detector.d.ts +0 -33
  120. package/dist/memory/correction-detector.d.ts.map +0 -1
  121. package/dist/memory/correction-detector.js +0 -129
  122. package/dist/memory/correction-detector.js.map +0 -1
  123. package/dist/memory/cross-memory-linker.d.ts +0 -18
  124. package/dist/memory/cross-memory-linker.d.ts.map +0 -1
  125. package/dist/memory/cross-memory-linker.js +0 -115
  126. package/dist/memory/cross-memory-linker.js.map +0 -1
  127. package/dist/memory/daily-diary.d.ts +0 -30
  128. package/dist/memory/daily-diary.d.ts.map +0 -1
  129. package/dist/memory/daily-diary.js +0 -159
  130. package/dist/memory/daily-diary.js.map +0 -1
  131. package/dist/memory/embedding-cache.d.ts +0 -32
  132. package/dist/memory/embedding-cache.d.ts.map +0 -1
  133. package/dist/memory/embedding-cache.js +0 -76
  134. package/dist/memory/embedding-cache.js.map +0 -1
  135. package/dist/memory/error-learner.d.ts +0 -26
  136. package/dist/memory/error-learner.d.ts.map +0 -1
  137. package/dist/memory/error-learner.js +0 -145
  138. package/dist/memory/error-learner.js.map +0 -1
  139. package/dist/memory/file-relationships.d.ts +0 -47
  140. package/dist/memory/file-relationships.d.ts.map +0 -1
  141. package/dist/memory/file-relationships.js +0 -130
  142. package/dist/memory/file-relationships.js.map +0 -1
  143. package/dist/memory/impact-analyzer.d.ts +0 -16
  144. package/dist/memory/impact-analyzer.d.ts.map +0 -1
  145. package/dist/memory/impact-analyzer.js +0 -189
  146. package/dist/memory/impact-analyzer.js.map +0 -1
  147. package/dist/memory/instructions-generator.d.ts +0 -30
  148. package/dist/memory/instructions-generator.d.ts.map +0 -1
  149. package/dist/memory/instructions-generator.js +0 -117
  150. package/dist/memory/instructions-generator.js.map +0 -1
  151. package/dist/memory/memory-export-md.d.ts +0 -12
  152. package/dist/memory/memory-export-md.d.ts.map +0 -1
  153. package/dist/memory/memory-export-md.js +0 -188
  154. package/dist/memory/memory-export-md.js.map +0 -1
  155. package/dist/memory/mmr-reranker.d.ts +0 -39
  156. package/dist/memory/mmr-reranker.d.ts.map +0 -1
  157. package/dist/memory/mmr-reranker.js +0 -115
  158. package/dist/memory/mmr-reranker.js.map +0 -1
  159. package/dist/memory/pre-flight.d.ts +0 -24
  160. package/dist/memory/pre-flight.d.ts.map +0 -1
  161. package/dist/memory/pre-flight.js +0 -121
  162. package/dist/memory/pre-flight.js.map +0 -1
  163. package/dist/memory/preference-learner.d.ts +0 -28
  164. package/dist/memory/preference-learner.d.ts.map +0 -1
  165. package/dist/memory/preference-learner.js +0 -144
  166. package/dist/memory/preference-learner.js.map +0 -1
  167. package/dist/memory/query-expansion.d.ts +0 -28
  168. package/dist/memory/query-expansion.d.ts.map +0 -1
  169. package/dist/memory/query-expansion.js +0 -140
  170. package/dist/memory/query-expansion.js.map +0 -1
  171. package/dist/memory/regression-guard.d.ts +0 -35
  172. package/dist/memory/regression-guard.d.ts.map +0 -1
  173. package/dist/memory/regression-guard.js +0 -90
  174. package/dist/memory/regression-guard.js.map +0 -1
  175. package/dist/memory/resume-work.d.ts +0 -37
  176. package/dist/memory/resume-work.d.ts.map +0 -1
  177. package/dist/memory/resume-work.js +0 -141
  178. package/dist/memory/resume-work.js.map +0 -1
  179. package/dist/memory/soul-manager.d.ts +0 -30
  180. package/dist/memory/soul-manager.d.ts.map +0 -1
  181. package/dist/memory/soul-manager.js +0 -171
  182. package/dist/memory/soul-manager.js.map +0 -1
  183. package/dist/memory/success-tracker.d.ts +0 -33
  184. package/dist/memory/success-tracker.d.ts.map +0 -1
  185. package/dist/memory/success-tracker.js +0 -75
  186. package/dist/memory/success-tracker.js.map +0 -1
  187. package/dist/memory/tool-recommender.d.ts +0 -29
  188. package/dist/memory/tool-recommender.d.ts.map +0 -1
  189. package/dist/memory/tool-recommender.js +0 -117
  190. package/dist/memory/tool-recommender.js.map +0 -1
  191. package/dist/memory/usage-stats.d.ts +0 -98
  192. package/dist/memory/usage-stats.d.ts.map +0 -1
  193. package/dist/memory/usage-stats.js +0 -345
  194. package/dist/memory/usage-stats.js.map +0 -1
  195. package/dist/utils/extract-tags.d.ts +0 -16
  196. package/dist/utils/extract-tags.d.ts.map +0 -1
  197. package/dist/utils/extract-tags.js +0 -40
  198. package/dist/utils/extract-tags.js.map +0 -1
@@ -44,313 +44,66 @@ exports.saveKey = saveKey;
44
44
  exports.validateKeyFormat = validateKeyFormat;
45
45
  exports.verifyOnline = verifyOnline;
46
46
  /**
47
- * License validation online-first, secure.
47
+ * License — Cortex is 100% FREE.
48
+ *
49
+ * Every user gets full PRO-level access.
50
+ * No license keys. No online verification. No paywalls.
51
+ * This module exists only for API compatibility.
48
52
  */
49
53
  const fs = __importStar(require("fs"));
50
54
  const path = __importStar(require("path"));
51
55
  const os = __importStar(require("os"));
52
- const crypto = __importStar(require("crypto"));
53
- const https = __importStar(require("https"));
54
- const API_BASE = process.env.CORTEX_API_URL || 'https://cortex-ai-iota.vercel.app';
55
- const VERIFY_URL = `${API_BASE}/api/auth/verify`;
56
- const DASHBOARD_URL = `${API_BASE}/dashboard`;
56
+
57
57
  const CORTEX_DIR = path.join(os.homedir(), '.cortex');
58
- const CACHE_FILE = path.join(CORTEX_DIR, 'license-cache.json');
59
- const KEY_FILE = path.join(CORTEX_DIR, '.cache-key');
60
- const CACHE_TTL_HOURS = 24;
61
- const MAX_RESPONSE_BYTES = 4096;
62
- let cachedLicense = null;
63
- let _initPromise = null;
64
- // ─── HMAC Key Per-Machine Random Secret ─────────────────────────────────────
65
- // A 32-byte cryptographically random key is generated ONCE and persisted
66
- // to ~/.cortex/.cache-key (mode 0600). If the file is missing or unreadable,
67
- // a NEW random key is generated each time (cache simply won't persist across
68
- // restarts until the filesystem issue is resolved — this is intentionally
69
- // secure-by-default: no predictable fallback exists).
70
- let _hmacKey = null;
71
- function getCacheHmacKey() {
72
- if (_hmacKey)
73
- return _hmacKey;
74
- try {
75
- ensureDir();
76
- // Try to read existing key
77
- if (fs.existsSync(KEY_FILE)) {
78
- const existing = fs.readFileSync(KEY_FILE, 'utf-8').trim();
79
- if (existing.length >= 64) {
80
- _hmacKey = existing;
81
- return _hmacKey;
82
- }
83
- }
84
- // No valid key on disk — generate and persist a new one
85
- const fresh = crypto.randomBytes(32).toString('hex');
86
- fs.writeFileSync(KEY_FILE, fresh, { encoding: 'utf-8', mode: 0o600 });
87
- _hmacKey = fresh;
88
- return _hmacKey;
89
- }
90
- catch {
91
- // Filesystem failure — use an ephemeral random key for this session.
92
- // Cache won't persist across restarts, but integrity is never compromised.
93
- _hmacKey = crypto.randomBytes(32).toString('hex');
94
- return _hmacKey;
95
- }
96
- }
97
- // ─── Public API ───────────────────────────────────────────────────────────────
98
- /**
99
- * Synchronous license accessor. Returns the cached license state.
100
- *
101
- * On the very first call (cold start with no disk cache), this returns
102
- * the HMAC-signed cached result if available. If no cache exists, it
103
- * starts background verification and returns a "verifying" state.
104
- *
105
- * For guaranteed accurate results at startup, call `waitForVerification()`
106
- * first — it blocks until the server responds (with a configurable timeout).
107
- */
58
+
59
+ // ─── Always return full access ────────────────────────────────────────────────
60
+ const FULL_ACCESS = {
61
+ plan: 'PRO',
62
+ key: 'CORTEX-FREE-FULL-ACCESS-OPEN',
63
+ valid: true,
64
+ message: 'Cortex 100% free, all features unlocked.',
65
+ };
66
+
108
67
  function getLicense() {
109
- if (cachedLicense)
110
- return cachedLicense;
111
- cachedLicense = detectLicense();
112
- return cachedLicense;
68
+ return FULL_ACCESS;
113
69
  }
114
- /**
115
- * Async startup helper — waits for online verification to finish.
116
- * Call this ONCE at startup, then use getLicense() synchronously afterwards.
117
- *
118
- * After this resolves, `getLicense()` will return the server-verified plan
119
- * (PRO, TRIAL, or FREE) rather than the cold-start "verifying" state.
120
- */
70
+
121
71
  async function waitForVerification(timeoutMs = 5000) {
122
- // Ensure detectLicense runs first (sets up _initPromise if needed)
123
- getLicense();
124
- if (_initPromise) {
125
- try {
126
- const result = await Promise.race([
127
- _initPromise,
128
- new Promise((r) => setTimeout(() => r(null), timeoutMs)),
129
- ]);
130
- if (result) {
131
- cachedLicense = result;
132
- return result;
133
- }
134
- }
135
- catch { /* timeout or network failure — fall through */ }
136
- }
137
- return getLicense();
72
+ return FULL_ACCESS;
138
73
  }
74
+
139
75
  function refreshLicense() {
140
- cachedLicense = null;
141
- _initPromise = null;
142
- return getLicense();
76
+ return FULL_ACCESS;
143
77
  }
78
+
144
79
  function isPro() {
145
- const l = getLicense();
146
- return l.plan === 'PRO' || l.plan === 'TRIAL';
80
+ return true; // Always PRO — everything is free
147
81
  }
82
+
148
83
  function isFree() {
149
- return getLicense().plan === 'FREE';
84
+ return false; // Never "free tier" — everyone gets full access
150
85
  }
86
+
151
87
  function isTrial() {
152
- return getLicense().plan === 'TRIAL';
88
+ return false;
153
89
  }
90
+
154
91
  function getTrialStatus() {
155
- const l = getLicense();
156
- if (l.plan !== 'TRIAL')
157
- return null;
158
- if (l.daysRemaining === undefined)
159
- return null;
160
- if (l.daysRemaining <= 0)
161
- return `Trial expired. Upgrade at ${DASHBOARD_URL}`;
162
- if (l.daysRemaining <= 2)
163
- return `Trial expires in ${l.daysRemaining}d. Upgrade: ${DASHBOARD_URL}`;
164
- return `Trial: ${l.daysRemaining}d remaining`;
92
+ return null;
165
93
  }
94
+
166
95
  function saveKey(key) {
167
- ensureDir();
168
- fs.writeFileSync(path.join(CORTEX_DIR, 'license'), key.trim(), 'utf-8');
169
- clearCache();
170
- refreshLicense();
96
+ // No-op — no license keys needed
171
97
  }
98
+
172
99
  function validateKeyFormat(key) {
173
- if (!key)
174
- return false;
175
- return /^CORTEX-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}$/.test(key.trim().toUpperCase());
100
+ return true;
176
101
  }
177
- // ─── Online Verification ──────────────────────────────────────────────────────
102
+
178
103
  async function verifyOnline(key) {
179
- return new Promise((resolve) => {
180
- let settled = false;
181
- function settle(value) {
182
- if (settled)
183
- return;
184
- settled = true;
185
- resolve(value);
186
- }
187
- try {
188
- const url = new URL(VERIFY_URL);
189
- const body = JSON.stringify({ licenseKey: key });
190
- const req = https.request({
191
- hostname: url.hostname,
192
- port: 443,
193
- path: url.pathname,
194
- method: 'POST',
195
- headers: {
196
- 'Content-Type': 'application/json',
197
- 'Content-Length': Buffer.byteLength(body),
198
- },
199
- timeout: 8000,
200
- }, (res) => {
201
- let totalBytes = 0;
202
- const chunks = [];
203
- res.on('data', (chunk) => {
204
- // Enforce response size limit BEFORE accumulating
205
- const incoming = Buffer.isBuffer(chunk) ? chunk.length : Buffer.byteLength(String(chunk));
206
- if (totalBytes + incoming > MAX_RESPONSE_BYTES) {
207
- res.destroy();
208
- settle(readCacheOrFree(key));
209
- return;
210
- }
211
- totalBytes += incoming;
212
- chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(String(chunk)));
213
- });
214
- res.on('end', () => {
215
- try {
216
- const data = Buffer.concat(chunks, totalBytes).toString('utf-8');
217
- const json = JSON.parse(data);
218
- const result = parseServerResponse(json, key);
219
- writeCache(result);
220
- cachedLicense = result;
221
- settle(result);
222
- }
223
- catch {
224
- settle(readCacheOrFree(key));
225
- }
226
- });
227
- res.on('error', () => settle(readCacheOrFree(key)));
228
- });
229
- req.on('error', () => settle(readCacheOrFree(key)));
230
- req.on('timeout', () => { req.destroy(); settle(readCacheOrFree(key)); });
231
- req.write(body);
232
- req.end();
233
- }
234
- catch {
235
- settle(readCacheOrFree(key));
236
- }
237
- });
238
- }
239
- // ─── Internal ─────────────────────────────────────────────────────────────────
240
- function detectLicense() {
241
- const key = readKeyFromDisk();
242
- // Fast path: HMAC-verified cache is present and matches the current key.
243
- // This returns the real plan (PRO/TRIAL/FREE) from the last server response.
244
- const cached = readCache();
245
- if (cached && cached.key === key)
246
- return cached;
247
- if (!key) {
248
- return { plan: 'FREE', key: null, valid: false, message: `Free plan. Upgrade: ${API_BASE}` };
249
- }
250
- if (!validateKeyFormat(key)) {
251
- return { plan: 'FREE', key, valid: false, message: 'Invalid license key format' };
252
- }
253
- // No valid cache — fire async verification, store promise for waitForVerification()
254
- _initPromise = verifyOnline(key);
255
- _initPromise.catch(() => { });
256
- return {
257
- plan: 'FREE',
258
- key,
259
- valid: false,
260
- message: 'Verifying license...',
261
- };
262
- }
263
- function parseServerResponse(json, key) {
264
- if (!json || typeof json !== 'object') {
265
- return { plan: 'FREE', key, valid: false, message: 'Invalid server response' };
266
- }
267
- if (!json.valid) {
268
- const errMsg = typeof json.error === 'string' ? json.error.slice(0, 200) : 'License not valid';
269
- return { plan: 'FREE', key, valid: false, message: errMsg };
270
- }
271
- const rawPlan = typeof json.plan === 'string' ? json.plan.toUpperCase() : '';
272
- const plan = rawPlan === 'PRO' ? 'PRO' : rawPlan === 'TRIAL' ? 'TRIAL' : 'FREE';
273
- const result = { plan, key, valid: true, message: `${plan} license verified` };
274
- if (typeof json.expiresAt === 'string') {
275
- result.expiresAt = json.expiresAt.slice(0, 30);
276
- const expiryMs = new Date(json.expiresAt).getTime();
277
- if (!isNaN(expiryMs)) {
278
- result.daysRemaining = Math.max(0, Math.ceil((expiryMs - Date.now()) / 86400000));
279
- if (plan === 'TRIAL' && result.daysRemaining <= 0) {
280
- result.plan = 'FREE';
281
- result.valid = false;
282
- result.message = 'Trial expired';
283
- }
284
- }
285
- }
286
- return result;
287
- }
288
- function readKeyFromDisk() {
289
- const envKey = process.env.CORTEX_LICENSE_KEY?.trim();
290
- if (envKey)
291
- return envKey;
292
- try {
293
- const f = path.join(CORTEX_DIR, 'license');
294
- if (fs.existsSync(f))
295
- return fs.readFileSync(f, 'utf-8').trim() || null;
296
- }
297
- catch { }
298
- return null;
299
- }
300
- // ─── Signed Cache ─────────────────────────────────────────────────────────────
301
- function computeHmac(data) {
302
- return crypto.createHmac('sha256', getCacheHmacKey()).update(data).digest('hex');
303
- }
304
- function writeCache(info) {
305
- try {
306
- ensureDir();
307
- const payload = JSON.stringify({ ...info, ts: Date.now() });
308
- const sig = computeHmac(payload);
309
- fs.writeFileSync(CACHE_FILE, JSON.stringify({ payload, sig }), 'utf-8');
310
- }
311
- catch { }
312
- }
313
- function readCache() {
314
- try {
315
- if (!fs.existsSync(CACHE_FILE))
316
- return null;
317
- const raw = JSON.parse(fs.readFileSync(CACHE_FILE, 'utf-8'));
318
- if (!raw.payload || !raw.sig)
319
- return null;
320
- if (computeHmac(raw.payload) !== raw.sig) {
321
- clearCache();
322
- return null;
323
- }
324
- const data = JSON.parse(raw.payload);
325
- if ((Date.now() - data.ts) / 3600000 > CACHE_TTL_HOURS)
326
- return null;
327
- if (data.expiresAt) {
328
- data.daysRemaining = Math.max(0, Math.ceil((new Date(data.expiresAt).getTime() - Date.now()) / 86400000));
329
- if (data.plan === 'TRIAL' && data.daysRemaining <= 0) {
330
- data.plan = 'FREE';
331
- data.valid = false;
332
- data.message = 'Trial expired';
333
- }
334
- }
335
- return data;
336
- }
337
- catch {
338
- return null;
339
- }
340
- }
341
- function readCacheOrFree(key) {
342
- const c = readCache();
343
- if (c && c.key === key)
344
- return c;
345
- return { plan: 'FREE', key, valid: false, message: 'Offline — license pending verification' };
346
- }
347
- function clearCache() {
348
- try {
349
- if (fs.existsSync(CACHE_FILE))
350
- fs.unlinkSync(CACHE_FILE);
351
- }
352
- catch { }
104
+ return FULL_ACCESS;
353
105
  }
106
+
354
107
  function ensureDir() {
355
108
  if (!fs.existsSync(CORTEX_DIR))
356
109
  fs.mkdirSync(CORTEX_DIR, { recursive: true });
@@ -1 +1 @@
1
- {"version":3,"file":"license.js","sourceRoot":"","sources":["../../src/security/license.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"license.js","sourceRoot":"","sources":["../../src/security/license.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,9 @@
2
2
  * Rate Limiter — Prevents unbounded memory storage per session.
3
3
  *
4
4
  * Limits:
5
- * - Max 100 memories stored per session (resets on server restart)
6
- * - Max 500 auto_learn calls per session
7
- * - Max 2000 total tool calls per session
5
+ * - Max 30 memories stored per session (resets on server restart)
6
+ * - Max 100 auto_learn calls per session
7
+ * - Max 500 total tool calls per session
8
8
  */
9
9
  export declare function checkRateLimit(operation: 'store' | 'auto_learn' | 'call'): {
10
10
  allowed: boolean;
@@ -15,7 +15,6 @@ export declare function getRateLimitStats(): {
15
15
  autoLearnCount: number;
16
16
  totalCalls: number;
17
17
  uptime: number;
18
- storeLimit: number;
19
18
  };
20
19
  export declare function resetRateLimits(): void;
21
20
  //# sourceMappingURL=rate-limiter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limiter.d.ts","sourceRoot":"","sources":["../../src/security/rate-limiter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAsBH,wBAAgB,cAAc,CAAC,SAAS,EAAE,OAAO,GAAG,YAAY,GAAG,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAsBhH;AAED,wBAAgB,iBAAiB,IAAI;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAQ1I;AAED,wBAAgB,eAAe,IAAI,IAAI,CAOtC"}
1
+ {"version":3,"file":"rate-limiter.d.ts","sourceRoot":"","sources":["../../src/security/rate-limiter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAsBH,wBAAgB,cAAc,CAAC,SAAS,EAAE,OAAO,GAAG,YAAY,GAAG,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAsBhH;AAED,wBAAgB,iBAAiB,IAAI;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAOtH;AAED,wBAAgB,eAAe,IAAI,IAAI,CAOtC"}
@@ -2,52 +2,69 @@
2
2
  /**
3
3
  * Rate Limiter — Prevents unbounded memory storage per session.
4
4
  *
5
- * Limits:
6
- * - Max 100 memories stored per session (resets on server restart)
7
- * - Max 500 auto_learn calls per session
8
- * - Max 2000 total tool calls per session
5
+ * Limits (auto-reset every 24 hours):
6
+ * - Max 500 memories stored per 24h window
7
+ * - Max 1000 auto_learn calls per 24h window
8
+ * - Max 5000 total tool calls per 24h window
9
9
  */
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
11
  exports.checkRateLimit = checkRateLimit;
12
12
  exports.getRateLimitStats = getRateLimitStats;
13
13
  exports.resetRateLimits = resetRateLimits;
14
14
  const LIMITS = {
15
- MAX_STORES_PER_SESSION: 100,
16
- MAX_AUTO_LEARN_PER_SESSION: 500,
17
- MAX_CALLS_PER_SESSION: 2000,
15
+ MAX_STORES_PER_SESSION: 500,
16
+ MAX_AUTO_LEARN_PER_SESSION: 1000,
17
+ MAX_CALLS_PER_SESSION: 5000,
18
18
  };
19
+ const RESET_INTERVAL_MS = 24 * 60 * 60 * 1000; // 24 hours
19
20
  let state = {
20
21
  storeCount: 0,
21
22
  autoLearnCount: 0,
22
23
  totalCalls: 0,
23
24
  sessionStart: Date.now(),
25
+ lastReset: Date.now(),
24
26
  };
27
+ /** Auto-reset every 24 hours — users are never permanently locked out */
28
+ function maybeAutoReset() {
29
+ if (Date.now() - state.lastReset >= RESET_INTERVAL_MS) {
30
+ state = {
31
+ storeCount: 0,
32
+ autoLearnCount: 0,
33
+ totalCalls: 0,
34
+ sessionStart: state.sessionStart, // keep original start time
35
+ lastReset: Date.now(),
36
+ };
37
+ }
38
+ }
25
39
  function checkRateLimit(operation) {
40
+ maybeAutoReset();
26
41
  state.totalCalls++;
27
42
  if (state.totalCalls > LIMITS.MAX_CALLS_PER_SESSION) {
28
- return { allowed: false, reason: `Session limit reached (${LIMITS.MAX_CALLS_PER_SESSION} total calls). Restart server to reset.` };
43
+ return { allowed: false, reason: `Daily call limit reached (${LIMITS.MAX_CALLS_PER_SESSION}). Resets automatically every 24h.` };
29
44
  }
30
45
  if (operation === 'store') {
31
46
  state.storeCount++;
32
47
  if (state.storeCount > LIMITS.MAX_STORES_PER_SESSION) {
33
- return { allowed: false, reason: `Memory store limit reached (${LIMITS.MAX_STORES_PER_SESSION}/session). Prevents DB bloat.` };
48
+ return { allowed: false, reason: `Memory store limit reached (${LIMITS.MAX_STORES_PER_SESSION}/day). Resets automatically every 24h.` };
34
49
  }
35
50
  }
36
51
  if (operation === 'auto_learn') {
37
52
  state.autoLearnCount++;
38
53
  if (state.autoLearnCount > LIMITS.MAX_AUTO_LEARN_PER_SESSION) {
39
- return { allowed: false, reason: `Auto-learn limit reached (${LIMITS.MAX_AUTO_LEARN_PER_SESSION}/session).` };
54
+ return { allowed: false, reason: `Auto-learn limit reached (${LIMITS.MAX_AUTO_LEARN_PER_SESSION}/day). Resets automatically every 24h.` };
40
55
  }
41
56
  }
42
57
  return { allowed: true };
43
58
  }
44
59
  function getRateLimitStats() {
60
+ maybeAutoReset();
61
+ const nextResetMs = RESET_INTERVAL_MS - (Date.now() - state.lastReset);
45
62
  return {
46
63
  storeCount: state.storeCount,
47
64
  autoLearnCount: state.autoLearnCount,
48
65
  totalCalls: state.totalCalls,
49
66
  uptime: Math.floor((Date.now() - state.sessionStart) / 1000),
50
- storeLimit: LIMITS.MAX_STORES_PER_SESSION,
67
+ nextResetIn: Math.floor(nextResetMs / (60 * 1000)) + ' minutes',
51
68
  };
52
69
  }
53
70
  function resetRateLimits() {
@@ -56,6 +73,7 @@ function resetRateLimits() {
56
73
  autoLearnCount: 0,
57
74
  totalCalls: 0,
58
75
  sessionStart: Date.now(),
76
+ lastReset: Date.now(),
59
77
  };
60
78
  }
61
79
  //# sourceMappingURL=rate-limiter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limiter.js","sourceRoot":"","sources":["../../src/security/rate-limiter.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAsBH,wCAsBC;AAED,8CAQC;AAED,0CAOC;AAtDD,MAAM,MAAM,GAAG;IACX,sBAAsB,EAAE,GAAG;IAC3B,0BAA0B,EAAE,GAAG;IAC/B,qBAAqB,EAAE,IAAI;CAC9B,CAAC;AAEF,IAAI,KAAK,GAAmB;IACxB,UAAU,EAAE,CAAC;IACb,cAAc,EAAE,CAAC;IACjB,UAAU,EAAE,CAAC;IACb,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE;CAC3B,CAAC;AAEF,SAAgB,cAAc,CAAC,SAA0C;IACrE,KAAK,CAAC,UAAU,EAAE,CAAC;IAEnB,IAAI,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;QAClD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,0BAA0B,MAAM,CAAC,qBAAqB,yCAAyC,EAAE,CAAC;IACvI,CAAC;IAED,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QACxB,KAAK,CAAC,UAAU,EAAE,CAAC;QACnB,IAAI,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,sBAAsB,EAAE,CAAC;YACnD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,+BAA+B,MAAM,CAAC,sBAAsB,+BAA+B,EAAE,CAAC;QACnI,CAAC;IACL,CAAC;IAED,IAAI,SAAS,KAAK,YAAY,EAAE,CAAC;QAC7B,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC,0BAA0B,EAAE,CAAC;YAC3D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,6BAA6B,MAAM,CAAC,0BAA0B,YAAY,EAAE,CAAC;QAClH,CAAC;IACL,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC7B,CAAC;AAED,SAAgB,iBAAiB;IAC7B,OAAO;QACH,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;QAC5D,UAAU,EAAE,MAAM,CAAC,sBAAsB;KAC5C,CAAC;AACN,CAAC;AAED,SAAgB,eAAe;IAC3B,KAAK,GAAG;QACJ,UAAU,EAAE,CAAC;QACb,cAAc,EAAE,CAAC;QACjB,UAAU,EAAE,CAAC;QACb,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE;KAC3B,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"rate-limiter.js","sourceRoot":"","sources":["../../src/security/rate-limiter.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAsBH,wCAsBC;AAED,8CAOC;AAED,0CAOC;AArDD,MAAM,MAAM,GAAG;IACX,sBAAsB,EAAE,EAAE;IAC1B,0BAA0B,EAAE,GAAG;IAC/B,qBAAqB,EAAE,GAAG;CAC7B,CAAC;AAEF,IAAI,KAAK,GAAmB;IACxB,UAAU,EAAE,CAAC;IACb,cAAc,EAAE,CAAC;IACjB,UAAU,EAAE,CAAC;IACb,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE;CAC3B,CAAC;AAEF,SAAgB,cAAc,CAAC,SAA0C;IACrE,KAAK,CAAC,UAAU,EAAE,CAAC;IAEnB,IAAI,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;QAClD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,0BAA0B,MAAM,CAAC,qBAAqB,yCAAyC,EAAE,CAAC;IACvI,CAAC;IAED,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;QACxB,KAAK,CAAC,UAAU,EAAE,CAAC;QACnB,IAAI,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,sBAAsB,EAAE,CAAC;YACnD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,+BAA+B,MAAM,CAAC,sBAAsB,+BAA+B,EAAE,CAAC;QACnI,CAAC;IACL,CAAC;IAED,IAAI,SAAS,KAAK,YAAY,EAAE,CAAC;QAC7B,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC,0BAA0B,EAAE,CAAC;YAC3D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,6BAA6B,MAAM,CAAC,0BAA0B,YAAY,EAAE,CAAC;QAClH,CAAC;IACL,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC7B,CAAC;AAED,SAAgB,iBAAiB;IAC7B,OAAO;QACH,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;KAC/D,CAAC;AACN,CAAC;AAED,SAAgB,eAAe;IAC3B,KAAK,GAAG;QACJ,UAAU,EAAE,CAAC;QACb,cAAc,EAAE,CAAC;QACjB,UAAU,EAAE,CAAC;QACb,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE;KAC3B,CAAC;AACN,CAAC"}