@tekmidian/pai 0.34.1 → 0.35.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/dist/{auto-route-lDk1q_2h.mjs → auto-route-DVM3U2ZY.mjs} +1 -1
- package/dist/{auto-route-lDk1q_2h.mjs.map → auto-route-DVM3U2ZY.mjs.map} +1 -1
- package/dist/cli/index.mjs +3 -3
- package/dist/cli/program.mjs +3 -3
- package/dist/{config-CcdkNSWa.mjs → config-BSkVcvfq.mjs} +2 -1
- package/dist/{config-CcdkNSWa.mjs.map → config-BSkVcvfq.mjs.map} +1 -1
- package/dist/daemon/index.mjs +5 -5
- package/dist/{daemon-COSnvTY1.mjs → daemon-Hnu6-HDD.mjs} +42 -19
- package/dist/daemon-Hnu6-HDD.mjs.map +1 -0
- package/dist/daemon-mcp/index.mjs +23 -9
- package/dist/daemon-mcp/index.mjs.map +1 -1
- package/dist/{factory-CDjViCff.mjs → factory-BGH0COXb.mjs} +5 -5
- package/dist/{factory-CDjViCff.mjs.map → factory-BGH0COXb.mjs.map} +1 -1
- package/dist/hooks/stop-hook.mjs +1 -1
- package/dist/hooks/stop-hook.mjs.map +2 -2
- package/dist/link-boost-QFLrJwD6.mjs +34 -0
- package/dist/link-boost-QFLrJwD6.mjs.map +1 -0
- package/dist/{pick-T4sZPpFh.mjs → pick-aWhenqjE.mjs} +48 -28
- package/dist/{pick-T4sZPpFh.mjs.map → pick-aWhenqjE.mjs.map} +1 -1
- package/dist/{postgres-CYQuLAfD.mjs → postgres-BALUE11K.mjs} +1 -1
- package/dist/{postgres-CYQuLAfD.mjs.map → postgres-BALUE11K.mjs.map} +1 -1
- package/dist/{query-feedback-ytPNVJWt.mjs → query-feedback-D4U56Hz6.mjs} +1 -1
- package/dist/{query-feedback-ytPNVJWt.mjs.map → query-feedback-D4U56Hz6.mjs.map} +1 -1
- package/dist/skills/Consolidate/SKILL.md +22 -8
- package/dist/{sqlite-R0pIbTmj.mjs → sqlite-C6FHnMkn.mjs} +1 -1
- package/dist/{sqlite-R0pIbTmj.mjs.map → sqlite-C6FHnMkn.mjs.map} +1 -1
- package/dist/{tools-B5t3lZ7v.mjs → tools-C1lCHerL.mjs} +27 -12
- package/dist/tools-C1lCHerL.mjs.map +1 -0
- package/dist/{vault-indexer-D04KuFhI.mjs → vault-indexer-CUF9edbW.mjs} +1 -1
- package/dist/{vault-indexer-D04KuFhI.mjs.map → vault-indexer-CUF9edbW.mjs.map} +1 -1
- package/dist/{work-queue-worker-DgoTjWfd.mjs → work-queue-worker-BcDGAcF3.mjs} +43 -9
- package/dist/work-queue-worker-BcDGAcF3.mjs.map +1 -0
- package/dist/{zettelkasten-DePb0LVI.mjs → zettelkasten-W-h8G2is.mjs} +2 -2
- package/dist/{zettelkasten-DePb0LVI.mjs.map → zettelkasten-W-h8G2is.mjs.map} +1 -1
- package/docs/vm-bootstrap.md +88 -0
- package/package.json +1 -1
- package/src/hooks/session-stop.sh +41 -0
- package/src/hooks/ts/stop/stop-hook.ts +17 -1
- package/statusline-command.sh +9 -3
- package/dist/daemon-COSnvTY1.mjs.map +0 -1
- package/dist/tools-B5t3lZ7v.mjs.map +0 -1
- package/dist/work-queue-worker-DgoTjWfd.mjs.map +0 -1
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
//#region src/memory/link-boost.ts
|
|
2
|
+
/**
|
|
3
|
+
* Re-rank results by inbound links *from other results in the same set*.
|
|
4
|
+
*
|
|
5
|
+
* Returns a new array, sorted by the adjusted score. Input is not mutated.
|
|
6
|
+
* Results whose paths carry no inbound links are unchanged, so a corpus with
|
|
7
|
+
* no links at all is a no-op rather than a distortion.
|
|
8
|
+
*/
|
|
9
|
+
function applyLinkBoost(results, edges, opts) {
|
|
10
|
+
const weight = opts?.weight ?? .25;
|
|
11
|
+
if (results.length === 0 || edges.length === 0 || weight === 0) return [...results];
|
|
12
|
+
const paths = new Set(results.map((r) => r.path));
|
|
13
|
+
const inbound = /* @__PURE__ */ new Map();
|
|
14
|
+
for (const e of edges) {
|
|
15
|
+
if (e.sourcePath === e.targetPath) continue;
|
|
16
|
+
if (!paths.has(e.sourcePath) || !paths.has(e.targetPath)) continue;
|
|
17
|
+
inbound.set(e.targetPath, (inbound.get(e.targetPath) ?? 0) + 1);
|
|
18
|
+
}
|
|
19
|
+
if (inbound.size === 0) return [...results];
|
|
20
|
+
const maxInbound = Math.max(...inbound.values());
|
|
21
|
+
return results.map((r) => {
|
|
22
|
+
const links = inbound.get(r.path) ?? 0;
|
|
23
|
+
if (links === 0) return { ...r };
|
|
24
|
+
const factor = 1 + weight * (links / maxInbound);
|
|
25
|
+
return {
|
|
26
|
+
...r,
|
|
27
|
+
score: r.score * factor
|
|
28
|
+
};
|
|
29
|
+
}).sort((a, b) => b.score - a.score);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
//#endregion
|
|
33
|
+
export { applyLinkBoost };
|
|
34
|
+
//# sourceMappingURL=link-boost-QFLrJwD6.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"link-boost-QFLrJwD6.mjs","names":[],"sources":["../src/memory/link-boost.ts"],"sourcesContent":["/**\n * Rank search results by how the corpus links to them, not only by similarity.\n *\n * Why this exists: the store holds 33,709 wikilinks that are *facts* — one note\n * pointing at another, written by a person — alongside 2.4M chunks whose only\n * ranking signal is embedding similarity. Similarity answers \"what reads like\n * the query\". It cannot answer \"which of these is the one the others refer\n * back to\", which is usually the note worth reading first.\n *\n * The boost is deliberately query-local: it counts links *between the results\n * themselves*, not global popularity. A note linked by many other notes that\n * also match the query is a hub for that question. A note linked by half the\n * vault is merely popular, which is not the same thing and would flatten every\n * ranking toward the same few index pages.\n *\n * Links cost nothing to maintain — no embedding pass, no model call — so this\n * signal stays correct while the embedding backlog drains, and works for chunks\n * that have no embedding at all.\n */\n\nimport type { SearchResult } from \"./search.js\";\n\n/** A directed link between two note paths, as stored in vault_links. */\nexport interface LinkEdge {\n sourcePath: string;\n targetPath: string;\n}\n\nexport interface LinkBoostOptions {\n /**\n * How much the boost may move a result, as a fraction of its current score.\n * 0.25 means the most-linked result gains 25%. Kept modest by default: the\n * link graph is a supporting signal, and a note nobody links to can still be\n * the right answer.\n */\n weight?: number;\n}\n\n/**\n * Re-rank results by inbound links *from other results in the same set*.\n *\n * Returns a new array, sorted by the adjusted score. Input is not mutated.\n * Results whose paths carry no inbound links are unchanged, so a corpus with\n * no links at all is a no-op rather than a distortion.\n */\nexport function applyLinkBoost(\n results: SearchResult[],\n edges: LinkEdge[],\n opts?: LinkBoostOptions,\n): SearchResult[] {\n const weight = opts?.weight ?? 0.25;\n if (results.length === 0 || edges.length === 0 || weight === 0) {\n return [...results];\n }\n\n // Only links whose BOTH ends are in the result set count. An edge pointing\n // out of the set says nothing about the relative rank of results inside it.\n const paths = new Set(results.map((r) => r.path));\n const inbound = new Map<string, number>();\n for (const e of edges) {\n if (e.sourcePath === e.targetPath) continue; // self-links are noise\n if (!paths.has(e.sourcePath) || !paths.has(e.targetPath)) continue;\n inbound.set(e.targetPath, (inbound.get(e.targetPath) ?? 0) + 1);\n }\n if (inbound.size === 0) return [...results];\n\n // Normalise against the most-linked result so the boost is bounded by\n // `weight` regardless of corpus size. Without this, a densely linked project\n // would swamp similarity entirely while a sparse one would see no effect.\n const maxInbound = Math.max(...inbound.values());\n\n return results\n .map((r) => {\n const links = inbound.get(r.path) ?? 0;\n if (links === 0) return { ...r };\n const factor = 1 + weight * (links / maxInbound);\n return { ...r, score: r.score * factor };\n })\n .sort((a, b) => b.score - a.score);\n}\n"],"mappings":";;;;;;;;AA6CA,SAAgB,eACd,SACA,OACA,MACgB;CAChB,MAAM,SAAS,MAAM,UAAU;AAC/B,KAAI,QAAQ,WAAW,KAAK,MAAM,WAAW,KAAK,WAAW,EAC3D,QAAO,CAAC,GAAG,QAAQ;CAKrB,MAAM,QAAQ,IAAI,IAAI,QAAQ,KAAK,MAAM,EAAE,KAAK,CAAC;CACjD,MAAM,0BAAU,IAAI,KAAqB;AACzC,MAAK,MAAM,KAAK,OAAO;AACrB,MAAI,EAAE,eAAe,EAAE,WAAY;AACnC,MAAI,CAAC,MAAM,IAAI,EAAE,WAAW,IAAI,CAAC,MAAM,IAAI,EAAE,WAAW,CAAE;AAC1D,UAAQ,IAAI,EAAE,aAAa,QAAQ,IAAI,EAAE,WAAW,IAAI,KAAK,EAAE;;AAEjE,KAAI,QAAQ,SAAS,EAAG,QAAO,CAAC,GAAG,QAAQ;CAK3C,MAAM,aAAa,KAAK,IAAI,GAAG,QAAQ,QAAQ,CAAC;AAEhD,QAAO,QACJ,KAAK,MAAM;EACV,MAAM,QAAQ,QAAQ,IAAI,EAAE,KAAK,IAAI;AACrC,MAAI,UAAU,EAAG,QAAO,EAAE,GAAG,GAAG;EAChC,MAAM,SAAS,IAAI,UAAU,QAAQ;AACrC,SAAO;GAAE,GAAG;GAAG,OAAO,EAAE,QAAQ;GAAQ;GACxC,CACD,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM"}
|
|
@@ -10,8 +10,8 @@ import { n as formatDetection, r as formatDetectionJson, t as detectProject } fr
|
|
|
10
10
|
import { _ as transcriptFiles, a as readBodyFile, c as loadScanConfig, d as saveScanConfig, f as upsertProject, g as scanTranscriptFolders, h as findMovedProjects, i as findNotesDir$1, m as claudeProjectsDir, n as applyContinue, o as extractAndStoreTriples, p as upsertSession, r as findLatestNote, s as cmdScan, t as appendCheckpointToNote, u as resolveHome } from "./checkpoint-block-D3rm4dAJ.mjs";
|
|
11
11
|
import { a as schedulerLogPath, i as paiSocketPath, n as daemonLogPath, r as daemonPidPath } from "./runtime-paths-B0P1TvUr.mjs";
|
|
12
12
|
import { t as PaiClient } from "./ipc-client-aVKVERjJ.mjs";
|
|
13
|
-
import { a as expandHome, c as UNROUTED, i as ensureConfigDir, n as CONFIG_FILE$2, o as loadConfig, s as OWNER_LABEL_PREFIX, t as CONFIG_DIR } from "./config-
|
|
14
|
-
import { i as humanDuration, t as createStorageBackend } from "./factory-
|
|
13
|
+
import { a as expandHome, c as UNROUTED, i as ensureConfigDir, n as CONFIG_FILE$2, o as loadConfig, s as OWNER_LABEL_PREFIX, t as CONFIG_DIR } from "./config-BSkVcvfq.mjs";
|
|
14
|
+
import { i as humanDuration, t as createStorageBackend } from "./factory-BGH0COXb.mjs";
|
|
15
15
|
import { s as kgQuery } from "./kg-entity-r8duqhi9.mjs";
|
|
16
16
|
import { _ as scanSessions, a as renderDedupedSessions, c as probeResume, d as callAiBroker, f as fetchLiveSessions, g as resolveSessionByNameOrId, h as fmtAge, i as normalizeName$2, l as restoreTopLevel, m as sendToSession, o as hasConversation, p as revealItermSession, r as buildDeduped, s as launchInDir, u as printExitDir } from "./main-resolver-CNSqU8wo.mjs";
|
|
17
17
|
import { appendFileSync, chmodSync, copyFileSync, createReadStream, existsSync, lstatSync, mkdirSync, readFileSync, readdirSync, readlinkSync, realpathSync, renameSync, statSync, symlinkSync, unlinkSync, writeFileSync } from "node:fs";
|
|
@@ -2924,8 +2924,8 @@ function registerStatsCommands(memoryCmd, getDb) {
|
|
|
2924
2924
|
//#region src/cli/commands/memory/sources-cmd.ts
|
|
2925
2925
|
function registerSourcesCommand(memoryCmd) {
|
|
2926
2926
|
memoryCmd.command("sources").description("Show what the indexer has taken in: composition by source, which roots\ncontent enters from, the heaviest single files, and how many chunks are\nrewritten per day (which distinguishes a finite backlog from a treadmill).").option("--limit <n>", "Rows per section (default 8)", "8").action(async (opts) => {
|
|
2927
|
-
const { createStorageBackend } = await import("./factory-
|
|
2928
|
-
const { loadConfig } = await import("./config-
|
|
2927
|
+
const { createStorageBackend } = await import("./factory-BGH0COXb.mjs").then((n) => n.n);
|
|
2928
|
+
const { loadConfig } = await import("./config-BSkVcvfq.mjs").then((n) => n.r);
|
|
2929
2929
|
const { cmdMemorySources } = await import("./sources-BDwN0B8i.mjs");
|
|
2930
2930
|
let backend;
|
|
2931
2931
|
try {
|
|
@@ -3608,8 +3608,8 @@ function cmdLogs(opts) {
|
|
|
3608
3608
|
}
|
|
3609
3609
|
function registerDaemonCommands(daemonCmd) {
|
|
3610
3610
|
daemonCmd.command("serve").description("Start the PAI daemon in the foreground").action(async () => {
|
|
3611
|
-
const { serve } = await import("./daemon-
|
|
3612
|
-
const { loadConfig: lc, ensureConfigDir } = await import("./config-
|
|
3611
|
+
const { serve } = await import("./daemon-Hnu6-HDD.mjs").then((n) => n.t);
|
|
3612
|
+
const { loadConfig: lc, ensureConfigDir } = await import("./config-BSkVcvfq.mjs").then((n) => n.r);
|
|
3613
3613
|
ensureConfigDir();
|
|
3614
3614
|
await serve(lc());
|
|
3615
3615
|
});
|
|
@@ -6997,7 +6997,7 @@ async function cmdExplore(note, opts) {
|
|
|
6997
6997
|
const depth = parseInt(opts.depth ?? "3", 10);
|
|
6998
6998
|
const direction = opts.direction ?? "both";
|
|
6999
6999
|
const mode = opts.mode ?? "all";
|
|
7000
|
-
const { zettelExplore } = await import("./zettelkasten-
|
|
7000
|
+
const { zettelExplore } = await import("./zettelkasten-W-h8G2is.mjs");
|
|
7001
7001
|
const result = zettelExplore(getFedDb(), {
|
|
7002
7002
|
startNote: note,
|
|
7003
7003
|
depth,
|
|
@@ -7061,7 +7061,7 @@ async function cmdHealth(opts) {
|
|
|
7061
7061
|
const projectPath = opts.project;
|
|
7062
7062
|
const recentDays = parseInt(opts.days ?? "30", 10);
|
|
7063
7063
|
const includeTypes = opts.include ? opts.include.split(",").map((s) => s.trim()) : void 0;
|
|
7064
|
-
const { zettelHealth } = await import("./zettelkasten-
|
|
7064
|
+
const { zettelHealth } = await import("./zettelkasten-W-h8G2is.mjs");
|
|
7065
7065
|
const result = zettelHealth(getFedDb(), {
|
|
7066
7066
|
scope,
|
|
7067
7067
|
projectPath,
|
|
@@ -7130,7 +7130,7 @@ async function cmdSurprise(note, opts) {
|
|
|
7130
7130
|
const limit = parseInt(opts.limit ?? "10", 10);
|
|
7131
7131
|
const minSimilarity = parseFloat(opts.minSimilarity ?? "0.3");
|
|
7132
7132
|
const minGraphDistance = parseInt(opts.minDistance ?? "3", 10);
|
|
7133
|
-
const { zettelSurprise } = await import("./zettelkasten-
|
|
7133
|
+
const { zettelSurprise } = await import("./zettelkasten-W-h8G2is.mjs");
|
|
7134
7134
|
const db = getFedDb();
|
|
7135
7135
|
console.log();
|
|
7136
7136
|
console.log(header(" PAI Zettel Surprise"));
|
|
@@ -7183,7 +7183,7 @@ async function cmdSuggest(note, opts) {
|
|
|
7183
7183
|
const vaultProjectId = parseInt(opts.vaultProjectId, 10);
|
|
7184
7184
|
const limit = parseInt(opts.limit ?? "5", 10);
|
|
7185
7185
|
const excludeLinked = opts.excludeLinked !== false;
|
|
7186
|
-
const { zettelSuggest } = await import("./zettelkasten-
|
|
7186
|
+
const { zettelSuggest } = await import("./zettelkasten-W-h8G2is.mjs");
|
|
7187
7187
|
const db = getFedDb();
|
|
7188
7188
|
console.log();
|
|
7189
7189
|
console.log(header(" PAI Zettel Suggest"));
|
|
@@ -7234,7 +7234,7 @@ async function cmdConverse(question, opts) {
|
|
|
7234
7234
|
const vaultProjectId = parseInt(opts.vaultProjectId, 10);
|
|
7235
7235
|
const depth = parseInt(opts.depth ?? "2", 10);
|
|
7236
7236
|
const limit = parseInt(opts.limit ?? "15", 10);
|
|
7237
|
-
const { zettelConverse } = await import("./zettelkasten-
|
|
7237
|
+
const { zettelConverse } = await import("./zettelkasten-W-h8G2is.mjs");
|
|
7238
7238
|
const db = getFedDb();
|
|
7239
7239
|
console.log();
|
|
7240
7240
|
console.log(header(" PAI Zettel Converse"));
|
|
@@ -7295,7 +7295,7 @@ async function cmdThemes(opts) {
|
|
|
7295
7295
|
const minClusterSize = parseInt(opts.minSize ?? "3", 10);
|
|
7296
7296
|
const maxThemes = parseInt(opts.maxThemes ?? "10", 10);
|
|
7297
7297
|
const similarityThreshold = parseFloat(opts.threshold ?? "0.65");
|
|
7298
|
-
const { zettelThemes } = await import("./zettelkasten-
|
|
7298
|
+
const { zettelThemes } = await import("./zettelkasten-W-h8G2is.mjs");
|
|
7299
7299
|
const db = getFedDb();
|
|
7300
7300
|
console.log();
|
|
7301
7301
|
console.log(header(" PAI Zettel Themes"));
|
|
@@ -8853,7 +8853,7 @@ async function escalate(task, headline, detail, state, now, opts) {
|
|
|
8853
8853
|
let delivered = false;
|
|
8854
8854
|
try {
|
|
8855
8855
|
const { routeNotification } = await import("./router-i9S19Usg.mjs").then((n) => n.n);
|
|
8856
|
-
const { loadConfig } = await import("./config-
|
|
8856
|
+
const { loadConfig } = await import("./config-BSkVcvfq.mjs").then((n) => n.r);
|
|
8857
8857
|
delivered = (await routeNotification({
|
|
8858
8858
|
event: "error",
|
|
8859
8859
|
title: `PAI: ${headline}`,
|
|
@@ -11370,10 +11370,10 @@ function cmdActive(db, opts) {
|
|
|
11370
11370
|
], rows));
|
|
11371
11371
|
}
|
|
11372
11372
|
async function cmdAutoRoute(opts) {
|
|
11373
|
-
const { autoRoute, formatAutoRoute, formatAutoRouteJson } = await import("./auto-route-
|
|
11373
|
+
const { autoRoute, formatAutoRoute, formatAutoRouteJson } = await import("./auto-route-DVM3U2ZY.mjs");
|
|
11374
11374
|
const { openRegistry } = await import("./db-BtuN768f.mjs").then((n) => n.t);
|
|
11375
|
-
const { createStorageBackend } = await import("./factory-
|
|
11376
|
-
const { loadConfig } = await import("./config-
|
|
11375
|
+
const { createStorageBackend } = await import("./factory-BGH0COXb.mjs").then((n) => n.n);
|
|
11376
|
+
const { loadConfig } = await import("./config-BSkVcvfq.mjs").then((n) => n.r);
|
|
11377
11377
|
const config = loadConfig();
|
|
11378
11378
|
const registryDb = openRegistry();
|
|
11379
11379
|
const federation = await createStorageBackend(config);
|
|
@@ -12837,13 +12837,33 @@ function scanNotesDir(notesDir, dbByFilename) {
|
|
|
12837
12837
|
}
|
|
12838
12838
|
return candidates;
|
|
12839
12839
|
}
|
|
12840
|
-
|
|
12841
|
-
|
|
12842
|
-
|
|
12843
|
-
|
|
12844
|
-
|
|
12845
|
-
|
|
12846
|
-
|
|
12840
|
+
/**
|
|
12841
|
+
* Renumbering is disabled. This always returns an empty map.
|
|
12842
|
+
*
|
|
12843
|
+
* It used to reassign every surviving note to its position in the sorted list
|
|
12844
|
+
* (`newNum = idx + 1`), which treats the number as a position. The number is
|
|
12845
|
+
* also the note's identity — handovers and other notes cite notes by number —
|
|
12846
|
+
* and a value that is both a position and an identity parts company with
|
|
12847
|
+
* itself the moment the set changes.
|
|
12848
|
+
*
|
|
12849
|
+
* What that cost, measured on a real corpus: deleting or adding one note
|
|
12850
|
+
* shifted the whole series, and because the number is also written into the H1
|
|
12851
|
+
* (`# Session 0006: ...`), the rewrite changed file *contents* as well as
|
|
12852
|
+
* names. Git could not pair them as renames — 0 of 262 rewritten notes were
|
|
12853
|
+
* byte-identical to anything in HEAD — so a single shift produced 261 deletions
|
|
12854
|
+
* plus 262 additions. The operator changed one source file and their prompt
|
|
12855
|
+
* reported 262 changes, which hides any real uncommitted work in the noise.
|
|
12856
|
+
*
|
|
12857
|
+
* Numbers are now minted once, at creation, and never reassigned. Gaps are
|
|
12858
|
+
* expected and harmless: a gap is information (a note was removed) and costs
|
|
12859
|
+
* nothing, whereas a renumber invalidates every existing reference silently.
|
|
12860
|
+
*
|
|
12861
|
+
* Kept as a function rather than deleted so the call site and the CleanupPlan
|
|
12862
|
+
* shape stay intact; collisions should be reported by the caller, never
|
|
12863
|
+
* resolved by shifting.
|
|
12864
|
+
*/
|
|
12865
|
+
function buildRenumberMap(_survivors) {
|
|
12866
|
+
return /* @__PURE__ */ new Map();
|
|
12847
12867
|
}
|
|
12848
12868
|
function analyzeProject(db, project) {
|
|
12849
12869
|
const notesDirPaths = findAllNotesDirs(project);
|
|
@@ -12880,8 +12900,8 @@ function analyzeProject(db, project) {
|
|
|
12880
12900
|
async function countVectorDbPaths(oldPaths) {
|
|
12881
12901
|
if (oldPaths.length === 0) return 0;
|
|
12882
12902
|
try {
|
|
12883
|
-
const { loadConfig } = await import("./config-
|
|
12884
|
-
const { PostgresBackend } = await import("./postgres-
|
|
12903
|
+
const { loadConfig } = await import("./config-BSkVcvfq.mjs").then((n) => n.r);
|
|
12904
|
+
const { PostgresBackend } = await import("./postgres-BALUE11K.mjs");
|
|
12885
12905
|
const config = loadConfig();
|
|
12886
12906
|
if (config.storageBackend !== "postgres") return 0;
|
|
12887
12907
|
const pgBackend = new PostgresBackend(config.postgres ?? {});
|
|
@@ -12901,8 +12921,8 @@ async function countVectorDbPaths(oldPaths) {
|
|
|
12901
12921
|
async function updateVectorDbPaths(moves) {
|
|
12902
12922
|
if (moves.length === 0) return 0;
|
|
12903
12923
|
try {
|
|
12904
|
-
const { loadConfig } = await import("./config-
|
|
12905
|
-
const { PostgresBackend } = await import("./postgres-
|
|
12924
|
+
const { loadConfig } = await import("./config-BSkVcvfq.mjs").then((n) => n.r);
|
|
12925
|
+
const { PostgresBackend } = await import("./postgres-BALUE11K.mjs");
|
|
12906
12926
|
const config = loadConfig();
|
|
12907
12927
|
if (config.storageBackend !== "postgres") return 0;
|
|
12908
12928
|
const pgBackend = new PostgresBackend(config.postgres ?? {});
|
|
@@ -14185,4 +14205,4 @@ async function cmdPick(db, opts = {}) {
|
|
|
14185
14205
|
|
|
14186
14206
|
//#endregion
|
|
14187
14207
|
export { registerProjectsCommands as A, registerRestoreCommands as C, registerIdentityCommands as D, registerMcpCommands as E, resolveIdentifier as M, registerMemoryCommands as O, registerSetupCommand as S, registerDaemonCommands as T, registerUpdateCommand as _, cmdEnd as a, registerZettelCommands as b, cmdGoto as c, registerHelpCommand as d, registerDbCommands as f, registerNotifyCommands as g, registerTaskCommands as h, cmdPauseAll as i, findMovedPath as j, registerRegistryCommands as k, cmdPause as l, registerTopicCommands as m, cmdFind as n, registerSessionCleanupCommand as o, registerKgCommands as p, cmdClearNames as r, registerSessionCommands as s, cmdPick as t, cmdList as u, registerSkillCommands as v, registerBackupCommands as w, registerObsidianCommands as x, registerObservationCommands as y };
|
|
14188
|
-
//# sourceMappingURL=pick-
|
|
14208
|
+
//# sourceMappingURL=pick-aWhenqjE.mjs.map
|