crbro-memory 2.9.0 → 2.9.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.
- package/README.md +4 -4
- 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/cortex.js +20 -9
- package/dist/engine/cortex.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/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 -7
- package/dist/engine/shelf.d.ts.map +1 -1
- package/dist/engine/shelf.js +347 -10
- package/dist/engine/shelf.js.map +1 -1
- package/dist/search/index.js +3 -3
- package/dist/search/index.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +11 -18
- package/dist/server.js.map +1 -1
- package/dist/types/index.d.ts +5 -3
- package/dist/types/index.d.ts.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 +1 -1
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.
|
|
383
|
+
*/
|
|
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.
|
|
168
454
|
*/
|
|
169
455
|
function detectShelf(text) {
|
|
170
456
|
const raw = String(text || '');
|
|
171
457
|
if (!raw.trim())
|
|
172
458
|
return { shelf: 'normal' };
|
|
459
|
+
if (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,10 +467,23 @@ 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
|
+
* Once a session has said the same line too, it is no longer only an
|
|
478
|
+
* imported note: the duplicate branch of learn keeps `source: "miner"` but
|
|
479
|
+
* sets `verified` or adds a confirmation, and from then on the line is judged
|
|
480
|
+
* by its text like any other claim about the present.
|
|
481
|
+
*/
|
|
183
482
|
function shelfOfFact(f) {
|
|
184
483
|
if (isShelfLife(f.shelf_life))
|
|
185
484
|
return { shelf: f.shelf_life, inferred: false };
|
|
485
|
+
if (f.source === 'miner' && !f.verified && (f.confirmations ?? 1) <= 1)
|
|
486
|
+
return { shelf: 'permanent', inferred: true, reason: 'miner' };
|
|
186
487
|
const d = detectShelf(f.text);
|
|
187
488
|
return { shelf: d.shelf, inferred: true, ...(d.reason ? { reason: d.reason } : {}) };
|
|
188
489
|
}
|
|
@@ -203,10 +504,42 @@ function shelfOfKind(kind) {
|
|
|
203
504
|
return null;
|
|
204
505
|
}
|
|
205
506
|
}
|
|
206
|
-
|
|
507
|
+
/**
|
|
508
|
+
* How long after `created` a stamp may come and still belong to a brain born
|
|
509
|
+
* stamped: initialize() writes both in the same call, an upgrade writes the
|
|
510
|
+
* stamp at the first boot of a new version, days or months later.
|
|
511
|
+
*/
|
|
512
|
+
const LEGACY_MARGIN_MS = 60_000;
|
|
513
|
+
/**
|
|
514
|
+
* Whether a brain predates shelf life, from its manifest: not stamped yet, a
|
|
515
|
+
* creation date that cannot be read, or a stamp later than its creation by
|
|
516
|
+
* more than LEGACY_MARGIN_MS.
|
|
517
|
+
*/
|
|
518
|
+
function isLegacyBrain(created, since) {
|
|
519
|
+
const s = parseMs(since ?? undefined);
|
|
520
|
+
if (s === null)
|
|
521
|
+
return true;
|
|
522
|
+
const c = parseMs(created ?? undefined);
|
|
523
|
+
if (c === null)
|
|
524
|
+
return true;
|
|
525
|
+
return s - c > LEGACY_MARGIN_MS;
|
|
526
|
+
}
|
|
527
|
+
/**
|
|
528
|
+
* `created` is the manifest's: pass it (see stalenessContextOf) and the
|
|
529
|
+
* context knows whether the brain is legacy. Left out, it is not legacy —
|
|
530
|
+
* the 2.9.0 behaviour, where a volatile fact never got the grace.
|
|
531
|
+
*/
|
|
532
|
+
function stalenessContext(since, env = process.env, nowMs = Date.now(), created) {
|
|
207
533
|
if (!stalenessEnabled(env))
|
|
208
534
|
return null;
|
|
209
|
-
|
|
535
|
+
const legacy = created !== undefined && isLegacyBrain(created, since);
|
|
536
|
+
return { nowMs, windows: shelfWindows(env), ...(since ? { since } : {}), ...(legacy ? { legacy: true } : {}) };
|
|
537
|
+
}
|
|
538
|
+
/** The context for a brain, from its manifest (or none, when it could not be read: no legacy, full grace). */
|
|
539
|
+
function stalenessContextOf(manifest, env = process.env, nowMs = Date.now()) {
|
|
540
|
+
if (!manifest)
|
|
541
|
+
return stalenessContext(undefined, env, nowMs);
|
|
542
|
+
return stalenessContext(manifest.staleness_since, env, nowMs, manifest.created ?? null);
|
|
210
543
|
}
|
|
211
544
|
const parseMs = (iso) => {
|
|
212
545
|
if (!iso || typeof iso !== 'string')
|
|
@@ -294,10 +627,14 @@ function factStaleness(f, ctx) {
|
|
|
294
627
|
// the recorded date, never from a day that has not come.
|
|
295
628
|
const verified = plausibleCheck(f.verified, ctx.nowMs);
|
|
296
629
|
const clock = verified ?? f.added;
|
|
297
|
-
// Legacy grace: never re-checked, nobody chose its class
|
|
298
|
-
//
|
|
299
|
-
//
|
|
300
|
-
|
|
630
|
+
// Legacy grace: never re-checked, nobody chose its class. A volatile fact
|
|
631
|
+
// gets it only in a brain that predates shelf life (2.9.1): there the
|
|
632
|
+
// detector's volatile lines are hundreds, written before anyone could mark
|
|
633
|
+
// them, and flagging them all on upgrade day buries the few that matter. A
|
|
634
|
+
// fact marked volatile by hand gets none (not inferred), and in a brain
|
|
635
|
+
// born with shelf life neither does an inferred one: a port saved months
|
|
636
|
+
// ago deserves the warning on the first recall that serves it.
|
|
637
|
+
const graceable = !verified && s.inferred && (s.shelf !== 'volatile' || ctx.legacy === true);
|
|
301
638
|
return judge(s.shelf, s.inferred, s.reason, clock, graceable, ctx, (0, ops_js_1.entryId)(f.text));
|
|
302
639
|
}
|
|
303
640
|
/**
|
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.js
CHANGED
|
@@ -917,12 +917,12 @@ class SearchEngine {
|
|
|
917
917
|
// read for every candidate, so it costs one lookup per row and nothing in
|
|
918
918
|
// the index. The ranking below does not look at it: the server partitions
|
|
919
919
|
// the rows AFTER they are chosen. Off with CRBRO_STALENESS=0.
|
|
920
|
-
let
|
|
920
|
+
let manifiesto;
|
|
921
921
|
try {
|
|
922
|
-
|
|
922
|
+
manifiesto = await this.brain.getManifest();
|
|
923
923
|
}
|
|
924
924
|
catch { /* no manifest yet: full grace */ }
|
|
925
|
-
const vida = (0, shelf_js_1.
|
|
925
|
+
const vida = (0, shelf_js_1.stalenessContextOf)(manifiesto);
|
|
926
926
|
// Provenance (2.7) needs two small files — which space a neuron is shared
|
|
927
927
|
// in, and who "me" is — but only when a result is a teammate's. Read at
|
|
928
928
|
// most once per call, and never on a brain nobody shares with.
|