@tekmidian/pai 0.66.2 → 0.66.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.
Files changed (82) hide show
  1. package/dist/{aibroker-client-CHEEvJZW.mjs → aibroker-client-Ck3p3k_-.mjs} +1 -1
  2. package/dist/{aibroker-client-Dfv7j1Od.mjs → aibroker-client-WCZi_tn-.mjs} +2 -2
  3. package/dist/{aibroker-client-Dfv7j1Od.mjs.map → aibroker-client-WCZi_tn-.mjs.map} +1 -1
  4. package/dist/{chain-D5876UQX.mjs → chain-Fz4NLm4D.mjs} +3 -3
  5. package/dist/{chain-D5876UQX.mjs.map → chain-Fz4NLm4D.mjs.map} +1 -1
  6. package/dist/cli/index.mjs +13 -13
  7. package/dist/cli/program.mjs +13 -13
  8. package/dist/{config-DKIA7wgF.mjs → config-CnsDMETf.mjs} +1 -1
  9. package/dist/{config-C-LiGlop.mjs → config-Ddc4DIPk.mjs} +5 -3
  10. package/dist/config-Ddc4DIPk.mjs.map +1 -0
  11. package/dist/{context-handover-cache-9PGvXRIw.mjs → context-handover-cache-DcPEW6vf.mjs} +244 -10
  12. package/dist/context-handover-cache-DcPEW6vf.mjs.map +1 -0
  13. package/dist/daemon/index.mjs +11 -11
  14. package/dist/{daemon-BUgNvMUh.mjs → daemon-Bl8TpHdM.mjs} +37 -18
  15. package/dist/daemon-Bl8TpHdM.mjs.map +1 -0
  16. package/dist/daemon-ZhHU6D0i.mjs +18 -0
  17. package/dist/daemon-mcp/index.mjs +9 -9
  18. package/dist/{embeddings-CEBGrzwu.mjs → embeddings-D0WOQpYR.mjs} +1 -1
  19. package/dist/{embeddings-DOLZnT1X.mjs → embeddings-DMVzpvRZ.mjs} +18 -9
  20. package/dist/embeddings-DMVzpvRZ.mjs.map +1 -0
  21. package/dist/{factory-Ypf8r0fK.mjs → factory-BUnZgnKW.mjs} +5 -5
  22. package/dist/{factory-Ypf8r0fK.mjs.map → factory-BUnZgnKW.mjs.map} +1 -1
  23. package/dist/{factory-DrBg24UT.mjs → factory-CrVlo2hY.mjs} +4 -4
  24. package/dist/{fallback-D51R4shY.mjs → fallback-awOmq_9A.mjs} +4 -4
  25. package/dist/{fallback-D51R4shY.mjs.map → fallback-awOmq_9A.mjs.map} +1 -1
  26. package/dist/hooks/block-sleep-poll.mjs +6 -5
  27. package/dist/hooks/block-sleep-poll.mjs.map +3 -3
  28. package/dist/hooks/context-compression-hook.mjs +1 -0
  29. package/dist/hooks/context-compression-hook.mjs.map +2 -2
  30. package/dist/hooks/load-project-context.mjs +6 -5
  31. package/dist/hooks/load-project-context.mjs.map +3 -3
  32. package/dist/hooks/post-compact-inject.mjs +6 -5
  33. package/dist/hooks/post-compact-inject.mjs.map +3 -3
  34. package/dist/hooks/route-agents-to-worker.mjs +6 -5
  35. package/dist/hooks/route-agents-to-worker.mjs.map +3 -3
  36. package/dist/hooks/security-validator.mjs +1 -0
  37. package/dist/hooks/security-validator.mjs.map +2 -2
  38. package/dist/hooks/whisper-rules.mjs +1 -0
  39. package/dist/hooks/whisper-rules.mjs.map +2 -2
  40. package/dist/hooks/worker-guard.mjs +6 -5
  41. package/dist/hooks/worker-guard.mjs.map +3 -3
  42. package/dist/hooks/worker-proxy.mjs +6 -5
  43. package/dist/hooks/worker-proxy.mjs.map +3 -3
  44. package/dist/hooks/worker-status-line.mjs +6 -5
  45. package/dist/hooks/worker-status-line.mjs.map +3 -3
  46. package/dist/hooks/worker-supervision.mjs +6 -5
  47. package/dist/hooks/worker-supervision.mjs.map +3 -3
  48. package/dist/{ipc-client-BLYX51nG.mjs → ipc-client-DkxRay-o.mjs} +2 -2
  49. package/dist/{ipc-client-BLYX51nG.mjs.map → ipc-client-DkxRay-o.mjs.map} +1 -1
  50. package/dist/{main-resolver-kVkMJZUD.mjs → main-resolver-CVGPICy-.mjs} +6 -6
  51. package/dist/{main-resolver-kVkMJZUD.mjs.map → main-resolver-CVGPICy-.mjs.map} +1 -1
  52. package/dist/main-resolver-DDShdDBm.mjs +7 -0
  53. package/dist/{pai-home-Cm9rcJgX.mjs → pai-home-UncxWxlX.mjs} +1 -1
  54. package/dist/{pai-home-Cm9rcJgX.mjs.map → pai-home-UncxWxlX.mjs.map} +1 -1
  55. package/dist/{planner-D5yt0EfA.mjs → planner-GdiYe2FO.mjs} +8 -8
  56. package/dist/{planner-D5yt0EfA.mjs.map → planner-GdiYe2FO.mjs.map} +1 -1
  57. package/dist/{postgres-BmLr0MUm.mjs → postgres-DKyiCA5V.mjs} +2 -2
  58. package/dist/{postgres-D3xc2RB4.mjs → postgres-H85VSYHI.mjs} +2 -2
  59. package/dist/{postgres-D3xc2RB4.mjs.map → postgres-H85VSYHI.mjs.map} +1 -1
  60. package/dist/{program-DIXRtAFy.mjs → program-D3MSfx86.mjs} +117 -82
  61. package/dist/program-D3MSfx86.mjs.map +1 -0
  62. package/dist/{query-feedback-B7FYE4JR.mjs → query-feedback-BPdapXKd.mjs} +2 -2
  63. package/dist/{query-feedback-B7FYE4JR.mjs.map → query-feedback-BPdapXKd.mjs.map} +1 -1
  64. package/dist/{run-CLYTOm0x.mjs → run-D9YbWsnL.mjs} +5 -5
  65. package/dist/{run-CLYTOm0x.mjs.map → run-D9YbWsnL.mjs.map} +1 -1
  66. package/dist/{run-env-Bnmf6bRI.mjs → run-env-CQRnxNht.mjs} +3 -3
  67. package/dist/{run-env-Bnmf6bRI.mjs.map → run-env-CQRnxNht.mjs.map} +1 -1
  68. package/dist/{runtime-paths-D3FKAm69.mjs → runtime-paths-Bw3Jk8qJ.mjs} +4 -2
  69. package/dist/runtime-paths-Bw3Jk8qJ.mjs.map +1 -0
  70. package/dist/{zettelkasten-BhZMvmoK.mjs → zettelkasten-BRIaHzFm.mjs} +2 -2
  71. package/dist/{zettelkasten-BhZMvmoK.mjs.map → zettelkasten-BRIaHzFm.mjs.map} +1 -1
  72. package/dist/{zettelkasten-BwV1pluL.mjs → zettelkasten-G0-ZTybr.mjs} +3 -3
  73. package/docs/commands/memory.md +2 -0
  74. package/package.json +1 -1
  75. package/dist/config-C-LiGlop.mjs.map +0 -1
  76. package/dist/context-handover-cache-9PGvXRIw.mjs.map +0 -1
  77. package/dist/daemon-BUgNvMUh.mjs.map +0 -1
  78. package/dist/daemon-DL0eglMJ.mjs +0 -18
  79. package/dist/embeddings-DOLZnT1X.mjs.map +0 -1
  80. package/dist/main-resolver-BYgP86C1.mjs +0 -7
  81. package/dist/program-DIXRtAFy.mjs.map +0 -1
  82. package/dist/runtime-paths-D3FKAm69.mjs.map +0 -1
@@ -3,19 +3,19 @@ import "../utils-DddRwMsG.mjs";
3
3
  import "../migrate-Bq0esMOa.mjs";
4
4
  import "../helpers-CZsi_49C.mjs";
5
5
  import "../reranker-3lnggwgq.mjs";
6
- import "../postgres-D3xc2RB4.mjs";
7
- import "../factory-Ypf8r0fK.mjs";
8
- import "../embeddings-DOLZnT1X.mjs";
6
+ import "../postgres-H85VSYHI.mjs";
7
+ import "../factory-BUnZgnKW.mjs";
8
+ import "../embeddings-DMVzpvRZ.mjs";
9
9
  import "../router-BaTbc9VX.mjs";
10
- import { a as ensureConfigDir, s as loadConfig } from "../config-C-LiGlop.mjs";
11
- import "../context-handover-cache-9PGvXRIw.mjs";
12
- import "../run-env-Bnmf6bRI.mjs";
13
- import "../run-CLYTOm0x.mjs";
14
- import { t as PaiClient } from "../ipc-client-BLYX51nG.mjs";
15
- import "../aibroker-client-Dfv7j1Od.mjs";
10
+ import { a as ensureConfigDir, s as loadConfig } from "../config-Ddc4DIPk.mjs";
11
+ import "../context-handover-cache-DcPEW6vf.mjs";
12
+ import "../run-env-CQRnxNht.mjs";
13
+ import "../run-D9YbWsnL.mjs";
14
+ import { t as PaiClient } from "../ipc-client-DkxRay-o.mjs";
15
+ import "../aibroker-client-WCZi_tn-.mjs";
16
16
  import { t as dropItermBundleId } from "../env-DiolswKQ.mjs";
17
- import { t as serve } from "../daemon-BUgNvMUh.mjs";
18
- import "../zettelkasten-BhZMvmoK.mjs";
17
+ import { t as serve } from "../daemon-Bl8TpHdM.mjs";
18
+ import "../zettelkasten-BRIaHzFm.mjs";
19
19
  import { Command } from "commander";
20
20
 
21
21
  //#region src/daemon/index.ts
@@ -2,18 +2,18 @@ import { c as yieldToEventLoop, f as fileContentHash, l as buildOutline, n as ch
2
2
  import { n as TITLE_STOP_WORDS, t as STOP_WORDS } from "./stop-words-DtxaTWU_.mjs";
3
3
  import { i as populateSlugs, t as applyRecencyBoost } from "./search-CNAGTiJP.mjs";
4
4
  import { n as rerankResults } from "./reranker-3lnggwgq.mjs";
5
- import { n as embedChunksWithBackend } from "./postgres-D3xc2RB4.mjs";
6
- import { d as getBackendOutage, n as createRegistryBackend, r as createStorageBackend } from "./factory-Ypf8r0fK.mjs";
7
- import { i as generateEmbedding, n as cosineSimilarity$1, r as deserializeEmbedding, t as configureEmbeddingModel } from "./embeddings-DOLZnT1X.mjs";
5
+ import { n as embedChunksWithBackend } from "./postgres-H85VSYHI.mjs";
6
+ import { d as getBackendOutage, n as createRegistryBackend, r as createStorageBackend } from "./factory-BUnZgnKW.mjs";
7
+ import { i as generateEmbedding, n as cosineSimilarity$1, r as deserializeEmbedding, t as configureEmbeddingModel } from "./embeddings-DMVzpvRZ.mjs";
8
8
  import { t as routeNotification } from "./router-BaTbc9VX.mjs";
9
- import { S as DEFAULT_NOTIFICATION_CONFIG, d as readMainConfigRaw, f as writeMainConfigRaw } from "./config-C-LiGlop.mjs";
10
- import { $ as vaultIndexInProgress, A as lastIndexTime, At as formatDetectionJson, B as setIndexSchedulerTimer, C as cacheKeepaliveTimer, D as indexInProgress, E as embedSchedulerTimer, F as setCacheKeepaliveTimer, G as setRegistryBackend, H as setLastIndexTime, I as setDaemonConfig, J as setStorageBackend, K as setShutdownRequested, L as setEmbedInProgress, M as notificationConfig, N as passFailures, O as indexSchedulerTimer, Ot as detectProject, P as registryBackend, Q as storageBackend, R as setEmbedSchedulerTimer, S as spawnSummarizer, T as embedInProgress, U as setLastVaultIndexTime, V as setLastEmbedTime, W as setNotificationConfig, X as shutdownRequested, Y as setVaultIndexInProgress, Z as startTime, _ as contentToText$2, b as handleSessionSummary, c as cleanup, ct as addWorkToSessionNote, d as getStats, dt as getCurrentNotePath, f as hasPendingOrProcessingOfType, ft as archiveSessionFilesToSessionsDir, h as markFailed, i as runSessionKeepaliveTick, j as lastVaultIndexTime, k as lastEmbedTime, l as dequeue, lt as appendCheckpoint, m as markCompleted, mt as buildWakeupContext, n as writeContextHandoverCache, nt as updateTodoContinue, p as loadQueue, pt as findNotesDir, q as setStartTime, t as readContextHandoverCache, tt as sessionIdFromTranscript, u as enqueue, ut as finalizeSessionNote, v as findLatestJsonl, w as daemonConfig, y as getGitContext, yt as performScan, z as setIndexInProgress } from "./context-handover-cache-9PGvXRIw.mjs";
11
- import { D as readWorkersSection } from "./run-env-Bnmf6bRI.mjs";
12
- import { F as appendLedger, G as loadStatus, J as nowStamp, K as loadStatuses, S as itermForClaudeSession, U as isChatPane, dt as ledgerPath, n as runWorker, pt as workersLogDir, ut as eventsPath, z as alive } from "./run-CLYTOm0x.mjs";
13
- import { r as saveQueryResult } from "./query-feedback-B7FYE4JR.mjs";
14
- import { i as sendToSession } from "./aibroker-client-Dfv7j1Od.mjs";
9
+ import { S as DEFAULT_NOTIFICATION_CONFIG, d as readMainConfigRaw, f as writeMainConfigRaw } from "./config-Ddc4DIPk.mjs";
10
+ import { $ as shutdownRequested, A as indexInProgress, B as setEmbedInProgress, C as handleSessionSummary, D as daemonConfig, E as cacheKeepaliveTimer, F as notificationConfig, G as setLastIndexTime, H as setIndexInProgress, I as passFailures, It as formatDetectionJson, J as setRegistryBackend, K as setLastVaultIndexTime, L as registryBackend, M as lastEmbedTime, N as lastIndexTime, O as embedInProgress, P as lastVaultIndexTime, Pt as detectProject, Q as setVaultIndexInProgress, R as setCacheKeepaliveTimer, S as getGitContext, T as spawnSummarizer, Tt as performScan, U as setIndexSchedulerTimer, V as setEmbedSchedulerTimer, W as setLastEmbedTime, X as setStartTime, Y as setShutdownRequested, Z as setStorageBackend, _ as markCompleted, _t as buildWakeupContext, at as updateTodoContinue, b as contentToText$2, c as removeDaemonPidfile, d as cleanup, dt as addWorkToSessionNote, et as startTime, f as dequeue, ft as appendCheckpoint, g as loadQueue, gt as findNotesDir, h as hasPendingOrProcessingOfType, ht as archiveSessionFilesToSessionsDir, i as runSessionKeepaliveTick, it as sessionIdFromTranscript, j as indexSchedulerTimer, k as embedSchedulerTimer, m as getStats, mt as getCurrentNotePath, n as writeContextHandoverCache, nt as vaultIndexInProgress, p as enqueue, pt as finalizeSessionNote, q as setNotificationConfig, t as readContextHandoverCache, tt as storageBackend, u as writeDaemonPidfile, v as markFailed, x as findLatestJsonl, xt as runPassChild, yt as PassSpawnError, z as setDaemonConfig } from "./context-handover-cache-DcPEW6vf.mjs";
11
+ import { D as readWorkersSection } from "./run-env-CQRnxNht.mjs";
12
+ import { F as appendLedger, G as loadStatus, J as nowStamp, K as loadStatuses, S as itermForClaudeSession, U as isChatPane, dt as ledgerPath, n as runWorker, pt as workersLogDir, ut as eventsPath, z as alive } from "./run-D9YbWsnL.mjs";
13
+ import { r as saveQueryResult } from "./query-feedback-BPdapXKd.mjs";
14
+ import { i as sendToSession } from "./aibroker-client-WCZi_tn-.mjs";
15
15
  import { n as formatAutoRouteJson, r as detectTopicShift, t as autoRoute } from "./auto-route-BnizyALK.mjs";
16
- import { a as zettelThemes, c as zettelExplore, i as zettelHealth, n as zettelGodNotes, o as zettelConverse, r as zettelSuggest, s as zettelSurprise, t as zettelCommunities } from "./zettelkasten-BhZMvmoK.mjs";
16
+ import { a as zettelThemes, c as zettelExplore, i as zettelHealth, n as zettelGodNotes, o as zettelConverse, r as zettelSuggest, s as zettelSurprise, t as zettelCommunities } from "./zettelkasten-BRIaHzFm.mjs";
17
17
  import { appendFileSync, existsSync, mkdirSync, readFileSync, readdirSync, renameSync, statSync, unlinkSync, writeFileSync } from "node:fs";
18
18
  import { setPriority } from "node:os";
19
19
  import { basename, dirname, isAbsolute, join, normalize, relative, resolve } from "node:path";
@@ -1715,6 +1715,21 @@ function failPass(name, e, retry) {
1715
1715
  const t = setTimeout(() => void retry().catch(() => {}), delay);
1716
1716
  if (t.unref) t.unref();
1717
1717
  }
1718
+ /**
1719
+ * Run a heavy pass at background priority in a child process (passPriority
1720
+ * "background"), else in-process. Falls back in-process, with a warning, only
1721
+ * when the child cannot be spawned; a child that ran and failed is a failure.
1722
+ */
1723
+ async function runPassPrioritised(name, inProcess) {
1724
+ if (daemonConfig.passPriority !== "background") return inProcess();
1725
+ try {
1726
+ return await runPassChild(name);
1727
+ } catch (e) {
1728
+ if (!(e instanceof PassSpawnError)) throw e;
1729
+ process.stderr.write(`[pai-daemon] ${name} pass: ${e.message}; running in-process at normal priority\n`);
1730
+ return inProcess();
1731
+ }
1732
+ }
1718
1733
  /** Minimum interval between vault index runs (30 minutes). */
1719
1734
  const VAULT_INDEX_MIN_INTERVAL_MS = 1800 * 1e3;
1720
1735
  /**
@@ -1734,7 +1749,7 @@ async function runIndex() {
1734
1749
  const t0 = Date.now();
1735
1750
  try {
1736
1751
  process.stderr.write("[pai-daemon] Starting scheduled index run...\n");
1737
- const { projects, result } = await storageBackend.indexAll(registryBackend);
1752
+ const { projects, result } = await runPassPrioritised("index", () => storageBackend.indexAll(registryBackend));
1738
1753
  const elapsed = Date.now() - t0;
1739
1754
  setLastIndexTime(Date.now());
1740
1755
  passFailures.delete("index");
@@ -1839,12 +1854,14 @@ async function runEmbed() {
1839
1854
  const t0 = Date.now();
1840
1855
  try {
1841
1856
  process.stderr.write("[pai-daemon] Starting scheduled embed pass...\n");
1842
- const projectNames = /* @__PURE__ */ new Map();
1843
- try {
1844
- const rows = await registryBackend.listProjects({ status: "active" });
1845
- for (const r of rows) projectNames.set(r.id, r.slug);
1846
- } catch {}
1847
- const count = await embedChunksWithBackend(storageBackend, () => shutdownRequested, projectNames, { maxMillis: 24e4 });
1857
+ const { count } = await runPassPrioritised("embed", async () => {
1858
+ const projectNames = /* @__PURE__ */ new Map();
1859
+ try {
1860
+ const rows = await registryBackend.listProjects({ status: "active" });
1861
+ for (const r of rows) projectNames.set(r.id, r.slug);
1862
+ } catch {}
1863
+ return { count: await embedChunksWithBackend(storageBackend, () => shutdownRequested, projectNames, { maxMillis: 24e4 }) };
1864
+ });
1848
1865
  const elapsed = Date.now() - t0;
1849
1866
  setLastEmbedTime(Date.now());
1850
1867
  passFailures.delete("embed");
@@ -5013,8 +5030,10 @@ async function serve(config) {
5013
5030
  try {
5014
5031
  unlinkSync(config.socketPath);
5015
5032
  } catch {}
5033
+ removeDaemonPidfile();
5016
5034
  process.exit(0);
5017
5035
  };
5036
+ writeDaemonPidfile();
5018
5037
  process.on("SIGINT", () => {
5019
5038
  shutdown("SIGINT").catch(() => process.exit(0));
5020
5039
  });
@@ -5026,4 +5045,4 @@ async function serve(config) {
5026
5045
 
5027
5046
  //#endregion
5028
5047
  export { serve as t };
5029
- //# sourceMappingURL=daemon-BUgNvMUh.mjs.map
5048
+ //# sourceMappingURL=daemon-Bl8TpHdM.mjs.map