memonaut 0.2.0 → 0.4.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.
@@ -1 +1 @@
1
- {"version":3,"file":"cli-main.d.ts","sourceRoot":"","sources":["../src/cli-main.ts"],"names":[],"mappings":"AA8NA;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GAAG,SAAS,GACzB,MAAM,GAAG,IAAI,CAqBf;AAiWD,uEAAuE;AACvE,wBAAsB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAMzC"}
1
+ {"version":3,"file":"cli-main.d.ts","sourceRoot":"","sources":["../src/cli-main.ts"],"names":[],"mappings":"AAwPA;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GAAG,SAAS,GACzB,MAAM,GAAG,IAAI,CAqBf;AAueD,uEAAuE;AACvE,wBAAsB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAMzC"}
package/dist/cli-main.js CHANGED
@@ -5,11 +5,12 @@ import { parseArgs } from 'node:util';
5
5
  import { loadConfig, writeStarterConfig } from './config.js';
6
6
  import { getMeta, openDb } from './db.js';
7
7
  import { colorsEnabled, makeStyle, renderHit, renderTable, relativeTime, tildify, } from './format.js';
8
- import { index } from './indexer.js';
8
+ import { freshness, index } from './indexer.js';
9
9
  import { TIERS } from './model.js';
10
10
  import { readRawEntry } from './pi-source.js';
11
11
  import { DEFAULT_MAX_MATCHES, DEFAULT_MAX_PER_FILE, regexSearch, } from './regex.js';
12
12
  import { indexStats, readThread, resolveThread, search } from './search.js';
13
+ import { availableSkills, destinationFor, installSkills, isInstalled, } from './skills.js';
13
14
  const USAGE = `memonaut — search your agent conversation transcripts
14
15
 
15
16
  USAGE
@@ -20,9 +21,12 @@ COMMANDS
20
21
  search <query...> Search transcripts, grouped by fork lineage
21
22
  search --regex <pat> Exact regex search over the original transcripts
22
23
  show <ref> Print a thread (file id, session uuid prefix, name or path)
24
+ (show and sql sync first too; --no-sync skips it)
23
25
  sql <query> Run a read-only SQL query against the index
24
26
  stats Summarise what is indexed
27
+ status How fresh the index is, and how much is pending
25
28
  config Show config paths, or write a starter config
29
+ skills [install] List or install the agent skill (into ~/.agents/skills)
26
30
 
27
31
  SEARCH OPTIONS
28
32
  --cwd <glob> Filter by working directory (repeatable, globs, ~ ok)
@@ -67,6 +71,9 @@ QUERY SYNTAX
67
71
  match in order, OR / NOT / NEAR(a b, 5) work, and trailing * is a prefix.
68
72
  If that fails to parse, the query is retried as quoted literal tokens.
69
73
 
74
+ SKILLS OPTIONS
75
+ --project Install into ./.agents/skills instead of ~/.agents/skills
76
+
70
77
  EXAMPLES
71
78
  recall search steering queue --project wherever --since 30d
72
79
  recall search '"fork point" OR parentSession' --threads all
@@ -132,14 +139,25 @@ function withTier(config, tier) {
132
139
  fail(`unknown tier "${tier}" (expected ${TIERS.join(', ')})`);
133
140
  return { ...config, tier: tier };
134
141
  }
135
- /** Cheap incremental catch-up so a query is never answered from a stale index. */
142
+ /**
143
+ * Cheap incremental catch-up so a query is never answered from a stale index.
144
+ *
145
+ * A missing index builds itself here rather than failing. Telling somebody who
146
+ * just typed a search to go and type a different command first is a worse
147
+ * answer than taking ~35 s once and saying so.
148
+ */
136
149
  function sync(config, quiet) {
137
- if (!fs.existsSync(config.dbPath)) {
138
- fail(`no index at ${tildify(config.dbPath)}. Run \`recall index\` first.`);
150
+ // "Cold" is about whether a build has ever FINISHED, not whether a file is
151
+ // there: an interrupted first build leaves a file behind, and judging by
152
+ // existence alone would swallow the banner and hand the user a silent
153
+ // 35-second hang the second time too.
154
+ const cold = lastIndexedAt(config) === null;
155
+ if (cold && !quiet) {
156
+ process.stderr.write(`recall: no index at ${tildify(config.dbPath)} yet, building it once (well under a minute)…\n`);
139
157
  }
140
158
  const stats = index({ config, onProgress: () => { } });
141
159
  if (!quiet && stats.filesIndexed > 0) {
142
- process.stderr.write(`recall: synced ${stats.filesIndexed} transcript(s) in ${stats.durationMs}ms\n`);
160
+ process.stderr.write(`recall: ${cold ? 'indexed' : 'synced'} ${stats.filesIndexed} transcript(s) in ${stats.durationMs}ms\n`);
143
161
  }
144
162
  }
145
163
  function cmdIndex(argv) {
@@ -358,6 +376,7 @@ function cmdShow(argv) {
358
376
  limit: { type: 'string', default: '40' },
359
377
  full: { type: 'boolean', default: false },
360
378
  json: { type: 'boolean', default: false },
379
+ 'no-sync': { type: 'boolean', default: false },
361
380
  },
362
381
  allowPositionals: true,
363
382
  });
@@ -365,6 +384,11 @@ function cmdShow(argv) {
365
384
  if (!ref)
366
385
  fail('which thread? Pass a file id, a session uuid prefix, a name, or a path');
367
386
  const config = loadConfig();
387
+ // A thread can have grown since the search that found it, so this syncs too:
388
+ // "every query syncs before it answers" has to be true of all of them, or the
389
+ // sentence is not worth writing down.
390
+ if (!values['no-sync'])
391
+ sync(config, Boolean(values.json));
368
392
  const db = openDb(config.dbPath, { readOnly: true });
369
393
  const thread = resolveThread(db, ref);
370
394
  if (!thread)
@@ -416,6 +440,7 @@ function cmdSql(argv) {
416
440
  options: {
417
441
  json: { type: 'boolean', default: false },
418
442
  limit: { type: 'string', default: '200' },
443
+ 'no-sync': { type: 'boolean', default: false },
419
444
  },
420
445
  allowPositionals: true,
421
446
  });
@@ -423,6 +448,8 @@ function cmdSql(argv) {
423
448
  if (!sql)
424
449
  fail('no SQL given');
425
450
  const config = loadConfig();
451
+ if (!values['no-sync'])
452
+ sync(config, Boolean(values.json));
426
453
  const db = openDb(config.dbPath, { readOnly: true });
427
454
  let rows;
428
455
  try {
@@ -479,6 +506,73 @@ function cmdStats(argv) {
479
506
  ].join('\n') + '\n');
480
507
  db.close();
481
508
  }
509
+ /** Epoch ms of the last COMPLETED catch-up, or null if one never finished. */
510
+ function lastIndexedAt(config) {
511
+ if (!fs.existsSync(config.dbPath))
512
+ return null;
513
+ try {
514
+ const db = openDb(config.dbPath, { readOnly: true });
515
+ try {
516
+ const value = Number(getMeta(db, 'indexed_at') ?? NaN);
517
+ return Number.isFinite(value) ? value : null;
518
+ }
519
+ finally {
520
+ db.close();
521
+ }
522
+ }
523
+ catch {
524
+ return null;
525
+ }
526
+ }
527
+ /**
528
+ * `recall status`: how far behind the index is, without touching it.
529
+ *
530
+ * Every read path syncs before it answers, so this is not what keeps results
531
+ * correct. It exists so a human (or a scheduler asking whether it is earning
532
+ * its keep) can see the lag, and tell "nothing to do" apart from "the next
533
+ * query pays for a month of catch-up".
534
+ */
535
+ function cmdStatus(argv) {
536
+ const { values } = parseArgs({
537
+ args: argv,
538
+ options: { json: { type: 'boolean', default: false } },
539
+ allowPositionals: false,
540
+ });
541
+ const config = loadConfig();
542
+ const report = freshness(config);
543
+ const pending = report.changed + report.unseen + report.vanished;
544
+ if (values.json) {
545
+ process.stdout.write(JSON.stringify({
546
+ ...report,
547
+ pending,
548
+ indexedAt: report.indexedAt
549
+ ? new Date(report.indexedAt).toISOString()
550
+ : null,
551
+ }, null, 2) + '\n');
552
+ return;
553
+ }
554
+ const style = makeStyle(colorsEnabled());
555
+ if (!report.exists) {
556
+ process.stdout.write([
557
+ `${style.bold('no index yet')} at ${tildify(report.dbPath)}`,
558
+ `${report.transcriptsOnDisk} transcript(s) on disk waiting to be indexed`,
559
+ style.dim('Run `recall index`, or just search: any query builds it.'),
560
+ ].join('\n') + '\n');
561
+ return;
562
+ }
563
+ const verdict = pending === 0
564
+ ? style.bold('up to date')
565
+ : style.bold(`${pending} transcript(s) pending`);
566
+ process.stdout.write([
567
+ `${verdict} · last indexed ${relativeTime(report.indexedAt ? new Date(report.indexedAt).toISOString() : null)}`,
568
+ `${report.transcriptsIndexed} indexed · ${report.changed} changed · ${report.unseen} never seen · ${report.vanished} gone · ${report.transcriptsOnDisk} on disk`,
569
+ `tier ${report.tier ?? '?'} · db ${(report.dbBytes / 1e6).toFixed(1)} MB`,
570
+ style.dim(tildify(report.dbPath)),
571
+ style.dim(pending === 0
572
+ ? 'Every search syncs first, so this is informational.'
573
+ : `Every search syncs first, so those ${pending} will be folded in by the next query.`),
574
+ ].join('\n') + '\n');
575
+ }
482
576
  function cmdConfig(argv) {
483
577
  const { values } = parseArgs({
484
578
  args: argv,
@@ -507,6 +601,36 @@ function cmdConfig(argv) {
507
601
  `private ${config.private.join(', ') || '(none)'}`,
508
602
  ].join('\n') + '\n');
509
603
  }
604
+ /**
605
+ * `recall skills [list|install]`.
606
+ *
607
+ * Kept flag-light on purpose: the only real decision is user versus project scope.
608
+ */
609
+ function cmdSkills(argv) {
610
+ const scope = argv.includes('--project') ? 'project' : 'user';
611
+ const verb = argv.find((argument) => !argument.startsWith('-')) ?? 'list';
612
+ if (verb !== 'list' && verb !== 'install')
613
+ fail(`unknown skills command "${verb}". Try \`list\` or \`install\``);
614
+ const available = availableSkills();
615
+ if (available.length === 0) {
616
+ fail('no skills found beside this package. A published install carries them; a checkout keeps them at the repo root');
617
+ }
618
+ const style = makeStyle(colorsEnabled());
619
+ if (verb === 'list') {
620
+ process.stdout.write(tildify(destinationFor(scope)) + '\n\n');
621
+ for (const skill of available) {
622
+ const mark = isInstalled(skill, scope) ? 'installed' : 'not installed';
623
+ process.stdout.write(` ${style.bold(skill.name)} ${style.dim(`(${mark})`)}\n ${skill.description}\n\n`);
624
+ }
625
+ process.stdout.write('Run `recall skills install` to copy them in.\n');
626
+ return;
627
+ }
628
+ const installed = installSkills(scope);
629
+ for (const entry of installed) {
630
+ process.stdout.write(` ${entry.replaced ? 'replaced' : 'installed'} ${tildify(entry.to)}\n`);
631
+ }
632
+ process.stdout.write(style.dim(`\n${installed.length} skill${installed.length === 1 ? '' : 's'} copied. They are copies, so re-run this after upgrading memonaut.\n`));
633
+ }
510
634
  async function main() {
511
635
  const argv = process.argv.slice(2);
512
636
  const command = argv[0];
@@ -523,8 +647,12 @@ async function main() {
523
647
  return cmdSql(rest);
524
648
  case 'stats':
525
649
  return cmdStats(rest);
650
+ case 'status':
651
+ return cmdStatus(rest);
526
652
  case 'config':
527
653
  return cmdConfig(rest);
654
+ case 'skills':
655
+ return cmdSkills(rest);
528
656
  case '--version':
529
657
  case '-v':
530
658
  process.stdout.write(version() + '\n');
@@ -1 +1 @@
1
- {"version":3,"file":"cli-main.js","sourceRoot":"","sources":["../src/cli-main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-main.js","sourceRoot":"","sources":["../src/cli-main.ts"],"names":[],"mappings":"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"}
package/dist/db.d.ts CHANGED
@@ -11,6 +11,15 @@ export interface OpenOptions {
11
11
  readOnly?: boolean;
12
12
  /** Throw instead of rebuilding when the schema version differs. */
13
13
  noRebuild?: boolean;
14
+ /**
15
+ * Leave `query_only` off on a read-only connection, so TEMP objects can be
16
+ * created. The index file itself is still unwritable, because that comes
17
+ * from opening it read-only, not from the pragma.
18
+ *
19
+ * This exists for one caller: the SQL tool shadows the real tables with temp
20
+ * views so arbitrary queries cannot reach private transcripts.
21
+ */
22
+ writableTemp?: boolean;
14
23
  }
15
24
  export declare function getMeta(db: DB, key: string): string | undefined;
16
25
  export declare function setMeta(db: DB, key: string, value: string): void;
package/dist/db.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAEzC;;;;;GAKG;AACH,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC,MAAM,MAAM,EAAE,GAAG,YAAY,CAAC;AA6F9B,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mEAAmE;IACnE,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAI/D;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAIhE;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,EAAE,CAqCjE;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,CAYpC;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAW5D;AAED,2EAA2E;AAC3E,wBAAgB,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAOvD"}
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAEzC;;;;;GAKG;AACH,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC,MAAM,MAAM,EAAE,GAAG,YAAY,CAAC;AA0G9B,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mEAAmE;IACnE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAI/D;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAIhE;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,WAAgB,GAAG,EAAE,CAyCjE;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,CAYpC;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAW5D;AAED,2EAA2E;AAC3E,wBAAgB,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAOvD"}
package/dist/db.js CHANGED
@@ -8,6 +8,18 @@ import { DatabaseSync } from 'node:sqlite';
8
8
  * carrying migration code forever.
9
9
  */
10
10
  export const SCHEMA_VERSION = 1;
11
+ /**
12
+ * How long a connection waits for a writer to finish before giving up.
13
+ *
14
+ * Several processes share this index by design: the human's CLI, a pi
15
+ * extension flushing on shutdown, and any number of concurrent agents, each of
16
+ * which syncs before it queries. Without a busy timeout SQLite returns
17
+ * SQLITE_BUSY on the FIRST contended write, which surfaces to an agent as a
18
+ * failed recall. A warm catch-up takes ~120 ms and a cold build ~35 s, so 5 s
19
+ * covers every realistic overlap except a first-ever build, which is exactly
20
+ * the case where failing fast and reporting it is the honest answer.
21
+ */
22
+ const BUSY_TIMEOUT_MS = 5_000;
11
23
  const SCHEMA = `
12
24
  CREATE TABLE IF NOT EXISTS meta(
13
25
  key TEXT PRIMARY KEY,
@@ -117,12 +129,17 @@ export function openDb(dbPath, opts = {}) {
117
129
  throw new Error(`no index at ${dbPath}. Run \`recall index\` first.`);
118
130
  }
119
131
  const db = new DatabaseSync(dbPath, { readOnly: true });
120
- db.exec('PRAGMA query_only = 1');
132
+ if (!opts.writableTemp)
133
+ db.exec('PRAGMA query_only = 1');
134
+ // Readers do not block on writers under WAL, but they do contend with
135
+ // checkpointing, so the timeout matters here too.
136
+ db.exec(`PRAGMA busy_timeout = ${BUSY_TIMEOUT_MS}`);
121
137
  return db;
122
138
  }
123
139
  fs.mkdirSync(path.dirname(dbPath), { recursive: true });
124
140
  const fresh = !fs.existsSync(dbPath);
125
141
  const db = new DatabaseSync(dbPath);
142
+ db.exec(`PRAGMA busy_timeout = ${BUSY_TIMEOUT_MS}`);
126
143
  db.exec('PRAGMA journal_mode = WAL');
127
144
  db.exec('PRAGMA synchronous = NORMAL');
128
145
  db.exec('PRAGMA foreign_keys = OFF');
package/dist/db.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -9,5 +9,6 @@ export * from './search.js';
9
9
  export * from './regex.js';
10
10
  export { RipgrepError, RipgrepMissingError, ripgrepAvailable, ripgrepBinary, } from './ripgrep.js';
11
11
  export * from './format.js';
12
+ export * from './skills.js';
12
13
  export { silenceSqliteWarning } from './quiet.js';
13
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAG3B,OAAO,EACN,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,GACb,MAAM,cAAc,CAAC;AACtB,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAC,oBAAoB,EAAC,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAG3B,OAAO,EACN,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,GACb,MAAM,cAAc,CAAC;AACtB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAC,oBAAoB,EAAC,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -11,5 +11,6 @@ export * from './regex.js';
11
11
  // pre-flight check. Spawning rg is an implementation detail, not API.
12
12
  export { RipgrepError, RipgrepMissingError, ripgrepAvailable, ripgrepBinary, } from './ripgrep.js';
13
13
  export * from './format.js';
14
+ export * from './skills.js';
14
15
  export { silenceSqliteWarning } from './quiet.js';
15
16
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,6EAA6E;AAC7E,sEAAsE;AACtE,OAAO,EACN,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,GACb,MAAM,cAAc,CAAC;AACtB,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAC,oBAAoB,EAAC,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,6EAA6E;AAC7E,sEAAsE;AACtE,OAAO,EACN,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,GACb,MAAM,cAAc,CAAC;AACtB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAC,oBAAoB,EAAC,MAAM,YAAY,CAAC"}
package/dist/indexer.d.ts CHANGED
@@ -6,6 +6,21 @@ export interface IndexOptions {
6
6
  full?: boolean;
7
7
  db?: DB;
8
8
  onProgress?: (progress: IndexProgress) => void;
9
+ /**
10
+ * Stop ingesting once this many ms have passed, leaving the rest for the
11
+ * next run. Checked BETWEEN lineages, never inside one, so the per-lineage
12
+ * transaction and the watermark-written-last rule both still hold.
13
+ *
14
+ * For callers that must not hang: a session shutting down after a long gap
15
+ * could otherwise sit through a multi-second catch-up on the way out.
16
+ *
17
+ * It bounds the INGEST LOOP, not the whole run: the scan and the identity
18
+ * pass ahead of it are ~120 ms on a 4,831-file corpus and always run. A full
19
+ * rebuild is refused outright rather than truncated, see below.
20
+ */
21
+ budgetMs?: number;
22
+ /** Clock seam, so the budget can be tested without racing a real one. */
23
+ now?: () => number;
9
24
  }
10
25
  export interface IndexProgress {
11
26
  phase: 'scan' | 'ingest';
@@ -29,6 +44,8 @@ export interface IndexStats {
29
44
  bytesRead: number;
30
45
  durationMs: number;
31
46
  fullRebuild: boolean;
47
+ /** True when `budgetMs` cut the run short and work is still outstanding. */
48
+ budgetExhausted: boolean;
32
49
  }
33
50
  export declare function index(opts: IndexOptions): IndexStats;
34
51
  /** Absolute path of the index for a config, for messages and tooling. */
@@ -38,6 +55,17 @@ export interface SyncResult {
38
55
  ran: boolean;
39
56
  stats?: IndexStats;
40
57
  }
58
+ /**
59
+ * There is no index yet, as opposed to there being one that could not be read.
60
+ *
61
+ * The distinction is the whole point of the type. "No index" is fixed by
62
+ * building one; "index is locked" or "index is corrupt" is not, and a caller
63
+ * that collapses the two tells the user to run a command that will not help.
64
+ */
65
+ export declare class MissingIndexError extends Error {
66
+ readonly dbPath: string;
67
+ constructor(dbPath: string);
68
+ }
41
69
  /**
42
70
  * Catch the index up, unless it was already synced within `ttlMs`.
43
71
  *
@@ -46,5 +74,42 @@ export interface SyncResult {
46
74
  * turn. The TTL is what makes "always fresh" affordable for callers that query
47
75
  * in a burst.
48
76
  */
49
- export declare function syncIfStale(config: Config, ttlMs?: number): SyncResult;
77
+ export declare function syncIfStale(config: Config, ttlMs?: number, budgetMs?: number): SyncResult;
78
+ export interface Freshness {
79
+ dbPath: string;
80
+ exists: boolean;
81
+ dbBytes: number;
82
+ tier: string | null;
83
+ /** When the last catch-up finished, epoch ms. */
84
+ indexedAt: number | null;
85
+ ageMs: number | null;
86
+ /** Transcripts on disk, before ignore rules. */
87
+ transcriptsOnDisk: number;
88
+ /** Transcripts the index knows about. */
89
+ transcriptsIndexed: number;
90
+ /** Known transcripts that have grown or changed since their watermark. */
91
+ changed: number;
92
+ /**
93
+ * Transcripts whose CONTENT is not in the index: never discovered, or
94
+ * discovered but not yet ingested (a run cut short by its time budget
95
+ * registers the file before reading it). Ignore rules applied.
96
+ */
97
+ unseen: number;
98
+ /** Indexed transcripts no longer on disk, which the next sync will delete. */
99
+ vanished: number;
100
+ sources: string[];
101
+ }
102
+ /**
103
+ * How far behind the index is, without changing it.
104
+ *
105
+ * This is a `stat` pass over the corpus plus a header read for the few files
106
+ * the index has never seen, because whether a new file is ignored can only be
107
+ * decided from its header `cwd`, never from its mangled directory name.
108
+ * Measured at ~70 ms over 4,831 transcripts.
109
+ *
110
+ * Every read path already syncs before it answers, so this is not how anything
111
+ * stays correct: it is how a human or an agent can SEE the lag, and how they
112
+ * can tell "nothing to do" apart from "about to pay for a month of catch-up".
113
+ */
114
+ export declare function freshness(config: Config): Freshness;
50
115
  //# sourceMappingURL=indexer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../src/indexer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,EAAC,EAAE,EAAC,MAAM,SAAS,CAAC;AAahC,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,EAAE,CAAC,EAAE,EAAE,CAAC;IACR,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;CAC/C;AAED,MAAM,WAAW,aAAa;IAC7B,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;CACrB;AAgCD,wBAAgB,KAAK,CAAC,IAAI,EAAE,YAAY,GAAG,UAAU,CAsapD;AAED,yEAAyE;AACzE,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,MAAM,WAAW,UAAU;IAC1B,qEAAqE;IACrE,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,CAAC,EAAE,UAAU,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,SAAS,GAAG,UAAU,CAWtE"}
1
+ {"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../src/indexer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,EAAC,EAAE,EAAC,MAAM,SAAS,CAAC;AAahC,MAAM,WAAW,YAAY;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,EAAE,CAAC,EAAE,EAAE,CAAC;IACR,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IAC/C;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC7B,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,4EAA4E;IAC5E,eAAe,EAAE,OAAO,CAAC;CACzB;AAgCD,wBAAgB,KAAK,CAAC,IAAI,EAAE,YAAY,GAAG,UAAU,CA6bpD;AAED,yEAAyE;AACzE,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,MAAM,WAAW,UAAU;IAC1B,qEAAqE;IACrE,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,CAAC,EAAE,UAAU,CAAC;CACnB;AAED;;;;;;GAMG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBACZ,MAAM,EAAE,MAAM;CAK1B;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAC1B,MAAM,EAAE,MAAM,EACd,KAAK,SAAS,EACd,QAAQ,CAAC,EAAE,MAAM,GACf,UAAU,CAUZ;AAED,MAAM,WAAW,SAAS;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,iDAAiD;IACjD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,gDAAgD;IAChD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,yCAAyC;IACzC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAgFnD"}