crbro-memory 2.9.0 → 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.
- package/README.md +25 -16
- package/SECURITY.md +27 -2
- package/bin/crbro.mjs +18 -1
- package/dist/daemon/endpoint.d.ts +1 -0
- package/dist/daemon/endpoint.d.ts.map +1 -1
- package/dist/daemon/endpoint.js +4 -13
- package/dist/daemon/endpoint.js.map +1 -1
- package/dist/engine/backup.d.ts.map +1 -1
- package/dist/engine/backup.js +4 -0
- package/dist/engine/backup.js.map +1 -1
- package/dist/engine/cortex.d.ts +18 -6
- package/dist/engine/cortex.d.ts.map +1 -1
- package/dist/engine/cortex.js +119 -92
- package/dist/engine/cortex.js.map +1 -1
- package/dist/engine/doctor.d.ts +93 -0
- package/dist/engine/doctor.d.ts.map +1 -0
- package/dist/engine/doctor.js +378 -0
- package/dist/engine/doctor.js.map +1 -0
- package/dist/engine/evidence.d.ts +26 -0
- package/dist/engine/evidence.d.ts.map +1 -0
- package/dist/engine/evidence.js +171 -0
- package/dist/engine/evidence.js.map +1 -0
- package/dist/engine/hippocampus.d.ts.map +1 -1
- package/dist/engine/hippocampus.js +32 -29
- package/dist/engine/hippocampus.js.map +1 -1
- package/dist/engine/keychain.d.ts.map +1 -1
- package/dist/engine/keychain.js +52 -20
- package/dist/engine/keychain.js.map +1 -1
- package/dist/engine/maintenance.d.ts.map +1 -1
- package/dist/engine/maintenance.js +3 -3
- package/dist/engine/maintenance.js.map +1 -1
- package/dist/engine/prefrontal.d.ts +4 -1
- package/dist/engine/prefrontal.d.ts.map +1 -1
- package/dist/engine/prefrontal.js +100 -66
- package/dist/engine/prefrontal.js.map +1 -1
- package/dist/engine/projects.d.ts +20 -0
- package/dist/engine/projects.d.ts.map +1 -0
- package/dist/engine/projects.js +80 -0
- package/dist/engine/projects.js.map +1 -0
- package/dist/engine/secrets.d.ts.map +1 -1
- package/dist/engine/secrets.js +12 -1
- package/dist/engine/secrets.js.map +1 -1
- package/dist/engine/shelf.d.ts +66 -8
- package/dist/engine/shelf.d.ts.map +1 -1
- package/dist/engine/shelf.js +350 -12
- package/dist/engine/shelf.js.map +1 -1
- package/dist/search/index.d.ts +5 -0
- package/dist/search/index.d.ts.map +1 -1
- package/dist/search/index.js +21 -8
- package/dist/search/index.js.map +1 -1
- package/dist/search/quality.d.ts +18 -0
- package/dist/search/quality.d.ts.map +1 -0
- package/dist/search/quality.js +31 -0
- package/dist/search/quality.js.map +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +123 -34
- package/dist/server.js.map +1 -1
- package/dist/sync/materialize.d.ts +1 -0
- package/dist/sync/materialize.d.ts.map +1 -1
- package/dist/sync/materialize.js +33 -8
- package/dist/sync/materialize.js.map +1 -1
- package/dist/sync/ops.d.ts +7 -2
- package/dist/sync/ops.d.ts.map +1 -1
- package/dist/sync/ops.js.map +1 -1
- package/dist/sync/space.d.ts +5 -3
- package/dist/sync/space.d.ts.map +1 -1
- package/dist/sync/space.js +187 -77
- package/dist/sync/space.js.map +1 -1
- package/dist/types/index.d.ts +30 -5
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/lock.d.ts +2 -0
- package/dist/utils/lock.d.ts.map +1 -1
- package/dist/utils/lock.js +132 -52
- package/dist/utils/lock.js.map +1 -1
- package/dist/version.d.ts +26 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +65 -0
- package/dist/version.js.map +1 -0
- package/hooks/crbro-lifecycle.mjs +612 -608
- package/package.json +5 -5
package/dist/engine/shelf.js
CHANGED
|
@@ -10,7 +10,9 @@
|
|
|
10
10
|
// values, who holds a role (default window: 90 days)
|
|
11
11
|
// normal — any other fact (365 days)
|
|
12
12
|
// durable — decisions, procedures (patterns) (730 days)
|
|
13
|
-
// permanent — history: preferences, errors, debts, a fact marked so
|
|
13
|
+
// permanent — history: preferences, errors, debts, a fact marked so, and
|
|
14
|
+
// (2.9.1) a dated record of something done or a line the
|
|
15
|
+
// miner imported (never)
|
|
14
16
|
//
|
|
15
17
|
// The windows are a policy choice, not a measurement: nothing in this
|
|
16
18
|
// repository measures how long a port or a price stays true. They are set so
|
|
@@ -23,10 +25,14 @@ exports.stalenessEnabled = stalenessEnabled;
|
|
|
23
25
|
exports.shelfWindows = shelfWindows;
|
|
24
26
|
exports.isShelfLife = isShelfLife;
|
|
25
27
|
exports.mostVolatile = mostVolatile;
|
|
28
|
+
exports.isDatedRecord = isDatedRecord;
|
|
29
|
+
exports.recordVerdict = recordVerdict;
|
|
26
30
|
exports.detectShelf = detectShelf;
|
|
27
31
|
exports.shelfOfFact = shelfOfFact;
|
|
28
32
|
exports.shelfOfKind = shelfOfKind;
|
|
33
|
+
exports.isLegacyBrain = isLegacyBrain;
|
|
29
34
|
exports.stalenessContext = stalenessContext;
|
|
35
|
+
exports.stalenessContextOf = stalenessContextOf;
|
|
30
36
|
exports.plausibleCheck = plausibleCheck;
|
|
31
37
|
exports.spreadOf = spreadOf;
|
|
32
38
|
exports.factStaleness = factStaleness;
|
|
@@ -162,14 +168,296 @@ const ROLE_THEN_NAME = new RegExp(`\\b(?:${roleAlt})\\b[^.\\n]{0,60}?(?:\\b(?:is
|
|
|
162
168
|
* The article is required: "Docker es responsable de aislar…" is not a person.
|
|
163
169
|
*/
|
|
164
170
|
const NAME_THEN_ROLE = new RegExp(`${NAME}\\s+(?:is|es)\\s+(?:(?:now|ahora)\\s+)?(?:the|el|la|our|nuestr[oa])\\s+(?:(?:new|nuev[oa])\\s+)?(?:${roleAlt})\\b`, 'u');
|
|
171
|
+
// ─── History: a dated record of something done (2.9.1) ───────────
|
|
172
|
+
//
|
|
173
|
+
// "FASE 2 completada (ago 2026)", "2026-08-11: VERIFICADO que …", "RECHAZO
|
|
174
|
+
// de la tienda v3.4.0 (9 jul 2026)", "Deployed v2.3.1 on 2026-06-18":
|
|
175
|
+
// a line that says what was done and when does not go stale — it tells what
|
|
176
|
+
// happened, and it carries its own date, so whoever reads it sees how old it
|
|
177
|
+
// is. Before 2.9.1 the version, URL or path inside such a record made the
|
|
178
|
+
// whole line volatile, and on a real personal brain records were a large
|
|
179
|
+
// share of what the detector flagged (docs/design/staleness.md §15).
|
|
180
|
+
//
|
|
181
|
+
// The rule, all on the line's HEAD (its text up to the first sentence end —
|
|
182
|
+
// ". ", "! ", "? " — or line break; details after it are not judged):
|
|
183
|
+
// 1. the head names a date: 2026-06-18, 18/06/2026, 18-jun-2026, 18 de
|
|
184
|
+
// junio (de 2026), jun 2026, June 18, 2026;
|
|
185
|
+
// 2. the head has a word of finished action: a Spanish participle
|
|
186
|
+
// (completado, implementada, resueltos, desplegado, publicado, verificado,
|
|
187
|
+
// corregido, migrado, creado, añadido, rechazado, medido…), an
|
|
188
|
+
// unambiguous Spanish preterite (desplegó, migró, corrigió, resolvió, or
|
|
189
|
+
// any of them after "se": "se publicó"), an English past form (fixed,
|
|
190
|
+
// deployed, released, completed, verified, migrated, checked…) or an
|
|
191
|
+
// event noun (fix, hotfix, rechazo, incidente, outage, release,
|
|
192
|
+
// ejecución…);
|
|
193
|
+
// 3. and none of these turns it back into a statement of state:
|
|
194
|
+
// - a date that opens a period: "desde el 18-sep", "since", "a partir
|
|
195
|
+
// de", "as of", "from", "hasta", "until", "a 4-oct", "al 4-oct";
|
|
196
|
+
// - a word of the future or of a deadline: will, planned, previsto,
|
|
197
|
+
// programado, pendiente, caduca, expires, vence, renews, next,
|
|
198
|
+
// próximo, "para el <date>", "by <date>", "antes del <date>" ("tarea
|
|
199
|
+
// programada" and "scheduled task" name a kind of job and do not count);
|
|
200
|
+
// - a word of the present: actualmente, currently, current, actual,
|
|
201
|
+
// ahora, now, todavía, still, vigente, último, last, latest;
|
|
202
|
+
// - a verb of state BEFORE the first finished-action word: "la API
|
|
203
|
+
// corre en el puerto 8443, desplegada el 2026-06-18" is a port that
|
|
204
|
+
// also says when it went up, so it stays volatile;
|
|
205
|
+
// 4. and, when the head carries a changeable value (a volatile rule fires
|
|
206
|
+
// on it with its dates blanked), none of these says the value holds:
|
|
207
|
+
// - a verb of state anywhere in it, or pasa a, queda, sigue, devuelve,
|
|
208
|
+
// responde, abierto, becomes, returns ("Fix (4-oct-2026): el webhook
|
|
209
|
+
// apunta a https://…", "La release 2.3 usa el puerto 8443 (jun 2026)");
|
|
210
|
+
// - a check — verificado, comprobado, confirmado, probado, medido,
|
|
211
|
+
// detectado, verified, checked… — with the value before it ("Puerto
|
|
212
|
+
// 9443 verificado el 2026-09-18", "Plan: $499/año (confirmado …)"): a
|
|
213
|
+
// dated check of a value is that value, with the day it was seen;
|
|
214
|
+
// - a move to a place: migrado, desplegado, instalado, migrated,
|
|
215
|
+
// deployed… followed within four words by a/al/en/to/into/on/at and a
|
|
216
|
+
// port, host, URL or path ("se migró el panel al puerto 9443",
|
|
217
|
+
// "Deployed to https://app.example.com on 2026-06-18");
|
|
218
|
+
// - a schedule: a cycle word with a time of day ("ejecución diaria 03:00
|
|
219
|
+
// en /var/backups") or cada/every with a unit ("cada lunes");
|
|
220
|
+
// - a word that also describes a state — cerrado, aprobado, completo,
|
|
221
|
+
// medida, closed, approved, complete — when it is the only
|
|
222
|
+
// finished-action word ("Presupuesto aprobado (…): 1.200 € al mes").
|
|
223
|
+
// Quoted titles and asides in parentheses are not read for the verbs.
|
|
224
|
+
// Words that introduce a new current value without telling an event —
|
|
225
|
+
// actualizado, cambiado, configurado, updated, changed, set, renovado — are
|
|
226
|
+
// deliberately not finished-action words. The adjective "completa" counts
|
|
227
|
+
// fully only after a kind of work ("FASE 4 completa"). A line with no date
|
|
228
|
+
// is never history, however past its verbs are: it cannot show its age.
|
|
229
|
+
//
|
|
230
|
+
// Limits, said once: the head decides, so "Migrado a Hetzner (3-oct-2026).
|
|
231
|
+
// El host es 10.0.0.5." is history whole; the line's own date is what tells
|
|
232
|
+
// the reader how old that host is. Only Spanish and English. A record without
|
|
233
|
+
// a date ("Publicado el artículo en https://…") is not history. A version is
|
|
234
|
+
// not a place: "Instalado Node 20.11.0 en el servidor (3-oct-2026)" and
|
|
235
|
+
// "Migrado a PostgreSQL 16 el 3-oct-2026" are records of an upgrade.
|
|
236
|
+
/** Month names and the abbreviations people write, es/en, longest first. */
|
|
237
|
+
const MONTH = '(?:enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|setiembre|octubre|noviembre|diciembre|'
|
|
238
|
+
+ 'january|february|march|april|june|july|august|september|october|november|december|'
|
|
239
|
+
+ 'ene|feb|mar|abr|may|jun|jul|ago|sept|sep|oct|nov|dic|jan|apr|aug|dec)\\.?(?![a-z])';
|
|
240
|
+
/** A calendar date as people write it, on folded text. Year optional only after a day and a month name. */
|
|
241
|
+
const DATE = '(?:'
|
|
242
|
+
// A numeric date is not glued to a word, a version or a path: in "/api/v1/12/24" there is no day.
|
|
243
|
+
+ '(?<![\\w./-])20\\d{2}[-/]\\d{1,2}[-/]\\d{1,2}(?![\\d])' // 2026-06-18
|
|
244
|
+
+ '|(?<![\\w./-])\\d{1,2}/\\d{1,2}/(?:20)?\\d{2}(?![\\d./])' // 18/06/2026
|
|
245
|
+
+ '|(?<![\\w./-])\\d{1,2}-\\d{1,2}-(?:20)?\\d{2}(?![\\d./-])' // 18-06-2026
|
|
246
|
+
+ '|(?<![\\w./-])\\d{1,2}\\.\\d{1,2}\\.20\\d{2}(?![\\d.])' // 18.06.2026 (not a version)
|
|
247
|
+
// Day + month. A bare "may" followed by another word is the English modal ("Node 18 may be removed"), not May.
|
|
248
|
+
+ `|(?<!\\d)\\d{1,2}º?(?:\\s+de\\s+|[\\s-]+)(?!may\\s+(?!de\\s+20)[a-z])${MONTH}(?:(?:\\s+de\\s+|,?\\s+|-)20\\d{2}(?!\\d))?` // 18-jun(-2026), 18 de junio de 2026
|
|
249
|
+
+ `|(?<![a-z])${MONTH}(?:\\s+de\\s+|\\s+|-)20\\d{2}(?!\\d)` // jun 2026, junio de 2026
|
|
250
|
+
+ `|(?<![a-z])${MONTH}\\s+\\d{1,2}(?:st|nd|rd|th)?,?\\s+20\\d{2}(?!\\d)` // June 18, 2026
|
|
251
|
+
+ ')';
|
|
252
|
+
const DATE_RE = new RegExp(DATE);
|
|
253
|
+
const DATE_ALL = new RegExp(DATE, 'g');
|
|
254
|
+
/** Not part of a path, a branch name or an identifier: "fix-newsletter/", "hotfix/login" are not events. */
|
|
255
|
+
const W0 = '(?<![a-z0-9_/.\\-])';
|
|
256
|
+
const W1 = '(?![a-z0-9_/\\-])';
|
|
257
|
+
/** Kinds of work that can be "complete": "FASE 4 COMPLETA", "Auditoría SEO completa". Not a list or a configuration. */
|
|
258
|
+
const WORK = '(?:fase|fases|etapa|auditoria|migracion|tarea|tareas|revision|repaso|implementacion|instalacion|ejecucion'
|
|
259
|
+
+ '|integracion|prueba|pruebas|limpieza|sesion|sprint|refactor|refactorizacion|traduccion|importacion|indexacion|copia|backup)';
|
|
260
|
+
const DONE = new RegExp(W0 + '(?:'
|
|
261
|
+
// Spanish participles, any gender and number. Cerrado and aprobado are in STATIVE below: they also
|
|
262
|
+
// describe a state ("puerto 22 cerrado", "presupuesto aprobado: 1.200 €/mes").
|
|
263
|
+
+ '(?:completad|implementad|resuelt|desplegad|publicad|verificad|comprobad|confirmad|corregid|migrad|cread'
|
|
264
|
+
+ '|anadid|rechazad|denegad|arreglad|terminad|finalizad|lanzad|instalad|eliminad|borrad|enviad|entregad'
|
|
265
|
+
+ '|auditad|integrad|solucionad|probad|testead|validad|detectad|reparad|restaurad|revertid|fusionad|renombrad|retirad'
|
|
266
|
+
+ '|descartad|construid|realizad|ejecutad|aplicad|cancelad|abortad|reescrit|rehech)(?:o|a|os|as)'
|
|
267
|
+
// The adjective "completa" only after a kind of work: "Lista completa de precios" is not an event.
|
|
268
|
+
+ `|(?<=(?:^|[^a-z])${WORK}(?:\\s+\\S+){0,3}\\s+)complet(?:o|a|os|as)`
|
|
269
|
+
// "medido"; "medida" only when it is not the noun ("a medida", "medida de seguridad").
|
|
270
|
+
+ '|medid(?:o|os)|(?<!(?:^|[^a-z])(?:a|la|las|una|unas|de|del|sus?) )medidas?(?! de(?![a-z]))'
|
|
271
|
+
// Spanish preterites that are not also a common noun, adjective or present tense.
|
|
272
|
+
+ '|desplego|desplegue|migro|migre|corrigio|corregi|resolvio|resolvi|rechace|arregle|verifique|verifico|finalizo'
|
|
273
|
+
+ '|finalice|elimino|elimine|aprobo|publique|implemente|implemento|hizo|hice|hicimos'
|
|
274
|
+
// "se" + preterite is unambiguous even where the bare form is not ("se publicó" vs "público").
|
|
275
|
+
+ '|se (?:publico|creo|anadio|lanzo|instalo|elimino|borro|desplego|corrigio|resolvio|migro|cerro|aprobo|envio|entrego'
|
|
276
|
+
+ '|termino|completo|implemento|aplico|ejecuto|cancelo|midio|arreglo|reparo|verifico|comprobo|rechazo)'
|
|
277
|
+
// Event nouns.
|
|
278
|
+
+ '|fix|hotfix|bugfix|rechazo|incidente|incidencia|incident|outage|caida|post-?mortem|release|lanzamiento|ejecucion'
|
|
279
|
+
// English past forms.
|
|
280
|
+
+ '|fixed|deployed|released|completed|implemented|resolved|published|verified|confirmed|migrated|created|added'
|
|
281
|
+
+ '|rejected|shipped|merged|launched|installed|removed|deleted|done|finished|sent|audited|tested'
|
|
282
|
+
+ '|validated|detected|repaired|restored|reverted|solved|delivered|submitted|renamed|built|rolled back|refactored|applied'
|
|
283
|
+
+ '|checked|measured|executed|uploaded|posted|cancell?ed|aborted'
|
|
284
|
+
+ ')' + W1);
|
|
285
|
+
/**
|
|
286
|
+
* Words that tell an event or describe a state: "FASE 0 APROBADA el 2-sep",
|
|
287
|
+
* "Tanda CERRADA el 21-sep", "DIAGNÓSTICO COMPLETO (21-08-2026)" are records,
|
|
288
|
+
* "Puerto 22 cerrado (…): SSH en el 65002", "Presupuesto aprobado (…): 1.200 €
|
|
289
|
+
* al mes", "Lista completa de precios (…)" are states. They count as a
|
|
290
|
+
* finished action only in a head that carries no changeable value.
|
|
291
|
+
*/
|
|
292
|
+
const STATIVE = new RegExp(W0 + '(?:(?:cerrad|aprobad|complet)(?:o|a|os|as)|(?<!(?:^|[^a-z])(?:a|la|las|una|unas|de|del|sus?) )medidas?|closed|approved|complete)' + W1);
|
|
293
|
+
/** A date that opens a period, or a moment that does: the line states what holds from then on. */
|
|
294
|
+
const OPENS_PERIOD = new RegExp(`(?<![a-z])(?:desde|since|a partir del?|as of|as from|from|effective(?: from)?|con efecto(?: desde)?|a fecha de|hasta|until|till|a|al)\\s+`
|
|
295
|
+
+ `(?:(?:el|la|los|the|dia|day)\\s+)*(?:${DATE}|entonces|then|hoy|today|ahora|now|ese dia|that day)`);
|
|
296
|
+
/** The future, a deadline or a renewal: something still to happen is not a record. */
|
|
297
|
+
const FUTURE = new RegExp(
|
|
298
|
+
// "Tarea programada" and "scheduled task" name a kind of job, not a future: they stay out.
|
|
299
|
+
'(?<![a-z])(?:will|shall|going to|planned|planificad[oa]s?|previst[oa]s?|(?<!(?:tarea|rutina)s? )programad[oa]s?'
|
|
300
|
+
+ '|scheduled(?! (?:tasks?|jobs?|routines?))|pendientes?|pending'
|
|
301
|
+
+ '|por hacer|to-do|deadline|fecha limite|plazo|vencen?|vencimiento|caducan?|caducidad|expiran?|expires?|expiry'
|
|
302
|
+
+ '|renuevan?|renews?|renewal|next|proxim[oa]s?|siguientes?)(?![a-z])'
|
|
303
|
+
+ `|(?<![a-z])(?:para el|para|by|antes del?|before|no later than)\\s+(?:(?:el|la|the)\\s+)?${DATE}`);
|
|
304
|
+
/** The present: the line says what holds now, whatever else it records. */
|
|
305
|
+
const PRESENT = /(?<![a-z])(?:actualmente|currently|current|actual|actuales|ahora|now|todavia|aun|still|hoy en dia|a dia de hoy|vigente|en vigor|in force|ultim[oa]s?|last|latest)(?![a-z])/;
|
|
306
|
+
/**
|
|
307
|
+
* Verbs that state how something is. Before the first finished-action word
|
|
308
|
+
* they make the line a statement of state. Not inside a domain or a path:
|
|
309
|
+
* the "es" of "garza.es" is not a verb.
|
|
310
|
+
*/
|
|
311
|
+
const STATE_WORDS = 'es|son|is|are|corre|corren|runs?|usa|usan|uses?|tiene|tienen|cuesta|cuestan|costs?|vale|valen|apunta|apuntan'
|
|
312
|
+
+ '|points?|escucha|escuchan|listens?|requiere|requieren|requires?|sirve|sirven|serves?|vive|viven|lives?|funciona|funcionan'
|
|
313
|
+
+ '|works?|contiene|contienen|contains?|ocupa|ocupan';
|
|
314
|
+
const STATE_VERB = new RegExp(`(?<![a-z0-9_./-])(?:${STATE_WORDS}|esta|estan)(?![a-z])`);
|
|
315
|
+
/**
|
|
316
|
+
* The same verbs and a few more that say what holds (pasa a, queda, sigue,
|
|
317
|
+
* devuelve, responde, abierto, becomes, returns…), looked for anywhere in a
|
|
318
|
+
* head that carries a changeable value: "Desplegado el 18-jun-2026: la API
|
|
319
|
+
* corre en el puerto 8443" is a port, whatever came first. "Esta" counts only
|
|
320
|
+
* as the verb ("está en", "está caído"), not as "this" ("esta web").
|
|
321
|
+
*/
|
|
322
|
+
const STATE_AFTER = new RegExp('(?<![a-z0-9_./-])(?:'
|
|
323
|
+
+ STATE_WORDS
|
|
324
|
+
+ '|estan?(?= (?:en|a|al|ahora|caid|activ|disponible|abiert|operativ|online|offline|rot|vaci|llen|list|apuntando|corriendo|usando|sirviendo))'
|
|
325
|
+
+ '|pasan? a|quedan?|siguen?|devuelven?|returns?|responden?|responds?|becomes?|abiert[oa]s?|open'
|
|
326
|
+
+ ')(?![a-z])');
|
|
327
|
+
/** A check of something: dated, it tells what held that day, and what held is the value. */
|
|
328
|
+
const CHECK = /^(?:verificad|comprobad|confirmad|probad|testead|validad|detectad|medid|verifique|verifico|se verifico|se comprobo|se midio|verified|confirmed|checked|tested|validated|measured|detected)/;
|
|
329
|
+
/** A move to a place: "migrado al puerto 9443", "deployed to https://…" says where the thing lives now. */
|
|
330
|
+
const MOVE = /^(?:migrad|desplegad|instalad|trasladad|movid|migro|migre|desplego|desplegue|se migro|se desplego|se instalo|migrated|deployed|installed|moved)/;
|
|
331
|
+
/** What follows a move, up to four words later, when it names the destination. */
|
|
332
|
+
const TO_PLACE = /^[^\s]*(?:\s+[^\s]+){0,4}?\s+(?:a|al|en|hacia|to|into|on|at)\s+(.*)$/;
|
|
333
|
+
/**
|
|
334
|
+
* Something done on a cycle is a schedule, not an event: "ejecución diaria
|
|
335
|
+
* 03:00 en /var/backups". A cycle word alone is not enough — "Ejecución
|
|
336
|
+
* diaria del 31-ago-2026: publicados…" is one run of a daily job, a record —
|
|
337
|
+
* so it takes a time of day right after it, or cada/every with a unit.
|
|
338
|
+
*/
|
|
339
|
+
const RECURRING = new RegExp('(?<![a-z])(?:'
|
|
340
|
+
+ '(?:diari[oa]s?|diariamente|semanal(?:es|mente)?|mensual(?:es|mente)?|daily|nightly|weekly|monthly|hourly)'
|
|
341
|
+
+ '(?:\\s+(?:a las|at))?\\s+\\d{1,2}[:h]\\d{2}'
|
|
342
|
+
+ '|(?:cada|every)\\s+(?:\\d+\\s+)?(?:dia|dias|hora|horas|semana|semanas|mes|meses|minutos?|lunes|martes|miercoles|jueves|viernes|sabado|domingo'
|
|
343
|
+
+ '|day|days|hour|hours|week|weeks|month|months|minutes?|monday|tuesday|wednesday|thursday|friday|saturday|sunday|night|noche)'
|
|
344
|
+
+ ')(?![a-z0-9])');
|
|
345
|
+
/** Month abbreviations a period may follow without ending the sentence: "jun. 2026", "Sept. 18". */
|
|
346
|
+
const MONTH_ABBR_DOT = /(?<![a-z])(?:ene|feb|mar|abr|may|jun|jul|ago|sept|sep|oct|nov|dic|jan|apr|aug|dec)$/;
|
|
347
|
+
/** The head of a line: up to the first sentence end or line break. */
|
|
348
|
+
function headOf(folded) {
|
|
349
|
+
const re = /[.!?](?=\s|$)|\n/g;
|
|
350
|
+
let m;
|
|
351
|
+
while ((m = re.exec(folded))) {
|
|
352
|
+
if (m[0] === '.' && MONTH_ABBR_DOT.test(folded.slice(0, m.index)))
|
|
353
|
+
continue;
|
|
354
|
+
return folded.slice(0, m.index);
|
|
355
|
+
}
|
|
356
|
+
return folded;
|
|
357
|
+
}
|
|
358
|
+
/**
|
|
359
|
+
* Which volatile rule fires on a piece of a line, with its dates blanked out
|
|
360
|
+
* (a date is not a value). `raw` and `folded` are the same piece; folding is
|
|
361
|
+
* length-preserving for Latin text, so a date found in one is blanked in both.
|
|
362
|
+
*/
|
|
363
|
+
function valueIn(raw, folded) {
|
|
364
|
+
let r0 = raw, f0 = folded;
|
|
365
|
+
if (r0.length === f0.length) {
|
|
366
|
+
for (const m of folded.matchAll(DATE_ALL)) {
|
|
367
|
+
const a = m.index ?? 0, b = a + m[0].length, gap = ' '.repeat(b - a);
|
|
368
|
+
r0 = r0.slice(0, a) + gap + r0.slice(b);
|
|
369
|
+
f0 = f0.slice(0, a) + gap + f0.slice(b);
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
else {
|
|
373
|
+
r0 = f0 = folded.replace(DATE_ALL, ' ');
|
|
374
|
+
}
|
|
375
|
+
for (const r of RULES)
|
|
376
|
+
if (r.test(r0, f0))
|
|
377
|
+
return r.reason;
|
|
378
|
+
return undefined;
|
|
379
|
+
}
|
|
165
380
|
/**
|
|
166
|
-
*
|
|
167
|
-
*
|
|
381
|
+
* True when the text reads as a dated record of something done (see the
|
|
382
|
+
* rule above). Exported for the tests and the design doc's examples.
|
|
168
383
|
*/
|
|
169
|
-
function
|
|
384
|
+
function isDatedRecord(text) {
|
|
385
|
+
return recordVerdict(text).record;
|
|
386
|
+
}
|
|
387
|
+
/** Quoted titles say nothing about state: «… que siguen trabajando …» is a headline. Blanked, length kept. */
|
|
388
|
+
const QUOTED = /«[^»\n]*»|"[^"\n]*"|“[^”\n]*”/g;
|
|
389
|
+
/** Nor does an aside in parentheses: "publicado en npm (no es repo git)" is a record with a remark. */
|
|
390
|
+
const ASIDE = /\([^()\n]*\)/g;
|
|
391
|
+
const blankAsides = (s) => s.replace(QUOTED, m => ' '.repeat(m.length)).replace(ASIDE, m => ' '.repeat(m.length));
|
|
392
|
+
/**
|
|
393
|
+
* The same decision with the rule that made it, for the tests and for
|
|
394
|
+
* diagnosing a real brain: 'record', or the first rule that said no.
|
|
395
|
+
*/
|
|
396
|
+
function recordVerdict(text) {
|
|
397
|
+
const no = (why) => ({ record: false, why });
|
|
398
|
+
const raw = String(text || '');
|
|
399
|
+
if (!raw.trim())
|
|
400
|
+
return no('empty');
|
|
401
|
+
const folded = fold(raw);
|
|
402
|
+
const head = headOf(folded);
|
|
403
|
+
if (!DATE_RE.test(head))
|
|
404
|
+
return no('no-date');
|
|
405
|
+
const strict = DONE.exec(head);
|
|
406
|
+
const done = strict ?? STATIVE.exec(head);
|
|
407
|
+
if (!done)
|
|
408
|
+
return no('no-done');
|
|
409
|
+
if (OPENS_PERIOD.test(head))
|
|
410
|
+
return no('opens-period');
|
|
411
|
+
if (FUTURE.test(head))
|
|
412
|
+
return no('future');
|
|
413
|
+
if (PRESENT.test(head))
|
|
414
|
+
return no('present');
|
|
415
|
+
if (STATE_VERB.test(head.slice(0, done.index)))
|
|
416
|
+
return no('state-before');
|
|
417
|
+
// Rule 4: only a head that carries a changeable value can state it as current.
|
|
418
|
+
const rawHead = raw.length === folded.length ? raw.slice(0, head.length) : head;
|
|
419
|
+
if (!valueIn(rawHead, head))
|
|
420
|
+
return { record: true, why: 'record' };
|
|
421
|
+
if (!strict)
|
|
422
|
+
return no(`stative-with-value:${done[0]}`);
|
|
423
|
+
const plain = blankAsides(head);
|
|
424
|
+
const after = STATE_AFTER.exec(plain);
|
|
425
|
+
if (after)
|
|
426
|
+
return no(`state-after:${after[0]}`);
|
|
427
|
+
if (RECURRING.test(plain))
|
|
428
|
+
return no('recurring');
|
|
429
|
+
const word = done[0];
|
|
430
|
+
if (CHECK.test(word)) {
|
|
431
|
+
const before = valueIn(rawHead.slice(0, done.index), head.slice(0, done.index));
|
|
432
|
+
// A bare domain before a check is usually the site being checked, not the value.
|
|
433
|
+
if (before && before !== 'host')
|
|
434
|
+
return no('check-of-value');
|
|
435
|
+
}
|
|
436
|
+
if (MOVE.test(word)) {
|
|
437
|
+
const end = done.index + word.length;
|
|
438
|
+
const to = TO_PLACE.exec(head.slice(end));
|
|
439
|
+
if (to) {
|
|
440
|
+
const start = head.length - to[1].length;
|
|
441
|
+
// The destination is the few words after the preposition, not the rest of the line.
|
|
442
|
+
const object = /^\S+(?:\s+\S+){0,2}/.exec(to[1])?.[0] ?? '';
|
|
443
|
+
const where = valueIn(rawHead.slice(start, start + object.length), object);
|
|
444
|
+
if (where === 'port' || where === 'host' || where === 'url' || where === 'path')
|
|
445
|
+
return no('move-to-place');
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
return { record: true, why: 'record' };
|
|
449
|
+
}
|
|
450
|
+
/**
|
|
451
|
+
* The class an unmarked fact gets from its text: permanent when it is a dated
|
|
452
|
+
* record of something done (2.9.1), else volatile when a rule fires (and
|
|
453
|
+
* which one), normal otherwise.
|
|
454
|
+
*/
|
|
455
|
+
function detectShelf(text, temporal) {
|
|
170
456
|
const raw = String(text || '');
|
|
171
457
|
if (!raw.trim())
|
|
172
458
|
return { shelf: 'normal' };
|
|
459
|
+
if (temporal !== 'current' && isDatedRecord(raw))
|
|
460
|
+
return { shelf: 'permanent', reason: 'history' };
|
|
173
461
|
const t = fold(raw);
|
|
174
462
|
for (const r of RULES) {
|
|
175
463
|
if (r.test(raw, t))
|
|
@@ -179,11 +467,25 @@ function detectShelf(text) {
|
|
|
179
467
|
return { shelf: 'volatile', reason: 'role' };
|
|
180
468
|
return { shelf: 'normal' };
|
|
181
469
|
}
|
|
182
|
-
/**
|
|
470
|
+
/**
|
|
471
|
+
* The class that applies to a fact: its explicit shelf_life; else permanent
|
|
472
|
+
* when the miner imported it (2.9.1: an imported note is a copy of something
|
|
473
|
+
* written elsewhere, at some other time, and was never a claim this memory
|
|
474
|
+
* made about the present — warning on it is noise); else the one its text
|
|
475
|
+
* implies.
|
|
476
|
+
*
|
|
477
|
+
* `current` impide inferir historia por origen o texto, sin verificar nada.
|
|
478
|
+
* Sin temporalidad explícita se conserva la clasificación legacy por
|
|
479
|
+
* confirmations; repetir ya no cambia la fecha de verificación.
|
|
480
|
+
*/
|
|
183
481
|
function shelfOfFact(f) {
|
|
184
482
|
if (isShelfLife(f.shelf_life))
|
|
185
483
|
return { shelf: f.shelf_life, inferred: false };
|
|
186
|
-
|
|
484
|
+
if (f.temporal === 'historical')
|
|
485
|
+
return { shelf: 'permanent', inferred: true, reason: 'history' };
|
|
486
|
+
if (f.temporal !== 'current' && f.source === 'miner' && !f.verified && (f.confirmations ?? 1) <= 1)
|
|
487
|
+
return { shelf: 'permanent', inferred: true, reason: 'miner' };
|
|
488
|
+
const d = detectShelf(f.text, f.temporal);
|
|
187
489
|
return { shelf: d.shelf, inferred: true, ...(d.reason ? { reason: d.reason } : {}) };
|
|
188
490
|
}
|
|
189
491
|
/**
|
|
@@ -203,10 +505,42 @@ function shelfOfKind(kind) {
|
|
|
203
505
|
return null;
|
|
204
506
|
}
|
|
205
507
|
}
|
|
206
|
-
|
|
508
|
+
/**
|
|
509
|
+
* How long after `created` a stamp may come and still belong to a brain born
|
|
510
|
+
* stamped: initialize() writes both in the same call, an upgrade writes the
|
|
511
|
+
* stamp at the first boot of a new version, days or months later.
|
|
512
|
+
*/
|
|
513
|
+
const LEGACY_MARGIN_MS = 60_000;
|
|
514
|
+
/**
|
|
515
|
+
* Whether a brain predates shelf life, from its manifest: not stamped yet, a
|
|
516
|
+
* creation date that cannot be read, or a stamp later than its creation by
|
|
517
|
+
* more than LEGACY_MARGIN_MS.
|
|
518
|
+
*/
|
|
519
|
+
function isLegacyBrain(created, since) {
|
|
520
|
+
const s = parseMs(since ?? undefined);
|
|
521
|
+
if (s === null)
|
|
522
|
+
return true;
|
|
523
|
+
const c = parseMs(created ?? undefined);
|
|
524
|
+
if (c === null)
|
|
525
|
+
return true;
|
|
526
|
+
return s - c > LEGACY_MARGIN_MS;
|
|
527
|
+
}
|
|
528
|
+
/**
|
|
529
|
+
* `created` is the manifest's: pass it (see stalenessContextOf) and the
|
|
530
|
+
* context knows whether the brain is legacy. Left out, it is not legacy —
|
|
531
|
+
* the 2.9.0 behaviour, where a volatile fact never got the grace.
|
|
532
|
+
*/
|
|
533
|
+
function stalenessContext(since, env = process.env, nowMs = Date.now(), created) {
|
|
207
534
|
if (!stalenessEnabled(env))
|
|
208
535
|
return null;
|
|
209
|
-
|
|
536
|
+
const legacy = created !== undefined && isLegacyBrain(created, since);
|
|
537
|
+
return { nowMs, windows: shelfWindows(env), ...(since ? { since } : {}), ...(legacy ? { legacy: true } : {}) };
|
|
538
|
+
}
|
|
539
|
+
/** The context for a brain, from its manifest (or none, when it could not be read: no legacy, full grace). */
|
|
540
|
+
function stalenessContextOf(manifest, env = process.env, nowMs = Date.now()) {
|
|
541
|
+
if (!manifest)
|
|
542
|
+
return stalenessContext(undefined, env, nowMs);
|
|
543
|
+
return stalenessContext(manifest.staleness_since, env, nowMs, manifest.created ?? null);
|
|
210
544
|
}
|
|
211
545
|
const parseMs = (iso) => {
|
|
212
546
|
if (!iso || typeof iso !== 'string')
|
|
@@ -294,10 +628,14 @@ function factStaleness(f, ctx) {
|
|
|
294
628
|
// the recorded date, never from a day that has not come.
|
|
295
629
|
const verified = plausibleCheck(f.verified, ctx.nowMs);
|
|
296
630
|
const clock = verified ?? f.added;
|
|
297
|
-
// Legacy grace: never re-checked, nobody chose its class
|
|
298
|
-
//
|
|
299
|
-
//
|
|
300
|
-
|
|
631
|
+
// Legacy grace: never re-checked, nobody chose its class. A volatile fact
|
|
632
|
+
// gets it only in a brain that predates shelf life (2.9.1): there the
|
|
633
|
+
// detector's volatile lines are hundreds, written before anyone could mark
|
|
634
|
+
// them, and flagging them all on upgrade day buries the few that matter. A
|
|
635
|
+
// fact marked volatile by hand gets none (not inferred), and in a brain
|
|
636
|
+
// born with shelf life neither does an inferred one: a port saved months
|
|
637
|
+
// ago deserves the warning on the first recall that serves it.
|
|
638
|
+
const graceable = !verified && s.inferred && (s.shelf !== 'volatile' || ctx.legacy === true);
|
|
301
639
|
return judge(s.shelf, s.inferred, s.reason, clock, graceable, ctx, (0, ops_js_1.entryId)(f.text));
|
|
302
640
|
}
|
|
303
641
|
/**
|
package/dist/engine/shelf.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shelf.js","sourceRoot":"","sources":["../../src/engine/shelf.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"shelf.js","sourceRoot":"","sources":["../../src/engine/shelf.ts"],"names":[],"mappings":"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"}
|
package/dist/search/index.d.ts
CHANGED
|
@@ -24,6 +24,11 @@ export type RecallKind = typeof RECALL_KINDS[number];
|
|
|
24
24
|
export interface SearchFilter {
|
|
25
25
|
since?: string;
|
|
26
26
|
kinds?: readonly string[];
|
|
27
|
+
neuronIds?: readonly string[];
|
|
28
|
+
includeGlobal?: boolean;
|
|
29
|
+
/** Explicit project membership excludes those neurons from global lessons. */
|
|
30
|
+
globalExcludedNeurons?: readonly string[];
|
|
31
|
+
preferNeurons?: readonly string[];
|
|
27
32
|
}
|
|
28
33
|
/** Filled in by search/searchMany when the caller passes it: what the list left out. */
|
|
29
34
|
export interface SearchStats {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/search/index.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAQ,MAAM,mBAAmB,CAAC;AAEpE;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,IAAI,CAAC;AAkE/B,oFAAoF;AACpF,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAM1E;AAED,8FAA8F;AAC9F,eAAO,MAAM,YAAY,gFAAiF,CAAC;AAC3G,MAAM,MAAM,UAAU,GAAG,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AAErD;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/search/index.ts"],"names":[],"mappings":"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"}
|
package/dist/search/index.js
CHANGED
|
@@ -581,7 +581,16 @@ class SearchEngine {
|
|
|
581
581
|
const desde = (options?.since || '').slice(0, 10);
|
|
582
582
|
const clases = options?.kinds && options.kinds.length > 0 ? new Set(options.kinds) : null;
|
|
583
583
|
const sinFecha = new Set();
|
|
584
|
+
const allowed = options?.neuronIds ? new Set(options.neuronIds) : null;
|
|
585
|
+
const owned = new Set(options?.globalExcludedNeurons || []);
|
|
584
586
|
const admite = (doc) => {
|
|
587
|
+
if (allowed && !allowed.has(doc.neuron || '')) {
|
|
588
|
+
const global = options?.includeGlobal && (doc.kind === 'preference' ||
|
|
589
|
+
(!!doc.neuron && /^(tech_|process_)/.test(doc.neuron) && !owned.has(doc.neuron) &&
|
|
590
|
+
['pattern', 'error', 'debt'].includes(doc.kind || '')));
|
|
591
|
+
if (!global)
|
|
592
|
+
return false;
|
|
593
|
+
}
|
|
585
594
|
if (clases && !clases.has(String(doc.kind || '')))
|
|
586
595
|
return false;
|
|
587
596
|
if (desde) {
|
|
@@ -632,6 +641,8 @@ class SearchEngine {
|
|
|
632
641
|
// of their own, so a long narrative cannot outrank the fact that
|
|
633
642
|
// answers, and the neuron path below never sees them.
|
|
634
643
|
if (doc.kind === 'session') {
|
|
644
|
+
if (allowed)
|
|
645
|
+
continue; // A daily narrative has no reliable project boundary.
|
|
635
646
|
if (clases)
|
|
636
647
|
continue; // a day log is not an entry kind
|
|
637
648
|
if (desde && String(doc.added || '').slice(0, 10) < desde)
|
|
@@ -713,7 +724,7 @@ class SearchEngine {
|
|
|
713
724
|
// shown five results cannot tell "five matched" from "five of forty".
|
|
714
725
|
if (options?.stats)
|
|
715
726
|
options.stats.matched_neurons = byNeuron.size;
|
|
716
|
-
return this.materializeResults([...byNeuron.values()], limit, terms.length);
|
|
727
|
+
return this.materializeResults([...byNeuron.values()], limit, terms.length, options?.preferNeurons);
|
|
717
728
|
}
|
|
718
729
|
/**
|
|
719
730
|
* Several phrasings of one question, searched together and fused by
|
|
@@ -790,10 +801,11 @@ class SearchEngine {
|
|
|
790
801
|
});
|
|
791
802
|
}
|
|
792
803
|
const escala = (RRF_K + 1) / listas.length;
|
|
804
|
+
const preferred = new Set(options.preferNeurons || []);
|
|
793
805
|
if (options.stats)
|
|
794
806
|
options.stats.matched_neurons = fused.size;
|
|
795
807
|
return [...fused.values()]
|
|
796
|
-
.sort((a, b) => b.score - a.score)
|
|
808
|
+
.sort((a, b) => Number(preferred.has(b.best.neuron_id)) - Number(preferred.has(a.best.neuron_id)) || b.score - a.score)
|
|
797
809
|
.slice(0, limit)
|
|
798
810
|
.map(f => {
|
|
799
811
|
const r = { ...f.best, relevance_score: Math.round(f.score * escala * 1000) / 1000 };
|
|
@@ -907,22 +919,23 @@ class SearchEngine {
|
|
|
907
919
|
* fall back to its next valid chunk instead. Stale neurons are quietly
|
|
908
920
|
* re-indexed; chunks of deleted neurons are removed on the spot.
|
|
909
921
|
*/
|
|
910
|
-
async materializeResults(porNeurona, limit, queryTermCount) {
|
|
922
|
+
async materializeResults(porNeurona, limit, queryTermCount, preferNeurons) {
|
|
911
923
|
// Only the plausible head pays the neuron reads: nothing below it could
|
|
912
924
|
// reach the answer even if everything above dropped out.
|
|
913
|
-
|
|
925
|
+
const preferred = new Set(preferNeurons || []);
|
|
926
|
+
porNeurona.sort((a, b) => Number(preferred.has(b[0].neuron)) - Number(preferred.has(a[0].neuron)) || b[0].score - a[0].score);
|
|
914
927
|
const candidatos = porNeurona.slice(0, Math.max(limit * 3, limit + 8));
|
|
915
928
|
const resultados = [];
|
|
916
929
|
// Shelf life (staleness): judged here, where the neuron file is already
|
|
917
930
|
// read for every candidate, so it costs one lookup per row and nothing in
|
|
918
931
|
// the index. The ranking below does not look at it: the server partitions
|
|
919
932
|
// the rows AFTER they are chosen. Off with CRBRO_STALENESS=0.
|
|
920
|
-
let
|
|
933
|
+
let manifiesto;
|
|
921
934
|
try {
|
|
922
|
-
|
|
935
|
+
manifiesto = await this.brain.getManifest();
|
|
923
936
|
}
|
|
924
937
|
catch { /* no manifest yet: full grace */ }
|
|
925
|
-
const vida = (0, shelf_js_1.
|
|
938
|
+
const vida = (0, shelf_js_1.stalenessContextOf)(manifiesto);
|
|
926
939
|
// Provenance (2.7) needs two small files — which space a neuron is shared
|
|
927
940
|
// in, and who "me" is — but only when a result is a teammate's. Read at
|
|
928
941
|
// most once per call, and never on a brain nobody shares with.
|
|
@@ -1014,7 +1027,7 @@ class SearchEngine {
|
|
|
1014
1027
|
// neighbour also scored was measured on 633 queries over the reference
|
|
1015
1028
|
// brain and changed recall@3 by 0.15 points at most. Pre-registration and
|
|
1016
1029
|
// numbers in benchmarks/synapse-activation/; mechanism in commit 69917ce.
|
|
1017
|
-
resultados.sort((a, b) => b.r.relevance_score - a.r.relevance_score);
|
|
1030
|
+
resultados.sort((a, b) => Number(preferred.has(b.r.neuron_id)) - Number(preferred.has(a.r.neuron_id)) || b.r.relevance_score - a.r.relevance_score);
|
|
1018
1031
|
const top = resultados.slice(0, limit);
|
|
1019
1032
|
// The neuron's next best lines, for the head of the list only: the line
|
|
1020
1033
|
// you need is not always the one that scored highest. Measured, it lifts
|