crbro-memory 2.9.1 → 2.10.0

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 (65) hide show
  1. package/README.md +22 -13
  2. package/SECURITY.md +27 -2
  3. package/bin/crbro.mjs +18 -1
  4. package/dist/engine/backup.d.ts.map +1 -1
  5. package/dist/engine/backup.js +4 -0
  6. package/dist/engine/backup.js.map +1 -1
  7. package/dist/engine/cortex.d.ts +18 -6
  8. package/dist/engine/cortex.d.ts.map +1 -1
  9. package/dist/engine/cortex.js +99 -83
  10. package/dist/engine/cortex.js.map +1 -1
  11. package/dist/engine/doctor.d.ts +93 -0
  12. package/dist/engine/doctor.d.ts.map +1 -0
  13. package/dist/engine/doctor.js +378 -0
  14. package/dist/engine/doctor.js.map +1 -0
  15. package/dist/engine/evidence.d.ts +26 -0
  16. package/dist/engine/evidence.d.ts.map +1 -0
  17. package/dist/engine/evidence.js +171 -0
  18. package/dist/engine/evidence.js.map +1 -0
  19. package/dist/engine/hippocampus.d.ts.map +1 -1
  20. package/dist/engine/hippocampus.js +32 -29
  21. package/dist/engine/hippocampus.js.map +1 -1
  22. package/dist/engine/keychain.d.ts.map +1 -1
  23. package/dist/engine/keychain.js +52 -20
  24. package/dist/engine/keychain.js.map +1 -1
  25. package/dist/engine/prefrontal.d.ts +4 -1
  26. package/dist/engine/prefrontal.d.ts.map +1 -1
  27. package/dist/engine/prefrontal.js +100 -66
  28. package/dist/engine/prefrontal.js.map +1 -1
  29. package/dist/engine/projects.d.ts +20 -0
  30. package/dist/engine/projects.d.ts.map +1 -0
  31. package/dist/engine/projects.js +80 -0
  32. package/dist/engine/projects.js.map +1 -0
  33. package/dist/engine/shelf.d.ts +5 -6
  34. package/dist/engine/shelf.d.ts.map +1 -1
  35. package/dist/engine/shelf.js +9 -8
  36. package/dist/engine/shelf.js.map +1 -1
  37. package/dist/search/index.d.ts +5 -0
  38. package/dist/search/index.d.ts.map +1 -1
  39. package/dist/search/index.js +18 -5
  40. package/dist/search/index.js.map +1 -1
  41. package/dist/search/quality.d.ts +18 -0
  42. package/dist/search/quality.d.ts.map +1 -0
  43. package/dist/search/quality.js +31 -0
  44. package/dist/search/quality.js.map +1 -0
  45. package/dist/server.d.ts.map +1 -1
  46. package/dist/server.js +112 -16
  47. package/dist/server.js.map +1 -1
  48. package/dist/sync/materialize.d.ts +1 -0
  49. package/dist/sync/materialize.d.ts.map +1 -1
  50. package/dist/sync/materialize.js +33 -8
  51. package/dist/sync/materialize.js.map +1 -1
  52. package/dist/sync/ops.d.ts +7 -2
  53. package/dist/sync/ops.d.ts.map +1 -1
  54. package/dist/sync/ops.js.map +1 -1
  55. package/dist/sync/space.d.ts +5 -3
  56. package/dist/sync/space.d.ts.map +1 -1
  57. package/dist/sync/space.js +187 -77
  58. package/dist/sync/space.js.map +1 -1
  59. package/dist/types/index.d.ts +25 -2
  60. package/dist/types/index.d.ts.map +1 -1
  61. package/dist/utils/lock.d.ts +2 -0
  62. package/dist/utils/lock.d.ts.map +1 -1
  63. package/dist/utils/lock.js +132 -52
  64. package/dist/utils/lock.js.map +1 -1
  65. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"hippocampus.d.ts","sourceRoot":"","sources":["../../src/engine/hippocampus.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAIpD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI7D;AAED,qBAAa,WAAW;IACV,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,KAAK;IAEhC;;;;;;;OAOG;IACG,UAAU,CAAC,IAAI,EAAE;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,GAAG,OAAO,CAAC,UAAU,GAAG;QAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IA0ChD;;OAEG;IACG,YAAY,CAAC,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAe7D;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAK5C;;;;OAIG;IACG,YAAY,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAW3F,wFAAwF;IAClF,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAMjE;;;OAGG;IACG,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CAiBlH"}
1
+ {"version":3,"file":"hippocampus.d.ts","sourceRoot":"","sources":["../../src/engine/hippocampus.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAIpD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI7D;AAED,qBAAa,WAAW;IACV,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,KAAK;IAEhC;;;;;;;OAOG;IACG,UAAU,CAAC,IAAI,EAAE;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,GAAG,OAAO,CAAC,UAAU,GAAG;QAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IA6ChD;;OAEG;IACG,YAAY,CAAC,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAe7D;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAK5C;;;;OAIG;IACG,YAAY,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAW3F,wFAAwF;IAClF,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAMjE;;;OAGG;IACG,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CAiBlH"}
@@ -35,36 +35,39 @@ class Hippocampus {
35
35
  const limpio = (0, secrets_js_1.redact)(data.summary);
36
36
  data = { ...data, summary: limpio.text };
37
37
  const id = (0, ids_js_1.sessionId)();
38
- // Check if session for today already exists — append to it
39
- let existing = await (0, fs_js_1.readJSON)(this.brain.paths.session(id));
40
- if (existing) {
41
- // Append to existing session
42
- existing.summary += `\n---\n${data.summary}`;
43
- existing.topics_touched = [...new Set([...existing.topics_touched, ...data.topics_touched])];
44
- existing.key_facts_added += data.key_facts_added || 0;
45
- existing.decisions_made += data.decisions_made || 0;
46
- existing.new_neurons_created += data.new_neurons_created || 0;
47
- existing.synapses_updated += data.synapses_updated || 0;
48
- await (0, fs_js_1.writeJSON)(this.brain.paths.session(id), existing);
49
- return { ...existing, redacted: limpio.found };
50
- }
51
- // Create new session log
52
- const session = {
53
- session_id: id,
54
- date: (0, fs_js_1.today)(),
55
- duration_estimate: 'unknown',
56
- topics_touched: data.topics_touched,
57
- summary: data.summary,
58
- key_facts_added: data.key_facts_added || 0,
59
- decisions_made: data.decisions_made || 0,
60
- new_neurons_created: data.new_neurons_created || 0,
61
- synapses_updated: data.synapses_updated || 0,
62
- };
63
- await (0, fs_js_1.writeJSON)(this.brain.paths.session(id), session);
38
+ let created = false;
39
+ const saved = await (0, fs_js_1.updateJSON)(this.brain.paths.session(id), existing => {
40
+ if (existing) {
41
+ // Append to existing session
42
+ existing.summary += `\n---\n${data.summary}`;
43
+ existing.topics_touched = [...new Set([...existing.topics_touched, ...data.topics_touched])];
44
+ existing.key_facts_added += data.key_facts_added || 0;
45
+ existing.decisions_made += data.decisions_made || 0;
46
+ existing.new_neurons_created += data.new_neurons_created || 0;
47
+ existing.synapses_updated += data.synapses_updated || 0;
48
+ return existing;
49
+ }
50
+ // Create new session log
51
+ const session = {
52
+ session_id: id,
53
+ date: (0, fs_js_1.today)(),
54
+ duration_estimate: 'unknown',
55
+ topics_touched: data.topics_touched,
56
+ summary: data.summary,
57
+ key_facts_added: data.key_facts_added || 0,
58
+ decisions_made: data.decisions_made || 0,
59
+ new_neurons_created: data.new_neurons_created || 0,
60
+ synapses_updated: data.synapses_updated || 0,
61
+ };
62
+ created = true;
63
+ return session;
64
+ });
64
65
  // Update manifest
65
- const manifest = await this.brain.getManifest();
66
- await this.brain.updateManifest({ total_sessions: manifest.total_sessions + 1 });
67
- return { ...session, redacted: limpio.found };
66
+ if (created) {
67
+ const manifest = await this.brain.getManifest();
68
+ await this.brain.updateManifest({ total_sessions: manifest.total_sessions + 1 });
69
+ }
70
+ return { ...saved, redacted: limpio.found };
68
71
  }
69
72
  /**
70
73
  * List recent sessions.
@@ -1 +1 @@
1
- {"version":3,"file":"hippocampus.js","sourceRoot":"","sources":["../../src/engine/hippocampus.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hippocampus.js","sourceRoot":"","sources":["../../src/engine/hippocampus.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"keychain.d.ts","sourceRoot":"","sources":["../../src/engine/keychain.ts"],"names":[],"mappings":"AA8CA,MAAM,MAAM,OAAO,GAAG,gBAAgB,GAAG,sBAAsB,GAAG,eAAe,CAAC;AAElF,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,mBAAoB,SAAQ,KAAK;aAChB,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM;CAI3C;AAYD;;;;GAIG;AACH,wBAAgB,aAAa,IAAI;IAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAuC5E;AAmKD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,SAAK,GAAG,IAAI,CAkC7E;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkCrD;AAED,wEAAwE;AACxE,wBAAgB,WAAW,IAAI,WAAW,EAAE,CAmB3C;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAsBlD;AAED,yEAAyE;AACzE,wBAAgB,0BAA0B,IAAI,IAAI,CAIjD"}
1
+ {"version":3,"file":"keychain.d.ts","sourceRoot":"","sources":["../../src/engine/keychain.ts"],"names":[],"mappings":"AAgDA,MAAM,MAAM,OAAO,GAAG,gBAAgB,GAAG,sBAAsB,GAAG,eAAe,CAAC;AAElF,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,mBAAoB,SAAQ,KAAK;aAChB,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM;CAI3C;AAYD;;;;GAIG;AACH,wBAAgB,aAAa,IAAI;IAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAuC5E;AAyLD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,SAAK,GAAG,IAAI,CAoC7E;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAkCrD;AAED,wEAAwE;AACxE,wBAAgB,WAAW,IAAI,WAAW,EAAE,CAmB3C;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAwBlD;AAED,yEAAyE;AACzE,wBAAgB,0BAA0B,IAAI,IAAI,CAIjD"}
@@ -34,9 +34,11 @@ exports.listSecrets = listSecrets;
34
34
  exports.removeSecret = removeSecret;
35
35
  exports._resetWindowsStoreForTests = _resetWindowsStoreForTests;
36
36
  const node_child_process_1 = require("node:child_process");
37
+ const node_crypto_1 = require("node:crypto");
37
38
  const node_os_1 = require("node:os");
38
39
  const node_path_1 = require("node:path");
39
40
  const node_fs_1 = require("node:fs");
41
+ const lock_js_1 = require("../utils/lock.js");
40
42
  /** Namespace under which every CRBRO secret is filed in the OS store. */
41
43
  const SERVICE = 'crbro';
42
44
  /**
@@ -157,16 +159,27 @@ function psDpapi(script, input) {
157
159
  }
158
160
  return r.stdout;
159
161
  }
160
- function winRead() {
162
+ function winRead(fresh = false) {
161
163
  const { file } = winPaths();
162
- if (cached && cached.file === file && Date.now() - cached.at < CACHE_TTL_MS) {
164
+ // Compare the ciphertext itself, not mtime/size: a same-size replacement or
165
+ // restored timestamp must not hide an external update. Reading is cheap;
166
+ // the cache avoids the expensive DPAPI subprocess only while bytes match.
167
+ let sealed;
168
+ try {
169
+ sealed = (0, node_fs_1.readFileSync)(file, 'utf8').trim();
170
+ }
171
+ catch (err) {
172
+ invalidateCache();
173
+ if (err.code === 'ENOENT')
174
+ return {};
175
+ throw err;
176
+ }
177
+ if (!fresh && cached && cached.file === file && cached.sealed === sealed && Date.now() - cached.at < CACHE_TTL_MS) {
163
178
  return cached.store;
164
179
  }
165
- if (!(0, node_fs_1.existsSync)(file))
166
- return {};
167
- const sealed = (0, node_fs_1.readFileSync)(file, 'utf8').trim();
180
+ invalidateCache();
168
181
  if (!sealed)
169
- return {};
182
+ throw new KeychainUnavailable('The key store is empty or truncated. Refusing to overwrite it.');
170
183
  // ConvertTo-SecureString without -Key is DPAPI at CurrentUser scope: only
171
184
  // this Windows account, on this machine, can turn it back into text.
172
185
  // 1.8.0 and 1.8.1 sealed with ConvertFrom-SecureString, whose output is hex.
@@ -182,7 +195,7 @@ function winRead() {
182
195
  : psDpapi(DPAPI_OPEN, sealed);
183
196
  try {
184
197
  const store = JSON.parse(json);
185
- cached = { store, at: Date.now(), file };
198
+ cached = { store, at: Date.now(), file, sealed };
186
199
  return store;
187
200
  }
188
201
  catch {
@@ -191,15 +204,30 @@ function winRead() {
191
204
  }
192
205
  function winWrite(store) {
193
206
  const { dir, file } = winPaths();
207
+ invalidateCache();
194
208
  if (!(0, node_fs_1.existsSync)(dir))
195
209
  (0, node_fs_1.mkdirSync)(dir, { recursive: true, mode: 0o700 });
196
210
  const sealed = psDpapi(DPAPI_SEAL, JSON.stringify(store)).trim();
197
211
  // Atomic: a crash mid-write leaves the previous store intact rather than a
198
212
  // truncated file that would take every secret with it.
199
- const tmp = `${file}.tmp`;
200
- (0, node_fs_1.writeFileSync)(tmp, sealed, { encoding: 'ascii', mode: 0o600 });
201
- (0, node_fs_1.renameSync)(tmp, file);
202
- cached = { store, at: Date.now(), file };
213
+ const tmp = `${file}.${process.pid}.${(0, node_crypto_1.randomUUID)()}.tmp`;
214
+ let created = false;
215
+ let fd;
216
+ try {
217
+ fd = (0, node_fs_1.openSync)(tmp, 'wx', 0o600);
218
+ created = true;
219
+ (0, node_fs_1.writeFileSync)(fd, sealed, { encoding: 'ascii' });
220
+ (0, node_fs_1.closeSync)(fd);
221
+ fd = undefined;
222
+ (0, node_fs_1.renameSync)(tmp, file);
223
+ cached = { store, at: Date.now(), file, sealed };
224
+ }
225
+ finally {
226
+ if (fd !== undefined)
227
+ (0, node_fs_1.closeSync)(fd);
228
+ if (created && (0, node_fs_1.existsSync)(tmp))
229
+ (0, node_fs_1.unlinkSync)(tmp);
230
+ }
203
231
  }
204
232
  // ─── macOS: an index of its own ──────────────────────────────────
205
233
  //
@@ -249,9 +277,11 @@ function setSecret(name, value, description = '') {
249
277
  if (!value)
250
278
  throw new Error('Refusing to store an empty value.');
251
279
  if (backend === 'windows-dpapi') {
252
- const store = winRead();
253
- store[name] = { value, description, updated: new Date().toISOString().slice(0, 10) };
254
- winWrite(store);
280
+ (0, lock_js_1.withLockSync)(winPaths().file, () => {
281
+ const store = winRead(true);
282
+ store[name] = { value, description, updated: new Date().toISOString().slice(0, 10) };
283
+ winWrite(store);
284
+ });
255
285
  return;
256
286
  }
257
287
  if (backend === 'macos-keychain') {
@@ -334,12 +364,14 @@ function listSecrets() {
334
364
  function removeSecret(name) {
335
365
  const backend = requireBackend();
336
366
  if (backend === 'windows-dpapi') {
337
- const store = winRead();
338
- if (!(name in store))
339
- return false;
340
- delete store[name];
341
- winWrite(store);
342
- return true;
367
+ return (0, lock_js_1.withLockSync)(winPaths().file, () => {
368
+ const store = winRead(true);
369
+ if (!(name in store))
370
+ return false;
371
+ delete store[name];
372
+ winWrite(store);
373
+ return true;
374
+ });
343
375
  }
344
376
  if (backend === 'macos-keychain') {
345
377
  const gone = run('security', ['delete-generic-password', '-s', SERVICE, '-a', name]).status === 0;
@@ -1 +1 @@
1
- {"version":3,"file":"keychain.js","sourceRoot":"","sources":["../../src/engine/keychain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keychain.js","sourceRoot":"","sources":["../../src/engine/keychain.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ export declare class Prefrontal {
6
6
  /**
7
7
  * Get the current active context.
8
8
  */
9
- getContext(): Promise<ActiveContext>;
9
+ getContext(project?: string): Promise<ActiveContext>;
10
10
  /**
11
11
  * Update the active context.
12
12
  *
@@ -15,6 +15,9 @@ export declare class Prefrontal {
15
15
  * timestamp said "changed just now" about a context nobody had changed.
16
16
  */
17
17
  updateContext(updates: {
18
+ project?: string;
19
+ due?: string;
20
+ done_when?: string;
18
21
  set_topics?: string[];
19
22
  add_pending?: string;
20
23
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"prefrontal.d.ts","sourceRoot":"","sources":["../../src/engine/prefrontal.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAA2B,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAanH,qBAAa,UAAU;IACT,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,KAAK;IAIhC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC;IAiB1C;;;;;;OAMG;IACG,aAAa,CAAC,OAAO,EAAE;QAC3B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB;;;;;;;;WAQG;QACH,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,gGAAgG;QAChG,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,6FAA6F;QAC7F,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,GAAG,OAAO,CAAC,aAAa,GAAG;QAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;QAAC,SAAS,EAAE,WAAW,EAAE,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IA4EzH;;;OAGG;IACG,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAStD;;OAEG;IACG,YAAY,CAAC,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,SAAS,CAAC;IAa1D;;;;;;;;;OASG;IACG,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;CA8EzC"}
1
+ {"version":3,"file":"prefrontal.d.ts","sourceRoot":"","sources":["../../src/engine/prefrontal.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAA2B,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAiCnH,qBAAa,UAAU;IACT,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,KAAK;IAIhC;;OAEG;IACG,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAK1D;;;;;;OAMG;IACG,aAAa,CAAC,OAAO,EAAE;QAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB;;;;;;;;WAQG;QACH,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,gGAAgG;QAChG,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,6FAA6F;QAC7F,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,GAAG,OAAO,CAAC,aAAa,GAAG;QAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;QAAC,SAAS,EAAE,WAAW,EAAE,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAgGzH;;;OAGG;IACG,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQtD;;OAEG;IACG,YAAY,CAAC,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,SAAS,CAAC;IAa1D;;;;;;;;;OASG;IACG,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;CA8EzC"}
@@ -15,6 +15,25 @@ function toTask(entry) {
15
15
  }
16
16
  return entry;
17
17
  }
18
+ function normalizeContext(ctx) {
19
+ return {
20
+ last_session: '', active_topics: [], last_updated: (0, fs_js_1.now)(), ...ctx,
21
+ pending_tasks: (ctx?.pending_tasks || []).map(toTask),
22
+ recently_closed: ctx?.recently_closed || [],
23
+ };
24
+ }
25
+ function projectView(ctx, project) {
26
+ if (!project)
27
+ return ctx;
28
+ const visible = (t) => !t.project || t.project === project;
29
+ return {
30
+ ...ctx, active_topics: ctx.project_topics?.[project] || [],
31
+ project_topics: ctx.project_topics?.[project] ? { [project]: ctx.project_topics[project] } : {},
32
+ pending_tasks: ctx.pending_tasks.map(toTask).filter(visible)
33
+ .sort((a, b) => (a.due || '9999').localeCompare(b.due || '9999') || b.added.localeCompare(a.added)),
34
+ recently_closed: (ctx.recently_closed || []).filter(visible),
35
+ };
36
+ }
18
37
  class Prefrontal {
19
38
  brain;
20
39
  constructor(brain) {
@@ -24,21 +43,9 @@ class Prefrontal {
24
43
  /**
25
44
  * Get the current active context.
26
45
  */
27
- async getContext() {
46
+ async getContext(project) {
28
47
  const ctx = await (0, fs_js_1.readJSON)(this.brain.paths.activeContext());
29
- if (!ctx) {
30
- return {
31
- last_session: '',
32
- active_topics: [],
33
- pending_tasks: [],
34
- recently_closed: [],
35
- last_updated: (0, fs_js_1.now)(),
36
- };
37
- }
38
- // Upgrade v1 string entries in memory; they get written back on next update.
39
- ctx.pending_tasks = (ctx.pending_tasks || []).map(toTask);
40
- ctx.recently_closed = ctx.recently_closed || [];
41
- return ctx;
48
+ return projectView(normalizeContext(ctx), project);
42
49
  }
43
50
  /**
44
51
  * Update the active context.
@@ -48,76 +55,103 @@ class Prefrontal {
48
55
  * timestamp said "changed just now" about a context nobody had changed.
49
56
  */
50
57
  async updateContext(updates) {
51
- const ctx = await this.getContext();
58
+ if (updates.project && !/^[a-zA-Z0-9_-]{1,100}$/.test(updates.project))
59
+ throw new Error('Invalid project id.');
60
+ if (updates.due && (!/^\d{4}-\d{2}-\d{2}$/.test(updates.due) ||
61
+ !Number.isFinite(Date.parse(updates.due)) || new Date(updates.due).toISOString().slice(0, 10) !== updates.due)) {
62
+ throw new Error('Invalid due date; use a real YYYY-MM-DD calendar day.');
63
+ }
52
64
  const hayCambio = updates.clear === true ||
53
65
  updates.set_topics !== undefined ||
54
66
  (updates.add_pending !== undefined && updates.add_pending !== '') ||
55
67
  (updates.resolve_pending !== undefined && updates.resolve_pending !== '') ||
56
68
  (updates.discard_pending !== undefined && updates.discard_pending !== '');
57
69
  if (!hayCambio) {
58
- return { ...ctx, resolved: [], discarded: [], written: false };
59
- }
60
- if (updates.clear) {
61
- ctx.active_topics = [];
62
- ctx.pending_tasks = [];
63
- ctx.recently_closed = [];
70
+ return { ...await this.getContext(updates.project), resolved: [], discarded: [], written: false };
64
71
  }
65
- let tasks = ctx.pending_tasks.map(toTask);
66
72
  let resolved = [];
67
73
  let discarded = [];
68
74
  let redacted = [];
69
- if (updates.set_topics) {
70
- ctx.active_topics = updates.set_topics;
71
- }
72
- if (updates.add_pending) {
73
- // An open item is read back by crbro_boot in every session and copied
74
- // into compaction checkpoints: it goes through the same filter as learn.
75
- const filtrado = (0, secrets_js_1.redact)(updates.add_pending.trim());
76
- redacted = filtrado.found;
77
- const text = filtrado.text;
78
- const id = (0, hash_js_1.pendingId)(text);
79
- if (!tasks.some(t => t.id === id)) {
80
- tasks.push({ id, text, added: (0, fs_js_1.now)() });
75
+ const saved = await (0, fs_js_1.updateJSON)(this.brain.paths.activeContext(), current => {
76
+ const ctx = normalizeContext(current);
77
+ if (updates.clear) {
78
+ if (updates.project) {
79
+ delete ctx.project_topics?.[updates.project];
80
+ ctx.pending_tasks = ctx.pending_tasks.map(toTask).filter(t => t.project !== updates.project);
81
+ ctx.recently_closed = ctx.recently_closed?.filter(t => t.project !== updates.project);
82
+ }
83
+ else {
84
+ ctx.active_topics = [];
85
+ ctx.project_topics = {};
86
+ ctx.pending_tasks = [];
87
+ ctx.recently_closed = [];
88
+ }
81
89
  }
82
- }
83
- // Id, exact text, or a case-insensitive substring of at least 8 chars in
84
- // either direction — the same predicate for resolving and discarding.
85
- const matcher = (needleRaw) => {
86
- const needle = needleRaw.trim();
87
- const lower = needle.toLowerCase();
88
- return (t) => t.id === needle ||
89
- t.text === needle ||
90
- (lower.length >= 8 &&
91
- (t.text.toLowerCase().includes(lower) || lower.includes(t.text.toLowerCase())));
92
- };
93
- if (updates.resolve_pending) {
94
- const hit = matcher(updates.resolve_pending);
95
- resolved = tasks.filter(hit).map(t => ({ ...t, closed: (0, fs_js_1.now)() }));
96
- tasks = tasks.filter(t => !hit(t));
97
- if (resolved.length > 0) {
98
- ctx.recently_closed = [...resolved, ...(ctx.recently_closed || [])]
99
- .slice(0, RECENTLY_CLOSED_CAP);
90
+ let tasks = ctx.pending_tasks.map(toTask);
91
+ if (updates.set_topics) {
92
+ if (updates.project)
93
+ (ctx.project_topics ||= {})[updates.project] = updates.set_topics;
94
+ else
95
+ ctx.active_topics = updates.set_topics;
100
96
  }
101
- }
102
- if (updates.discard_pending) {
103
- const hit = matcher(updates.discard_pending);
104
- discarded = tasks.filter(hit);
105
- tasks = tasks.filter(t => !hit(t));
106
- }
107
- ctx.pending_tasks = tasks;
108
- ctx.last_updated = (0, fs_js_1.now)();
109
- await (0, fs_js_1.writeJSON)(this.brain.paths.activeContext(), ctx);
110
- return { ...ctx, resolved, discarded, written: true, ...(redacted.length ? { redacted } : {}) };
97
+ if (updates.add_pending) {
98
+ // An open item is read back by crbro_boot in every session and copied
99
+ // into compaction checkpoints: it goes through the same filter as learn.
100
+ const filtrado = (0, secrets_js_1.redact)(updates.add_pending.trim());
101
+ redacted = filtrado.found;
102
+ const text = filtrado.text;
103
+ const id = (0, hash_js_1.pendingId)(updates.project ? `${updates.project}\n${text}` : text);
104
+ const criterion = updates.done_when ? (0, secrets_js_1.redact)(updates.done_when) : undefined;
105
+ redacted.push(...(criterion?.found || []));
106
+ const existing = tasks.find(t => t.id === id);
107
+ const metadata = {
108
+ ...(updates.project ? { project: updates.project } : {}),
109
+ ...(updates.due ? { due: updates.due } : {}),
110
+ ...(criterion ? { done_when: criterion.text } : {}),
111
+ };
112
+ if (existing)
113
+ Object.assign(existing, metadata);
114
+ else
115
+ tasks.push({ id, text, added: (0, fs_js_1.now)(), status: 'open', ...metadata });
116
+ }
117
+ // Id, exact text, or a case-insensitive substring of at least 8 chars in
118
+ // either direction — the same predicate for resolving and discarding.
119
+ const matcher = (needleRaw) => {
120
+ const needle = needleRaw.trim();
121
+ const lower = needle.toLowerCase();
122
+ return (t) => (!updates.project || !t.project || t.project === updates.project) && (t.id === needle ||
123
+ t.text === needle ||
124
+ (lower.length >= 8 &&
125
+ (t.text.toLowerCase().includes(lower) || lower.includes(t.text.toLowerCase()))));
126
+ };
127
+ if (updates.resolve_pending) {
128
+ const hit = matcher(updates.resolve_pending);
129
+ resolved = tasks.filter(hit).map(t => ({ ...t, closed: (0, fs_js_1.now)(), status: 'done' }));
130
+ tasks = tasks.filter(t => !hit(t));
131
+ if (resolved.length > 0) {
132
+ ctx.recently_closed = [...resolved, ...(ctx.recently_closed || [])]
133
+ .slice(0, RECENTLY_CLOSED_CAP);
134
+ }
135
+ }
136
+ if (updates.discard_pending) {
137
+ const hit = matcher(updates.discard_pending);
138
+ discarded = tasks.filter(hit);
139
+ tasks = tasks.filter(t => !hit(t));
140
+ }
141
+ ctx.pending_tasks = tasks;
142
+ ctx.last_updated = (0, fs_js_1.now)();
143
+ return ctx;
144
+ });
145
+ return { ...projectView(saved, updates.project), resolved, discarded, written: true, ...(redacted.length ? { redacted } : {}) };
111
146
  }
112
147
  /**
113
148
  * Record which session was logged last. Nothing else in the context moves.
114
149
  * Before this, nothing ever wrote last_session, so boot reported null forever.
115
150
  */
116
151
  async setLastSession(sessionId) {
117
- const ctx = await this.getContext();
118
- ctx.last_session = sessionId;
119
- ctx.last_updated = (0, fs_js_1.now)();
120
- await (0, fs_js_1.writeJSON)(this.brain.paths.activeContext(), ctx);
152
+ await (0, fs_js_1.updateJSON)(this.brain.paths.activeContext(), current => ({
153
+ ...normalizeContext(current), last_session: sessionId, last_updated: (0, fs_js_1.now)(),
154
+ }));
121
155
  }
122
156
  // ─── Hot Topics ─────────────────────────────────────────────────
123
157
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"prefrontal.js","sourceRoot":"","sources":["../../src/engine/prefrontal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prefrontal.js","sourceRoot":"","sources":["../../src/engine/prefrontal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { Brain } from './brain.js';
2
+ export interface ProjectProfile {
3
+ id: string;
4
+ aliases: string[];
5
+ neurons: string[];
6
+ updated: string;
7
+ }
8
+ export declare function projectReference(value: string): string;
9
+ export declare class ProjectRegistry {
10
+ private readonly file;
11
+ constructor(brain: Brain);
12
+ find(reference: string): Promise<ProjectProfile | null>;
13
+ boundNeurons(): Promise<string[]>;
14
+ bind(reference: string, options: {
15
+ id?: string;
16
+ aliases?: string[];
17
+ neurons?: string[];
18
+ }): Promise<ProjectProfile>;
19
+ }
20
+ //# sourceMappingURL=projects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/engine/projects.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAGD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAetD;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;gBAClB,KAAK,EAAE,KAAK;IAElB,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAMvD,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAKjC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC;CA6BzH"}