pi-para 0.6.1 → 0.6.3

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.
@@ -17,6 +17,7 @@ export class WikiScheduler {
17
17
  storeProvider;
18
18
  markDirty;
19
19
  handlers;
20
+ embedEnabled;
20
21
  constructor(opts) {
21
22
  this.wikiDir = opts.wikiDir;
22
23
  this.holderId = `scheduler:${process.pid}:${randomUUID()}`;
@@ -25,8 +26,10 @@ export class WikiScheduler {
25
26
  this.enabled = opts.enabled ?? true;
26
27
  this.storeProvider = opts.storeProvider ?? (() => null);
27
28
  this.markDirty = opts.markDirty ?? (() => { });
29
+ this.embedEnabled = opts.embedEnabled ?? false;
28
30
  this.handlers = {
29
31
  "wiki-maintenance": async () => this.runWikiMaintenance(),
32
+ "qmd-embed": async () => this.runQmdEmbed(),
30
33
  ...(opts.handlers ?? {}),
31
34
  };
32
35
  }
@@ -121,6 +124,39 @@ export class WikiScheduler {
121
124
  finally {
122
125
  releaseLease(this.state.db, leaseKey, this.holderId);
123
126
  }
127
+ // Chain background embedding so changed pages become vector-searchable.
128
+ // Runs as its own task (deduplicated) so reindex latency stays low and
129
+ // embedding failures are recorded/retried instead of breaking maintenance.
130
+ if (this.embedEnabled) {
131
+ this.enqueue("qmd-embed", {}, { dedupeKey: "qmd-embed", priority: 5 });
132
+ }
133
+ }
134
+ /**
135
+ * Generate vector embeddings for documents QMD reports as pending.
136
+ * Skips fast when the backlog is empty. Throws when the embedding pass
137
+ * reports errors so the scheduler records the failure and retries with
138
+ * backoff — BM25 search keeps working regardless.
139
+ */
140
+ async runQmdEmbed() {
141
+ const store = this.storeProvider();
142
+ if (!store)
143
+ return;
144
+ const status = await store.getStatus();
145
+ const pending = status.needsEmbedding ?? 0;
146
+ if (pending === 0)
147
+ return;
148
+ const leaseKey = `qmd-embed:${this.wikiDir}`;
149
+ if (!acquireLease(this.state.db, leaseKey, this.holderId, { ttlMs: 15 * 60_000 }))
150
+ return;
151
+ try {
152
+ const result = await store.embed();
153
+ if (result.errors > 0) {
154
+ throw new Error(`qmd embed finished with ${result.errors} error(s) (${result.chunksEmbedded} chunk(s) embedded, ${pending} doc(s) were pending)`);
155
+ }
156
+ }
157
+ finally {
158
+ releaseLease(this.state.db, leaseKey, this.holderId);
159
+ }
124
160
  }
125
161
  }
126
162
  const schedulers = new Map();
@@ -181,6 +217,22 @@ export function enqueueWikiMaintenance(wikiDir, store, markDirty, opts = {}) {
181
217
  debounceTimers.set(key, timer);
182
218
  return null;
183
219
  }
220
+ /**
221
+ * Enqueue a deduplicated background embedding pass (e.g. at session startup
222
+ * to drain a pre-existing needsEmbedding backlog). No-op scheduling cost when
223
+ * the backlog is empty — the task exits after one getStatus() call.
224
+ */
225
+ export function enqueueQmdEmbed(wikiDir, store, opts = {}) {
226
+ const scheduler = getWikiScheduler({
227
+ wikiDir,
228
+ dbPath: opts.dbPath,
229
+ storeProvider: () => store,
230
+ });
231
+ scheduler.embedEnabled = true;
232
+ const id = scheduler.enqueue("qmd-embed", {}, { dedupeKey: "qmd-embed", priority: 5 });
233
+ void scheduler.tick();
234
+ return id;
235
+ }
184
236
  export function resetSchedulersForTests() {
185
237
  for (const timer of debounceTimers.values())
186
238
  clearTimeout(timer);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scheduler/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scheduler/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAkB,MAAM,YAAY,CAAC;AAoB9D,MAAM,OAAO,aAAa;IACf,OAAO,CAAS;IAChB,QAAQ,CAAS;IACjB,KAAK,CAAmB;IACzB,KAAK,GAA0C,IAAI,CAAC;IACpD,OAAO,GAAG,KAAK,CAAC;IAChB,OAAO,GAAG,KAAK,CAAC;IAChB,MAAM,GAAG,KAAK,CAAC;IACN,UAAU,CAAS;IACnB,OAAO,CAAU;IACjB,aAAa,CAAwB;IACrC,SAAS,CAAa;IAC/B,QAAQ,CAAuC;IACvD,YAAY,CAAU;IAEtB,YAAY,IAA0B;QACpC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,aAAa,OAAO,CAAC,GAAG,IAAI,UAAU,EAAE,EAAE,CAAC;QAC3D,IAAI,CAAC,KAAK,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC;QAC1G,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,GAAG,MAAM,CAAC;QACjD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC;QACpC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC;QAC/C,IAAI,CAAC,QAAQ,GAAG;YACd,kBAAkB,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE;YACzD,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE;YAC3C,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;SACzB,CAAC;IACJ,CAAC;IAED,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACvD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QAC5B,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACjE,IAAI,CAAC,KAAgC,CAAC,KAAK,EAAE,EAAE,CAAC;IACnD,CAAC;IAED,IAAI;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,IAAI,CAAC,KAAK;YAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,UAAU,EAAE,CAAC;IACvC,CAAC;IAEO,UAAU;QAChB,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,OAAO,CAAC,QAAgB,EAAE,UAAmB,EAAE,EAAE,OAAsE,EAAE;QACvH,IAAI,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC;IAED,gBAAgB,CAAC,QAA8C;QAC7D,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,CAAC,CAAC;QAC3E,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC;YACH,SAAS,CAAC;gBACR,IAAI,IAAI,CAAC,OAAO;oBAAE,MAAM;gBACxB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;gBACpC,IAAI,CAAC,IAAI;oBAAE,MAAM;gBACjB,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACzB,SAAS,EAAE,CAAC;YACd,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,IAAI,CAAC,OAAO;gBAAE,IAAI,CAAC,UAAU,EAAE,CAAC;QACtC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,IAAe;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,2BAA2B,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;YACvG,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC1B,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM;gBAAE,OAAO;YACxC,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YACvC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;QACjI,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM;gBAAE,OAAO;YACxC,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACpF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;QAC3G,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,kBAAkB;QAC9B,MAAM,QAAQ,GAAG,oBAAoB,IAAI,CAAC,OAAO,EAAE,CAAC;QACpD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC;YAAE,OAAO;QACzF,IAAI,CAAC;YACH,MAAM,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACjC,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACnC,IAAI,KAAK;gBAAE,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,wCAAwC,CAAC,CAAC;QAC1E,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvD,CAAC;QACD,wEAAwE;QACxE,uEAAuE;QACvE,2EAA2E;QAC3E,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,WAAW;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,MAAM,CAAC,cAAc,IAAI,CAAC,CAAC;QAC3C,IAAI,OAAO,KAAK,CAAC;YAAE,OAAO;QAE1B,MAAM,QAAQ,GAAG,aAAa,IAAI,CAAC,OAAO,EAAE,CAAC;QAC7C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC;YAAE,OAAO;QAC1F,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;YACnC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CACb,2BAA2B,MAAM,CAAC,MAAM,cAAc,MAAM,CAAC,cAAc,uBAAuB,OAAO,uBAAuB,CACjI,CAAC;YACJ,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;CACF;AAED,MAAM,UAAU,GAAG,IAAI,GAAG,EAAyB,CAAC;AACpD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAyC,CAAC;AAExE,MAAM,UAAU,gBAAgB,CAAC,IAA0B;IACzD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,eAAe,CAAC;IACnF,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrC,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,IAAI,CAAC,QAAQ;YAAE,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5D,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;IAC1C,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC/B,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAA0B;IAC3D,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACzC,SAAS,CAAC,KAAK,EAAE,CAAC;IAClB,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAe,EAAE,MAAe;IAChE,MAAM,GAAG,GAAG,MAAM,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,eAAe,CAAC;IAChE,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC;QACV,YAAY,CAAC,KAAK,CAAC,CAAC;QACpB,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IACD,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,CAAC,SAAS;QAAE,OAAO;IACvB,SAAS,CAAC,IAAI,EAAE,CAAC;IACjB,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,OAAe,EACf,KAAe,EACf,SAAqB,EACrB,OAA8C,EAAE;IAEhD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,eAAe,CAAC;IACrE,MAAM,aAAa,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9C,IAAI,aAAa;QAAE,YAAY,CAAC,aAAa,CAAC,CAAC;IAE/C,MAAM,SAAS,GAAG,gBAAgB,CAAC;QACjC,OAAO;QACP,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,aAAa,EAAE,GAAG,EAAE,CAAC,KAAK;QAC1B,SAAS;KACV,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC;IACtC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QACjB,MAAM,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,kBAAkB,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QACtG,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;QACtB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;QAC5B,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3B,SAAS,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,kBAAkB,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3F,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC,EAAE,OAAO,CAAC,CAAC;IACX,KAAgC,CAAC,KAAK,EAAE,EAAE,CAAC;IAC5C,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC/B,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAe,EACf,KAAe,EACf,OAA4B,EAAE;IAE9B,MAAM,SAAS,GAAG,gBAAgB,CAAC;QACjC,OAAO;QACP,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,aAAa,EAAE,GAAG,EAAE,CAAC,KAAK;KAC3B,CAAC,CAAC;IACH,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IACvF,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;IACtB,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,uBAAuB;IACrC,KAAK,MAAM,KAAK,IAAI,cAAc,CAAC,MAAM,EAAE;QAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IACjE,cAAc,CAAC,KAAK,EAAE,CAAC;IACvB,KAAK,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,UAAU,EAAE,CAAC;QAC1C,SAAS,CAAC,IAAI,EAAE,CAAC;QACjB,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"session-capture.d.ts","sourceRoot":"","sources":["../../src/scheduler/session-capture.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErE,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEtE,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,QAAQ,GAAG,IAAI,CAAC;IACrC,KAAK,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC9D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,CACV,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EACjB,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,KACzD,OAAO,CAAC,aAAa,CAAC,CAAC;CAC7B;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,GAAG,IAAI,CAMpF;AAED,wBAAsB,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAQpG;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,SAAS,SAA2B,GACnC,OAAO,CAAC,qBAAqB,CAAC,CAIhC;AAED,wBAAsB,oCAAoC,CACxD,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAC/B,OAAO,CAAC,MAAM,EAAE,CAAC,CAGnB;AAED,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,qBAAqB,EAAE,EAChC,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAC/B,MAAM,EAAE,CAYV;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,kBAAkB,GAAG,oBAAoB,CA+B1F;AAED,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAgBtE"}
1
+ {"version":3,"file":"session-capture.d.ts","sourceRoot":"","sources":["../../src/scheduler/session-capture.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErE,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEtE,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,QAAQ,GAAG,IAAI,CAAC;IACrC,KAAK,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC9D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,CACV,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EACjB,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,KACzD,OAAO,CAAC,aAAa,CAAC,CAAC;CAC7B;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,GAAG,IAAI,CAMpF;AAED,wBAAsB,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAQpG;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,SAAS,SAA2B,GACnC,OAAO,CAAC,qBAAqB,CAAC,CAIhC;AAED,wBAAsB,oCAAoC,CACxD,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAC/B,OAAO,CAAC,MAAM,EAAE,CAAC,CAGnB;AAED,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,qBAAqB,EAAE,EAChC,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAC/B,MAAM,EAAE,CAYV;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,kBAAkB,GAAG,oBAAoB,CAuC1F;AAED,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAgBtE"}
@@ -43,7 +43,7 @@ export function enqueueCompletedSessions(scheduler, entries, opts = {}) {
43
43
  return ids;
44
44
  }
45
45
  export function createCaptureSessionHandler(deps) {
46
- return async (item) => {
46
+ return async (item, scheduler) => {
47
47
  const payload = item.payload;
48
48
  if (!payload.sessionPath)
49
49
  throw new Error("capture-session payload missing sessionPath");
@@ -69,6 +69,14 @@ export function createCaptureSessionHandler(deps) {
69
69
  }
70
70
  else {
71
71
  stateDb.recordSuccess(payload.sessionPath, scope, result.pagesCreated, result.pagesUpdated);
72
+ // Capture writes pages through processSession, which reindexes BM25
73
+ // inline but never embeds. Chain a deduplicated qmd-embed task so the
74
+ // new pages become vector-searchable without waiting for the next
75
+ // session startup drain. Enqueued on the same scheduler, so the
76
+ // surrounding tick loop claims it right after this task completes.
77
+ if (scheduler.embedEnabled && result.pagesCreated.length + result.pagesUpdated.length > 0) {
78
+ scheduler.enqueue("qmd-embed", {}, { dedupeKey: "qmd-embed", priority: 5 });
79
+ }
72
80
  }
73
81
  }
74
82
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"session-capture.js","sourceRoot":"","sources":["../../src/scheduler/session-capture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-capture.js","sourceRoot":"","sources":["../../src/scheduler/session-capture.ts"],"names":[],"mappings":"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"}
@@ -16,4 +16,22 @@ export declare function setProviderDims(profile: ProviderCredentialRef, value: s
16
16
  export declare function ensureEmbeddingProfile(config: ParaUserConfig): ProviderCredentialRef;
17
17
  export declare function ensureRerankProfile(config: ParaUserConfig): ProviderCredentialRef;
18
18
  export declare function disableRerank(config: ParaUserConfig): void;
19
+ /** Known API providers selectable in /wiki-settings (baseUrl + format prefilled). */
20
+ export interface ProviderPreset {
21
+ id: string;
22
+ label: string;
23
+ baseUrl: string;
24
+ apiFormat: "openai" | "anthropic";
25
+ defaultEmbedModel?: string;
26
+ defaultRerankModel?: string;
27
+ }
28
+ export declare const PROVIDER_PRESETS: ProviderPreset[];
29
+ export declare function findProviderPreset(id: string): ProviderPreset | undefined;
30
+ /**
31
+ * Apply a provider preset to an embedding/rerank profile: sets provider,
32
+ * baseUrl, apiFormat, and the preset's default model for the profile kind.
33
+ * Leaves credentialRef and dims untouched (dims must match any existing
34
+ * vector index; credential wiring is a separate explicit step).
35
+ */
36
+ export declare function applyProviderPreset(profile: ProviderCredentialRef, preset: ProviderPreset, kind: "embedding" | "rerank"): void;
19
37
  //# sourceMappingURL=settings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEzE,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,MAAM,CAG1F;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAK9F;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIjF;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAI5E;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAI9E;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAGtE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAGjE;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAEhE;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,qBAAqB,CAQ9G;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAEhF;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAEzE;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAI5E;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,qBAAqB,EAC9B,KAAK,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,eAAe,EACvE,KAAK,EAAE,MAAM,GACZ,IAAI,CAgBN;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIrF;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,cAAc,GAAG,qBAAqB,CAQpF;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,cAAc,GAAG,qBAAqB,CAQjF;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAE1D"}
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEzE,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,MAAM,CAG1F;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAK9F;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIjF;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAI5E;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAI9E;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAGtE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAGjE;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAEhE;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,qBAAqB,CAQ9G;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAEhF;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAEzE;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAI5E;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,qBAAqB,EAC9B,KAAK,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,eAAe,EACvE,KAAK,EAAE,MAAM,GACZ,IAAI,CAgBN;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIrF;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,cAAc,GAAG,qBAAqB,CAQpF;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,cAAc,GAAG,qBAAqB,CAQjF;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAE1D;AAID,qFAAqF;AACrF,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,QAAQ,GAAG,WAAW,CAAC;IAClC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,eAAO,MAAM,gBAAgB,EAAE,cAAc,EAoD5C,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAEzE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,qBAAqB,EAC9B,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,WAAW,GAAG,QAAQ,GAC3B,IAAI,CAMN"}
package/dist/settings.js CHANGED
@@ -99,6 +99,76 @@ export function ensureRerankProfile(config) {
99
99
  export function disableRerank(config) {
100
100
  config.qmd.rerank = null;
101
101
  }
102
+ export const PROVIDER_PRESETS = [
103
+ {
104
+ id: "openai",
105
+ label: "OpenAI",
106
+ baseUrl: "https://api.openai.com/v1",
107
+ apiFormat: "openai",
108
+ defaultEmbedModel: "text-embedding-3-small",
109
+ },
110
+ {
111
+ id: "openrouter",
112
+ label: "OpenRouter",
113
+ baseUrl: "https://openrouter.ai/api/v1",
114
+ apiFormat: "openai",
115
+ defaultEmbedModel: "openai/text-embedding-3-small",
116
+ },
117
+ {
118
+ id: "gemini",
119
+ label: "Google Gemini (OpenAI-compatible)",
120
+ baseUrl: "https://generativelanguage.googleapis.com/v1beta/openai",
121
+ apiFormat: "openai",
122
+ defaultEmbedModel: "text-embedding-004",
123
+ },
124
+ {
125
+ id: "mistral",
126
+ label: "Mistral",
127
+ baseUrl: "https://api.mistral.ai/v1",
128
+ apiFormat: "openai",
129
+ defaultEmbedModel: "mistral-embed",
130
+ },
131
+ {
132
+ id: "voyage",
133
+ label: "Voyage AI",
134
+ baseUrl: "https://api.voyageai.com/v1",
135
+ apiFormat: "openai",
136
+ defaultEmbedModel: "voyage-3-lite",
137
+ defaultRerankModel: "rerank-2-lite",
138
+ },
139
+ {
140
+ id: "jina",
141
+ label: "Jina AI",
142
+ baseUrl: "https://api.jina.ai/v1",
143
+ apiFormat: "openai",
144
+ defaultEmbedModel: "jina-embeddings-v3",
145
+ defaultRerankModel: "jina-reranker-v2-base-multilingual",
146
+ },
147
+ {
148
+ id: "ollama",
149
+ label: "Ollama (local server)",
150
+ baseUrl: "http://127.0.0.1:11434/v1",
151
+ apiFormat: "openai",
152
+ defaultEmbedModel: "nomic-embed-text",
153
+ },
154
+ ];
155
+ export function findProviderPreset(id) {
156
+ return PROVIDER_PRESETS.find((p) => p.id === id);
157
+ }
158
+ /**
159
+ * Apply a provider preset to an embedding/rerank profile: sets provider,
160
+ * baseUrl, apiFormat, and the preset's default model for the profile kind.
161
+ * Leaves credentialRef and dims untouched (dims must match any existing
162
+ * vector index; credential wiring is a separate explicit step).
163
+ */
164
+ export function applyProviderPreset(profile, preset, kind) {
165
+ profile.provider = preset.id;
166
+ profile.baseUrl = preset.baseUrl;
167
+ profile.apiFormat = preset.apiFormat;
168
+ const model = kind === "embedding" ? preset.defaultEmbedModel : preset.defaultRerankModel;
169
+ if (model)
170
+ profile.model = model;
171
+ }
102
172
  function parsePositiveInteger(value, fallback) {
103
173
  const parsed = parseInt(value, 10);
104
174
  return Number.isFinite(parsed) && parsed > 0 ? parsed : fallback;
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"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"}
package/dist/setup.js CHANGED
@@ -58,7 +58,7 @@ export function formatSetupResult(result) {
58
58
  lines.push(` ✓ ${change}`);
59
59
  for (const warning of result.warnings)
60
60
  lines.push(` ⚠ ${warning}`);
61
- lines.push("", "Next: restart open Pi sessions, then run /wiki or pi-para doctor.");
61
+ lines.push("", "Next: restart open Pi sessions, then run /wiki or `npx -y pi-para@latest doctor`.");
62
62
  return lines.join("\n");
63
63
  }
64
64
  export function resolveExtensionRef(localPath) {
package/dist/setup.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-para",
3
- "version": "0.6.1",
3
+ "version": "0.6.3",
4
4
  "description": "PARA Knowledge Base Extension for pi — persistent, LLM-curated personal wiki",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
package/src/commands.ts CHANGED
@@ -652,9 +652,12 @@ ${goal} — verified and complete.
652
652
  disableRerank,
653
653
  setProviderProfileField,
654
654
  setProviderDims,
655
+ PROVIDER_PRESETS,
656
+ applyProviderPreset,
655
657
  } = await import("./settings.js");
656
658
  const { listSchedulerTasks } = await import("./scheduler/controls.js");
657
- const { setSecret } = await import("./credentials.js");
659
+ const { setSecret, removeSecret, readSecretStore, redactCredential } = await import("./credentials.js");
660
+ const { existsSync } = await import("node:fs");
658
661
 
659
662
  const loaded = await loadParaConfig({ migrate: true });
660
663
  const config = loaded.config;
@@ -666,6 +669,12 @@ ${goal} — verified and complete.
666
669
  const queuedTasks = listSchedulerTasks(wikiDir, { status: "queued" }).length;
667
670
  const failedTasks = listSchedulerTasks(wikiDir, { status: "failed" }).length;
668
671
 
672
+ const secretStore = await readSecretStore(loaded.paths.secretsPath).catch(() => ({ version: 1 as const, secrets: {} }));
673
+ const secretCount = Object.keys(secretStore.secrets).length;
674
+ const secretsLabel = existsSync(loaded.paths.secretsPath)
675
+ ? `${secretCount} secret(s) in secrets.json`
676
+ : "secrets.json not created yet";
677
+
669
678
  const choice = await ctx.ui.select("Wiki Settings", [
670
679
  `[Context] Max tokens: ${config.context.maxTokens}`,
671
680
  `[Search] Limit: ${config.context.searchLimit}, Graph boost: ${config.context.searchGraphBoost}`,
@@ -674,6 +683,7 @@ ${goal} — verified and complete.
674
683
  `[WebWiki] ${config.webWiki.enabled ? `Enabled at http://${config.webWiki.host}:${config.webWiki.port}` : "Disabled"}`,
675
684
  `[Embedding] ${providerProfileLabel(config.qmd.embedding)}`,
676
685
  `[Rerank] ${providerProfileLabel(config.qmd.rerank)}`,
686
+ `[Secrets] ${secretsLabel}`,
677
687
  `---`,
678
688
  `[Status] Scope: ${scope.name} | Pages: ${pageCount} | qmd: SDK | Scheduler: ${queuedTasks} queued, ${failedTasks} failed`,
679
689
  ]);
@@ -781,6 +791,52 @@ ${goal} — verified and complete.
781
791
  const val = await ctx.ui.input("Port:", String(config.webWiki.port));
782
792
  if (val) { setWebWikiPort(config, val); await persist(); }
783
793
  }
794
+ } else if (choice.startsWith("[Secrets]")) {
795
+ const entries = Object.entries(secretStore.secrets);
796
+ const sub = await ctx.ui.select(
797
+ `Secrets — ${loaded.paths.secretsPath}${existsSync(loaded.paths.secretsPath) ? "" : " (will be created on first save)"}`,
798
+ [
799
+ ...entries.map(([name, value]) => `${name}: ${redactCredential(value)}`),
800
+ "Add/update API key",
801
+ ...(entries.length > 0 ? ["Remove a secret"] : []),
802
+ ],
803
+ );
804
+ if (sub === "Add/update API key") {
805
+ const name = await ctx.ui.input("Secret name (e.g. embedding, rerank, capture):", "embedding");
806
+ if (name?.trim()) {
807
+ const value = await ctx.ui.input(`API key for "${name.trim()}" (never stored in wiki git):`, "");
808
+ if (value) {
809
+ const created = !existsSync(loaded.paths.secretsPath);
810
+ await setSecret(name.trim(), value, loaded.paths.secretsPath);
811
+ ctx.ui.notify(
812
+ created
813
+ ? `Created ${loaded.paths.secretsPath} (0600) and stored secret:${name.trim()}.`
814
+ : `Stored secret:${name.trim()}.`,
815
+ "info",
816
+ );
817
+ }
818
+ }
819
+ } else if (sub === "Remove a secret") {
820
+ const target = await ctx.ui.select("Remove which secret?", entries.map(([name]) => name));
821
+ if (target) {
822
+ await removeSecret(target, loaded.paths.secretsPath);
823
+ ctx.ui.notify(`Removed secret:${target}.`, "info");
824
+ }
825
+ } else if (sub && sub.includes(": ")) {
826
+ // Selected an existing secret — offer update/remove
827
+ const name = sub.split(": ")[0];
828
+ const action = await ctx.ui.select(`secret:${name}`, ["Update value", "Remove"]);
829
+ if (action === "Update value") {
830
+ const value = await ctx.ui.input(`New API key for "${name}":`, "");
831
+ if (value) {
832
+ await setSecret(name, value, loaded.paths.secretsPath);
833
+ ctx.ui.notify(`Updated secret:${name}.`, "info");
834
+ }
835
+ } else if (action === "Remove") {
836
+ await removeSecret(name, loaded.paths.secretsPath);
837
+ ctx.ui.notify(`Removed secret:${name}.`, "info");
838
+ }
839
+ }
784
840
  } else if (choice.startsWith("[Embedding]") || choice.startsWith("[Rerank]")) {
785
841
  const isEmbedding = choice.startsWith("[Embedding]");
786
842
  const profile = isEmbedding ? ensureEmbeddingProfile(config) : ensureRerankProfile(config);
@@ -796,8 +852,27 @@ ${goal} — verified and complete.
796
852
  ]);
797
853
 
798
854
  if (sub?.startsWith("Provider")) {
799
- const val = await ctx.ui.input("Provider id:", profile.provider);
800
- if (val) setProviderProfileField(profile, "provider", val);
855
+ const kind = isEmbedding ? "embedding" : "rerank";
856
+ const presetLabels = PROVIDER_PRESETS.map((p) => `${p.label} — ${p.baseUrl}`);
857
+ const pick = await ctx.ui.select(`Select ${kind} provider`, [...presetLabels, "custom (enter manually)"]);
858
+ if (pick === "custom (enter manually)") {
859
+ const val = await ctx.ui.input("Provider id:", profile.provider);
860
+ if (val) setProviderProfileField(profile, "provider", val);
861
+ const url = await ctx.ui.input("Base URL:", profile.baseUrl ?? "");
862
+ if (url) setProviderProfileField(profile, "baseUrl", url);
863
+ } else if (pick) {
864
+ const preset = PROVIDER_PRESETS[presetLabels.indexOf(pick)];
865
+ applyProviderPreset(profile, preset, kind as "embedding" | "rerank");
866
+ ctx.ui.notify(`Set ${kind} provider = ${preset.label} (${preset.baseUrl})`, "info");
867
+ // Offer API key entry right away — stores in ~/.pi/para/secrets.json
868
+ // (file is created on first write with 0600 permissions).
869
+ const key = await ctx.ui.input(`${preset.label} API key (empty to skip; stored as secret:${kind}):`, "");
870
+ if (key) {
871
+ await setSecret(kind, key, loaded.paths.secretsPath);
872
+ setProviderProfileField(profile, "credentialRef", `secret:${kind}`);
873
+ ctx.ui.notify(`Stored secret:${kind} and set credentialRef.`, "info");
874
+ }
875
+ }
801
876
  } else if (sub?.startsWith("Base URL")) {
802
877
  const val = await ctx.ui.input("Base URL:", profile.baseUrl ?? "");
803
878
  if (val) setProviderProfileField(profile, "baseUrl", val);
package/src/doctor.ts CHANGED
@@ -201,8 +201,28 @@ async function checkQmd(wikiDir: string, config: ParaUserConfig, secretsPath: st
201
201
  paraConfig: { ...config, qmd: { ...config.qmd, embedEnabled: false } },
202
202
  secretsPath,
203
203
  });
204
+ let embedInfo = "";
205
+ let pending = 0;
206
+ let hasVectorIndex = false;
207
+ try {
208
+ const status = await store.getStatus();
209
+ hasVectorIndex = Boolean(status.hasVectorIndex);
210
+ pending = status.needsEmbedding ?? 0;
211
+ const profile = config.qmd.embedding;
212
+ const endpointHost = profile?.baseUrl ? new URL(profile.baseUrl).host : "default";
213
+ const adapter = profile ? `${profile.provider}/${profile.model ?? "model not set"} at ${endpointHost}` : "no embedding profile";
214
+ embedInfo = ` — vector index: ${hasVectorIndex ? "yes" : "no"}, pending embeddings: ${pending}, embed: ${adapter}`;
215
+ } catch {
216
+ // status probe is best-effort
217
+ }
204
218
  await closeStore(store);
205
- return { name: "qmd-sdk", status: "ok", message: "store opened and updated with pi-para provider profiles" };
219
+ // Pending embeddings are expected transient state — the background
220
+ // qmd-embed scheduler task drains them while a Pi session is open — so
221
+ // report the numbers without failing the check.
222
+ const note = config.qmd.embedEnabled !== false && !hasVectorIndex && pending > 0
223
+ ? " (background qmd-embed task will process these while a Pi session is open)"
224
+ : "";
225
+ return { name: "qmd-sdk", status: "ok", message: `store opened and updated with pi-para provider profiles${embedInfo}${note}` };
206
226
  } catch (err) {
207
227
  return { name: "qmd-sdk", status: "error", message: err instanceof Error ? err.message : String(err), fixable: false };
208
228
  }
package/src/index.ts CHANGED
@@ -323,6 +323,7 @@ export default async function piPara(pi: ExtensionAPI): Promise<void> {
323
323
  // Capture handler registration is best-effort; manual capture remains available.
324
324
  }
325
325
 
326
+ const embedEnabled = loadedConfig.userConfig?.qmd.embedEnabled !== false;
326
327
  const schedulerEnabled = !isPrintModeProcess() && schedulerConfig?.enabled !== false;
327
328
  const scheduler = schedulerEnabled
328
329
  ? startWikiScheduler({
@@ -332,9 +333,23 @@ export default async function piPara(pi: ExtensionAPI): Promise<void> {
332
333
  storeProvider: () => store,
333
334
  markDirty: () => markContextDirty(),
334
335
  handlers: schedulerHandlers,
336
+ embedEnabled,
335
337
  })
336
338
  : null;
337
339
 
340
+ // Drain any pre-existing embedding backlog in the background. Startup
341
+ // opens the store with backgroundEmbed:false (fast print-mode exits), so
342
+ // without this new pages stayed BM25-only until an explicit embed pass.
343
+ if (scheduler && embedEnabled && store) {
344
+ try {
345
+ scheduler.embedEnabled = true;
346
+ scheduler.enqueue("qmd-embed", {}, { dedupeKey: "qmd-embed", priority: 5 });
347
+ void scheduler.tick();
348
+ } catch {
349
+ // Background embedding is best-effort; BM25 search works regardless.
350
+ }
351
+ }
352
+
338
353
  if (scheduler && startupCatchupEnabled) {
339
354
  try {
340
355
  const stateDb = new StateDB(wikiDir);
@@ -16,6 +16,12 @@ export interface WikiSchedulerOptions {
16
16
  storeProvider?: () => QMDStore | null;
17
17
  markDirty?: () => void;
18
18
  handlers?: Record<string, SchedulerTaskHandler>;
19
+ /**
20
+ * When true, wiki-maintenance chains a deduplicated `qmd-embed` task after
21
+ * reindexing so new/changed pages get vector embeddings in the background.
22
+ * Default false so standalone/test schedulers keep BM25-only behavior.
23
+ */
24
+ embedEnabled?: boolean;
19
25
  }
20
26
 
21
27
  export class WikiScheduler {
@@ -31,6 +37,7 @@ export class WikiScheduler {
31
37
  private readonly storeProvider: () => QMDStore | null;
32
38
  private readonly markDirty: () => void;
33
39
  private handlers: Record<string, SchedulerTaskHandler>;
40
+ embedEnabled: boolean;
34
41
 
35
42
  constructor(opts: WikiSchedulerOptions) {
36
43
  this.wikiDir = opts.wikiDir;
@@ -40,8 +47,10 @@ export class WikiScheduler {
40
47
  this.enabled = opts.enabled ?? true;
41
48
  this.storeProvider = opts.storeProvider ?? (() => null);
42
49
  this.markDirty = opts.markDirty ?? (() => {});
50
+ this.embedEnabled = opts.embedEnabled ?? false;
43
51
  this.handlers = {
44
52
  "wiki-maintenance": async () => this.runWikiMaintenance(),
53
+ "qmd-embed": async () => this.runQmdEmbed(),
45
54
  ...(opts.handlers ?? {}),
46
55
  };
47
56
  }
@@ -129,6 +138,40 @@ export class WikiScheduler {
129
138
  } finally {
130
139
  releaseLease(this.state.db, leaseKey, this.holderId);
131
140
  }
141
+ // Chain background embedding so changed pages become vector-searchable.
142
+ // Runs as its own task (deduplicated) so reindex latency stays low and
143
+ // embedding failures are recorded/retried instead of breaking maintenance.
144
+ if (this.embedEnabled) {
145
+ this.enqueue("qmd-embed", {}, { dedupeKey: "qmd-embed", priority: 5 });
146
+ }
147
+ }
148
+
149
+ /**
150
+ * Generate vector embeddings for documents QMD reports as pending.
151
+ * Skips fast when the backlog is empty. Throws when the embedding pass
152
+ * reports errors so the scheduler records the failure and retries with
153
+ * backoff — BM25 search keeps working regardless.
154
+ */
155
+ private async runQmdEmbed(): Promise<void> {
156
+ const store = this.storeProvider();
157
+ if (!store) return;
158
+
159
+ const status = await store.getStatus();
160
+ const pending = status.needsEmbedding ?? 0;
161
+ if (pending === 0) return;
162
+
163
+ const leaseKey = `qmd-embed:${this.wikiDir}`;
164
+ if (!acquireLease(this.state.db, leaseKey, this.holderId, { ttlMs: 15 * 60_000 })) return;
165
+ try {
166
+ const result = await store.embed();
167
+ if (result.errors > 0) {
168
+ throw new Error(
169
+ `qmd embed finished with ${result.errors} error(s) (${result.chunksEmbedded} chunk(s) embedded, ${pending} doc(s) were pending)`,
170
+ );
171
+ }
172
+ } finally {
173
+ releaseLease(this.state.db, leaseKey, this.holderId);
174
+ }
132
175
  }
133
176
  }
134
177
 
@@ -200,6 +243,27 @@ export function enqueueWikiMaintenance(
200
243
  return null;
201
244
  }
202
245
 
246
+ /**
247
+ * Enqueue a deduplicated background embedding pass (e.g. at session startup
248
+ * to drain a pre-existing needsEmbedding backlog). No-op scheduling cost when
249
+ * the backlog is empty — the task exits after one getStatus() call.
250
+ */
251
+ export function enqueueQmdEmbed(
252
+ wikiDir: string,
253
+ store: QMDStore,
254
+ opts: { dbPath?: string } = {},
255
+ ): number {
256
+ const scheduler = getWikiScheduler({
257
+ wikiDir,
258
+ dbPath: opts.dbPath,
259
+ storeProvider: () => store,
260
+ });
261
+ scheduler.embedEnabled = true;
262
+ const id = scheduler.enqueue("qmd-embed", {}, { dedupeKey: "qmd-embed", priority: 5 });
263
+ void scheduler.tick();
264
+ return id;
265
+ }
266
+
203
267
  export function resetSchedulersForTests(): void {
204
268
  for (const timer of debounceTimers.values()) clearTimeout(timer);
205
269
  debounceTimers.clear();