@tekmidian/pai 0.42.4 → 0.42.6

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 (292) hide show
  1. package/ARCHITECTURE.md +9 -9
  2. package/README.md +26 -8
  3. package/dist/{aibroker-client-BP74gGwD.mjs → aibroker-client-Bn9SnGMa.mjs} +3 -3
  4. package/dist/{aibroker-client-BP74gGwD.mjs.map → aibroker-client-Bn9SnGMa.mjs.map} +1 -1
  5. package/dist/{aibroker-client-C6m71p6O.mjs → aibroker-client-D5NT0S1N.mjs} +1 -1
  6. package/dist/{auto-route-_5zzJz5q.mjs → auto-route-CcD0OWWB.mjs} +4 -4
  7. package/dist/{auto-route-_5zzJz5q.mjs.map → auto-route-CcD0OWWB.mjs.map} +1 -1
  8. package/dist/{chain-DTII7xeL.mjs → chain-BbcfP77K.mjs} +5 -4
  9. package/dist/{chain-DTII7xeL.mjs.map → chain-BbcfP77K.mjs.map} +1 -1
  10. package/dist/cli/index.mjs +23 -21
  11. package/dist/cli/index.mjs.map +1 -1
  12. package/dist/cli/program.d.mts.map +1 -1
  13. package/dist/cli/program.mjs +23 -21
  14. package/dist/{clusters-j0ZuNYp9.mjs → clusters-Cw_P6lO-.mjs} +2 -2
  15. package/dist/{clusters-j0ZuNYp9.mjs.map → clusters-Cw_P6lO-.mjs.map} +1 -1
  16. package/dist/{config-B64vFg14.mjs → config-DCu8THKi.mjs} +41 -9
  17. package/dist/{config-B64vFg14.mjs.map → config-DCu8THKi.mjs.map} +1 -1
  18. package/dist/config-DeqFqa1N.mjs +3 -0
  19. package/dist/config-DxMZjpvY.mjs +1289 -0
  20. package/dist/config-DxMZjpvY.mjs.map +1 -0
  21. package/dist/context-handover-cache-B9NKSjwR.mjs +3242 -0
  22. package/dist/context-handover-cache-B9NKSjwR.mjs.map +1 -0
  23. package/dist/daemon/index.mjs +23 -22
  24. package/dist/daemon/index.mjs.map +1 -1
  25. package/dist/daemon-BNjbVsQU.mjs +24 -0
  26. package/dist/{daemon-B8N1egl0.mjs → daemon-BppziPi6.mjs} +52 -38
  27. package/dist/daemon-BppziPi6.mjs.map +1 -0
  28. package/dist/daemon-mcp/index.mjs +144 -117
  29. package/dist/daemon-mcp/index.mjs.map +1 -1
  30. package/dist/db-BOBfewFH.mjs +3 -0
  31. package/dist/{db-a1ixZQjr.mjs → db-DJ8rk0VM.mjs} +15 -6
  32. package/dist/{db-a1ixZQjr.mjs.map → db-DJ8rk0VM.mjs.map} +1 -1
  33. package/dist/db-DbY2O8QO.mjs +3 -0
  34. package/dist/{db-Ca5qfsMC.mjs → db-Ddns80yf.mjs} +15 -6
  35. package/dist/{db-Ca5qfsMC.mjs.map → db-Ddns80yf.mjs.map} +1 -1
  36. package/dist/{detect-CdaA48EI.mjs → detect-Bf2z-oKB.mjs} +1 -1
  37. package/dist/{detect-CdaA48EI.mjs.map → detect-Bf2z-oKB.mjs.map} +1 -1
  38. package/dist/detector-CkwkXuGh.mjs +5 -0
  39. package/dist/{detector-C73Nxm94.mjs → detector-DWXkeTlk.mjs} +2 -2
  40. package/dist/{detector-C73Nxm94.mjs.map → detector-DWXkeTlk.mjs.map} +1 -1
  41. package/dist/{embeddings-CEBGrzwu.mjs → embeddings-ClqKtLZ8.mjs} +1 -1
  42. package/dist/{embeddings-DOLZnT1X.mjs → embeddings-DvRKcQyt.mjs} +1 -1
  43. package/dist/{embeddings-DOLZnT1X.mjs.map → embeddings-DvRKcQyt.mjs.map} +1 -1
  44. package/dist/factory-47Qf_df7.mjs +3 -0
  45. package/dist/{factory-DEb9NmHJ.mjs → factory-DNYAqjH0.mjs} +8 -8
  46. package/dist/{factory-DEb9NmHJ.mjs.map → factory-DNYAqjH0.mjs.map} +1 -1
  47. package/dist/{fallback-oJl3BaIN.mjs → fallback-Cwt4hmh5.mjs} +182 -122
  48. package/dist/fallback-Cwt4hmh5.mjs.map +1 -0
  49. package/dist/{helpers-IjZkXBhj.mjs → helpers-crDEr6S2.mjs} +1 -1
  50. package/dist/{helpers-IjZkXBhj.mjs.map → helpers-crDEr6S2.mjs.map} +1 -1
  51. package/dist/hooks/capture-all-events.mjs +117 -34
  52. package/dist/hooks/capture-all-events.mjs.map +4 -4
  53. package/dist/hooks/capture-session-summary.mjs +110 -33
  54. package/dist/hooks/capture-session-summary.mjs.map +4 -4
  55. package/dist/hooks/capture-tool-output.mjs +105 -28
  56. package/dist/hooks/capture-tool-output.mjs.map +4 -4
  57. package/dist/hooks/cleanup-session-files.mjs +54 -13
  58. package/dist/hooks/cleanup-session-files.mjs.map +2 -2
  59. package/dist/hooks/context-compression-hook.mjs +7565 -122
  60. package/dist/hooks/context-compression-hook.mjs.map +4 -4
  61. package/dist/hooks/initialize-session.mjs +55 -14
  62. package/dist/hooks/initialize-session.mjs.map +2 -2
  63. package/dist/hooks/inject-observations.mjs +79 -18
  64. package/dist/hooks/inject-observations.mjs.map +3 -3
  65. package/dist/hooks/load-core-context.mjs +55 -14
  66. package/dist/hooks/load-core-context.mjs.map +2 -2
  67. package/dist/hooks/load-project-context.mjs +185 -103
  68. package/dist/hooks/load-project-context.mjs.map +4 -4
  69. package/dist/hooks/mcp-deferred-gate.mjs +54 -13
  70. package/dist/hooks/mcp-deferred-gate.mjs.map +2 -2
  71. package/dist/hooks/mcp-deferred-reminder.mjs +9 -0
  72. package/dist/hooks/mcp-deferred-reminder.mjs.map +3 -3
  73. package/dist/hooks/observe.mjs +54 -13
  74. package/dist/hooks/observe.mjs.map +2 -2
  75. package/dist/hooks/post-compact-inject.mjs +7419 -16
  76. package/dist/hooks/post-compact-inject.mjs.map +4 -4
  77. package/dist/hooks/route-agents-to-worker.mjs +7778 -171
  78. package/dist/hooks/route-agents-to-worker.mjs.map +4 -4
  79. package/dist/hooks/route-edits-to-worker.mjs +90 -0
  80. package/dist/hooks/route-edits-to-worker.mjs.map +7 -0
  81. package/dist/hooks/security-validator.mjs +147 -6
  82. package/dist/hooks/security-validator.mjs.map +4 -4
  83. package/dist/hooks/session-commands.mjs +9 -0
  84. package/dist/hooks/session-commands.mjs.map +3 -3
  85. package/dist/hooks/stop-hook.mjs +182 -105
  86. package/dist/hooks/stop-hook.mjs.map +4 -4
  87. package/dist/hooks/subagent-stop-hook.mjs +3 -0
  88. package/dist/hooks/subagent-stop-hook.mjs.map +1 -1
  89. package/dist/hooks/sync-todo-to-md.mjs +54 -13
  90. package/dist/hooks/sync-todo-to-md.mjs.map +2 -2
  91. package/dist/hooks/update-tab-on-action.mjs +3 -0
  92. package/dist/hooks/update-tab-on-action.mjs.map +1 -1
  93. package/dist/hooks/update-tab-titles.mjs +3 -0
  94. package/dist/hooks/update-tab-titles.mjs.map +1 -1
  95. package/dist/hooks/whisper-reinject.mjs +3 -0
  96. package/dist/hooks/whisper-reinject.mjs.map +1 -1
  97. package/dist/hooks/whisper-rules.mjs +134 -29
  98. package/dist/hooks/whisper-rules.mjs.map +4 -4
  99. package/dist/hooks/worker-proxy.mjs +7737 -117
  100. package/dist/hooks/worker-proxy.mjs.map +4 -4
  101. package/dist/hooks/worker-status-line.mjs +7791 -144
  102. package/dist/hooks/worker-status-line.mjs.map +4 -4
  103. package/dist/hooks/worker-supervision.mjs +7721 -115
  104. package/dist/hooks/worker-supervision.mjs.map +4 -4
  105. package/dist/index.d.mts +4 -2
  106. package/dist/index.d.mts.map +1 -1
  107. package/dist/index.mjs +10 -10
  108. package/dist/{indexer-backend-BPTzKFZU.mjs → indexer-backend-CdvCJCkD.mjs} +3 -3
  109. package/dist/{indexer-backend-BPTzKFZU.mjs.map → indexer-backend-CdvCJCkD.mjs.map} +1 -1
  110. package/dist/{ipc-client-BmypMNYk.mjs → ipc-client-C6NryMMb.mjs} +2 -2
  111. package/dist/{ipc-client-BmypMNYk.mjs.map → ipc-client-C6NryMMb.mjs.map} +1 -1
  112. package/dist/{kg-entity-r8duqhi9.mjs → kg-entity-BSjM5xZh.mjs} +1 -1
  113. package/dist/{kg-entity-r8duqhi9.mjs.map → kg-entity-BSjM5xZh.mjs.map} +1 -1
  114. package/dist/{latent-ideas-CtSca4qG.mjs → latent-ideas-BfL4nCQ3.mjs} +4 -4
  115. package/dist/{latent-ideas-CtSca4qG.mjs.map → latent-ideas-BfL4nCQ3.mjs.map} +1 -1
  116. package/dist/{link-boost-Bucnz3n8.mjs → link-boost-C5PaNdzm.mjs} +1 -1
  117. package/dist/{link-boost-Bucnz3n8.mjs.map → link-boost-C5PaNdzm.mjs.map} +1 -1
  118. package/dist/main-resolver-CnfnWa8C.mjs +7 -0
  119. package/dist/{main-resolver-DnkxPYkr.mjs → main-resolver-DvYu9jbl.mjs} +21 -11
  120. package/dist/main-resolver-DvYu9jbl.mjs.map +1 -0
  121. package/dist/{migrate-Cjzeefn9.mjs → migrate-CfERwXhY.mjs} +2 -2
  122. package/dist/{migrate-Cjzeefn9.mjs.map → migrate-CfERwXhY.mjs.map} +1 -1
  123. package/dist/{neighborhood-CM7Jgb51.mjs → neighborhood-CETR_P4y.mjs} +2 -2
  124. package/dist/{neighborhood-CM7Jgb51.mjs.map → neighborhood-CETR_P4y.mjs.map} +1 -1
  125. package/dist/{note-context-DCwE2A-M.mjs → note-context-DCcRWBoN.mjs} +1 -1
  126. package/dist/{note-context-DCwE2A-M.mjs.map → note-context-DCcRWBoN.mjs.map} +1 -1
  127. package/dist/pai-home-ChAOupZc.mjs +164 -0
  128. package/dist/pai-home-ChAOupZc.mjs.map +1 -0
  129. package/dist/{pai-marker-CHtbJMwJ.mjs → pai-marker-B20KqhA8.mjs} +1 -1
  130. package/dist/{pai-marker-CHtbJMwJ.mjs.map → pai-marker-B20KqhA8.mjs.map} +1 -1
  131. package/dist/{planner-D5Ui7DAm.mjs → planner-pXRc-8yt.mjs} +7 -6
  132. package/dist/{planner-D5Ui7DAm.mjs.map → planner-pXRc-8yt.mjs.map} +1 -1
  133. package/dist/{postgres-CtOzfoQU.mjs → postgres-CUSXWgTG.mjs} +2 -2
  134. package/dist/{postgres-CtOzfoQU.mjs.map → postgres-CUSXWgTG.mjs.map} +1 -1
  135. package/dist/{program-zpoYnJGz.mjs → program-LLNPpxlj.mjs} +8308 -6065
  136. package/dist/program-LLNPpxlj.mjs.map +1 -0
  137. package/dist/query-feedback-C7rSfiXU.mjs +3 -0
  138. package/dist/{query-feedback-Dqz-HC__.mjs → query-feedback-CYyOGi3y.mjs} +20 -6
  139. package/dist/query-feedback-CYyOGi3y.mjs.map +1 -0
  140. package/dist/{reranker-CwTCNsgA.mjs → reranker-B5qUTamW.mjs} +1 -1
  141. package/dist/{reranker-xPm04PXx.mjs → reranker-HHmhZk6v.mjs} +1 -1
  142. package/dist/{reranker-xPm04PXx.mjs.map → reranker-HHmhZk6v.mjs.map} +1 -1
  143. package/dist/router-CremHKTI.mjs +3 -0
  144. package/dist/{router-DD6D4j31.mjs → router-DBAZfE7X.mjs} +2 -2
  145. package/dist/{router-DD6D4j31.mjs.map → router-DBAZfE7X.mjs.map} +1 -1
  146. package/dist/{run-D7K5UALn.mjs → run-DDdT9teG.mjs} +530 -210
  147. package/dist/run-DDdT9teG.mjs.map +1 -0
  148. package/dist/{runtime-paths-rni52zHX.mjs → runtime-paths-B0P1TvUr.mjs} +1 -1
  149. package/dist/{runtime-paths-rni52zHX.mjs.map → runtime-paths-B0P1TvUr.mjs.map} +1 -1
  150. package/dist/{search-Rpk1cSBC.mjs → search-B69cQwDB.mjs} +3 -3
  151. package/dist/{search-Rpk1cSBC.mjs.map → search-B69cQwDB.mjs.map} +1 -1
  152. package/dist/{search-CfPpJAWQ.mjs → search-fb-5ovj4.mjs} +2 -2
  153. package/dist/{server-D4vAieF4.mjs → server-Ch99xt5K.mjs} +15 -14
  154. package/dist/server-Ch99xt5K.mjs.map +1 -0
  155. package/dist/skills/Advisor/SKILL.md +3 -3
  156. package/dist/skills/Providers/SKILL.md +30 -0
  157. package/dist/skills/Reconstruct/SKILL.md +1 -1
  158. package/dist/skills/VaultContext/SKILL.md +1 -1
  159. package/dist/skills/Whisper/SKILL.md +3 -3
  160. package/dist/skills/Worker/SKILL.md +1 -1
  161. package/dist/{sources-CS43CpuS.mjs → sources-KBGEA_E6.mjs} +2 -2
  162. package/dist/{sources-CS43CpuS.mjs.map → sources-KBGEA_E6.mjs.map} +1 -1
  163. package/dist/{sqlite-Cq3gJcq9.mjs → sqlite-By6r2YhZ.mjs} +3 -3
  164. package/dist/{sqlite-Cq3gJcq9.mjs.map → sqlite-By6r2YhZ.mjs.map} +1 -1
  165. package/dist/{state-CY6I-Hnc.mjs → state-DnYGRmS7.mjs} +1 -1
  166. package/dist/{state-BRdB-Bf1.mjs → state-PJrgfDLW.mjs} +1 -1
  167. package/dist/{state-BRdB-Bf1.mjs.map → state-PJrgfDLW.mjs.map} +1 -1
  168. package/dist/{stop-words-Hfu8u22w.mjs → stop-words-BaMEGVeY.mjs} +1 -1
  169. package/dist/{stop-words-Hfu8u22w.mjs.map → stop-words-BaMEGVeY.mjs.map} +1 -1
  170. package/dist/{sync-BWbe8JTg.mjs → sync-Btcb6xA4.mjs} +3 -3
  171. package/dist/{sync-BWbe8JTg.mjs.map → sync-Btcb6xA4.mjs.map} +1 -1
  172. package/dist/{themes-B7h9YDiy.mjs → themes-BVoAnLZj.mjs} +3 -3
  173. package/dist/{themes-B7h9YDiy.mjs.map → themes-BVoAnLZj.mjs.map} +1 -1
  174. package/dist/{tools-BW3NLMPk.mjs → tools-BradfQk7.mjs} +4 -3
  175. package/dist/{tools-LlzcV_eK.mjs → tools-UrSHIe29.mjs} +30 -233
  176. package/dist/tools-UrSHIe29.mjs.map +1 -0
  177. package/dist/{trace-u4hT-pLD.mjs → trace-Cy8quQTm.mjs} +1 -1
  178. package/dist/{trace-u4hT-pLD.mjs.map → trace-Cy8quQTm.mjs.map} +1 -1
  179. package/dist/{utils-DhMex3Ox.mjs → utils-BD8g8oSf.mjs} +1 -1
  180. package/dist/{utils-9Err2RBW.mjs → utils-CJymHkYm.mjs} +1 -1
  181. package/dist/{utils-9Err2RBW.mjs.map → utils-CJymHkYm.mjs.map} +1 -1
  182. package/dist/{vault-indexer-mata9S7b.mjs → vault-indexer-C5i-OAyr.mjs} +2 -2
  183. package/dist/{vault-indexer-mata9S7b.mjs.map → vault-indexer-C5i-OAyr.mjs.map} +1 -1
  184. package/dist/wakeup-TnGjJY3I.mjs +218 -0
  185. package/dist/wakeup-TnGjJY3I.mjs.map +1 -0
  186. package/dist/work-queue-worker-BA5IDBwQ.mjs +567 -0
  187. package/dist/work-queue-worker-BA5IDBwQ.mjs.map +1 -0
  188. package/dist/work-queue-worker-DLM2wlqM.mjs +14 -0
  189. package/dist/{zettelkasten-F0D_XfQ4.mjs → zettelkasten-BBjA7GcP.mjs} +4 -4
  190. package/dist/{zettelkasten-F0D_XfQ4.mjs.map → zettelkasten-BBjA7GcP.mjs.map} +1 -1
  191. package/docs/commands/README.md +30 -3
  192. package/docs/commands/audit.md +88 -0
  193. package/docs/commands/backup.md +2 -2
  194. package/docs/commands/clear-names.md +1 -1
  195. package/docs/commands/config.md +59 -0
  196. package/docs/commands/daemon.md +1 -1
  197. package/docs/commands/db.md +1 -1
  198. package/docs/commands/end.md +1 -1
  199. package/docs/commands/help.md +1 -1
  200. package/docs/commands/identity.md +1 -1
  201. package/docs/commands/kg.md +1 -1
  202. package/docs/commands/launch.md +45 -0
  203. package/docs/commands/mcp.md +1 -1
  204. package/docs/commands/memory.md +3 -3
  205. package/docs/commands/notify.md +1 -1
  206. package/docs/commands/observation.md +1 -1
  207. package/docs/commands/obsidian.md +1 -1
  208. package/docs/commands/pause.md +1 -1
  209. package/docs/commands/project.md +46 -1
  210. package/docs/commands/projects.md +46 -1
  211. package/docs/commands/registry.md +1 -1
  212. package/docs/commands/restore.md +1 -1
  213. package/docs/commands/session.md +1 -1
  214. package/docs/commands/sessions.md +1 -1
  215. package/docs/commands/setup.md +1 -1
  216. package/docs/commands/shell-init.md +1 -1
  217. package/docs/commands/skill.md +1 -1
  218. package/docs/commands/task.md +1 -1
  219. package/docs/commands/topic.md +1 -1
  220. package/docs/commands/update.md +1 -1
  221. package/docs/commands/worker.md +95 -6
  222. package/docs/commands/zettel.md +1 -1
  223. package/docs/provider-abstraction.md +1 -1
  224. package/docs/provider-independence-details.md +8 -5
  225. package/docs/task-bus.md +1 -1
  226. package/docs/worker.md +136 -83
  227. package/docs/workers-config.md +446 -0
  228. package/package.json +4 -2
  229. package/scripts/build-hooks.mjs +56 -3
  230. package/src/hooks/pre-compact.sh +5 -2
  231. package/src/hooks/session-stop.sh +29 -4
  232. package/src/hooks/ts/capture-all-events.ts +3 -3
  233. package/src/hooks/ts/lib/advisor-budget.test.ts +98 -0
  234. package/src/hooks/ts/lib/advisor-budget.ts +90 -0
  235. package/src/hooks/ts/lib/agent-gate.test.ts +101 -0
  236. package/src/hooks/ts/lib/agent-gate.ts +112 -0
  237. package/src/hooks/ts/lib/context-fill.ts +2 -2
  238. package/src/hooks/ts/lib/edit-gate.test.ts +52 -0
  239. package/src/hooks/ts/lib/edit-gate.ts +51 -0
  240. package/src/hooks/ts/lib/mcp-deferred-reminder.test.ts +8 -0
  241. package/src/hooks/ts/lib/pai-paths.test.ts +93 -0
  242. package/src/hooks/ts/lib/pai-paths.ts +168 -24
  243. package/src/hooks/ts/lib/project-utils/index.ts +1 -0
  244. package/src/hooks/ts/lib/project-utils/paths.ts +5 -4
  245. package/src/hooks/ts/lib/project-utils.ts +1 -0
  246. package/src/hooks/ts/post-tool-use/capture-tool-output.ts +2 -2
  247. package/src/hooks/ts/pre-compact/context-compression-hook.ts +1 -1
  248. package/src/hooks/ts/pre-tool-use/route-agents-to-worker.ts +46 -99
  249. package/src/hooks/ts/pre-tool-use/route-edits-to-worker.test.ts +47 -0
  250. package/src/hooks/ts/pre-tool-use/route-edits-to-worker.ts +96 -0
  251. package/src/hooks/ts/pre-tool-use/security-validator.ts +2 -1
  252. package/src/hooks/ts/session-end/capture-session-summary.ts +4 -4
  253. package/src/hooks/ts/session-start/initialize-session.ts +3 -3
  254. package/src/hooks/ts/session-start/inject-observations.test.ts +56 -0
  255. package/src/hooks/ts/session-start/inject-observations.ts +28 -8
  256. package/src/hooks/ts/session-start/load-core-context.ts +4 -4
  257. package/src/hooks/ts/session-start/load-project-context.ts +2 -2
  258. package/src/hooks/ts/session-start/mcp-deferred-reminder.ts +2 -0
  259. package/src/hooks/ts/session-start/session-commands.ts +4 -0
  260. package/src/hooks/ts/session-start/session-start-worker-guard.test.ts +36 -0
  261. package/src/hooks/ts/stop/stop-hook.ts +6 -11
  262. package/src/hooks/ts/user-prompt/whisper-rules.test.ts +49 -0
  263. package/src/hooks/ts/user-prompt/whisper-rules.ts +88 -47
  264. package/statusline-command.sh +277 -116
  265. package/templates/agent-prefs.example.md +8 -8
  266. package/templates/claude-md.template.md +1 -1
  267. package/templates/voices.example.json +3 -3
  268. package/dist/config-C_ErGddD.mjs +0 -3
  269. package/dist/config-_lQI_W08.mjs +0 -640
  270. package/dist/config-_lQI_W08.mjs.map +0 -1
  271. package/dist/context-handover-cache-pNFdBNrU.mjs +0 -1548
  272. package/dist/context-handover-cache-pNFdBNrU.mjs.map +0 -1
  273. package/dist/daemon-B8N1egl0.mjs.map +0 -1
  274. package/dist/daemon-DHfyoTlk.mjs +0 -23
  275. package/dist/db-O-cyAPfS.mjs +0 -3
  276. package/dist/db-XEwJbuGO.mjs +0 -3
  277. package/dist/detector-C-7KRi42.mjs +0 -5
  278. package/dist/factory-Dbo8yNPi.mjs +0 -3
  279. package/dist/fallback-oJl3BaIN.mjs.map +0 -1
  280. package/dist/main-resolver-BAfOMppW.mjs +0 -7
  281. package/dist/main-resolver-DnkxPYkr.mjs.map +0 -1
  282. package/dist/program-zpoYnJGz.mjs.map +0 -1
  283. package/dist/query-feedback-DGoVRaWD.mjs +0 -3
  284. package/dist/query-feedback-Dqz-HC__.mjs.map +0 -1
  285. package/dist/router-BTIGZR2_.mjs +0 -3
  286. package/dist/run-D7K5UALn.mjs.map +0 -1
  287. package/dist/server-D4vAieF4.mjs.map +0 -1
  288. package/dist/tools-LlzcV_eK.mjs.map +0 -1
  289. package/dist/work-queue-worker-AEmfVE0F.mjs +0 -14
  290. package/dist/work-queue-worker-DIT-VLSh.mjs +0 -2136
  291. package/dist/work-queue-worker-DIT-VLSh.mjs.map +0 -1
  292. /package/dist/{indexer-D7MvSQPY.mjs → indexer-C5Le7XE7.mjs} +0 -0
@@ -1,26 +1,27 @@
1
1
  #!/usr/bin/env node
2
- import "../db-Ca5qfsMC.mjs";
3
- import "../utils-9Err2RBW.mjs";
4
- import "../migrate-Cjzeefn9.mjs";
5
- import "../db-a1ixZQjr.mjs";
6
- import "../helpers-IjZkXBhj.mjs";
7
- import "../sync-BWbe8JTg.mjs";
8
- import "../embeddings-DOLZnT1X.mjs";
9
- import "../search-Rpk1cSBC.mjs";
10
- import "../context-handover-cache-pNFdBNrU.mjs";
11
- import "../indexer-D7MvSQPY.mjs";
12
- import { t as PaiClient } from "../ipc-client-BmypMNYk.mjs";
13
- import { i as ensureConfigDir, o as loadConfig } from "../config-B64vFg14.mjs";
14
- import "../factory-DEb9NmHJ.mjs";
15
- import "../config-_lQI_W08.mjs";
16
- import "../server-D4vAieF4.mjs";
17
- import "../run-D7K5UALn.mjs";
18
- import { t as serve } from "../daemon-B8N1egl0.mjs";
19
- import "../state-BRdB-Bf1.mjs";
20
- import "../router-DD6D4j31.mjs";
21
- import "../tools-LlzcV_eK.mjs";
22
- import "../detector-C73Nxm94.mjs";
23
- import "../work-queue-worker-DIT-VLSh.mjs";
2
+ import "../db-Ddns80yf.mjs";
3
+ import "../utils-CJymHkYm.mjs";
4
+ import "../migrate-CfERwXhY.mjs";
5
+ import "../db-DJ8rk0VM.mjs";
6
+ import "../helpers-crDEr6S2.mjs";
7
+ import "../sync-Btcb6xA4.mjs";
8
+ import "../embeddings-DvRKcQyt.mjs";
9
+ import "../search-B69cQwDB.mjs";
10
+ import "../context-handover-cache-B9NKSjwR.mjs";
11
+ import { i as ensureConfigDir, o as loadConfig } from "../config-DCu8THKi.mjs";
12
+ import "../config-DxMZjpvY.mjs";
13
+ import "../run-DDdT9teG.mjs";
14
+ import "../indexer-C5Le7XE7.mjs";
15
+ import { t as PaiClient } from "../ipc-client-C6NryMMb.mjs";
16
+ import "../factory-DNYAqjH0.mjs";
17
+ import "../wakeup-TnGjJY3I.mjs";
18
+ import "../server-Ch99xt5K.mjs";
19
+ import "../state-PJrgfDLW.mjs";
20
+ import { t as serve } from "../daemon-BppziPi6.mjs";
21
+ import "../router-DBAZfE7X.mjs";
22
+ import "../tools-UrSHIe29.mjs";
23
+ import "../detector-DWXkeTlk.mjs";
24
+ import "../work-queue-worker-BA5IDBwQ.mjs";
24
25
  import { Command } from "commander";
25
26
 
26
27
  //#region src/daemon/index.ts
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../src/daemon/index.ts"],"sourcesContent":["#!/usr/bin/env node\n/**\n * PAI Daemon — Entry point\n *\n * Commands:\n * serve — Start the PAI daemon (foreground, managed by launchd in production)\n * status — Query daemon status via IPC\n * index — Trigger an immediate index run via IPC\n */\n\nimport { Command } from \"commander\";\nimport { loadConfig, ensureConfigDir } from \"./config.js\";\nimport { serve } from \"./daemon.js\";\nimport { PaiClient } from \"./ipc-client.js\";\n\nconst program = new Command();\n\nprogram\n .name(\"pai-daemon\")\n .description(\"PAI Daemon — background service for PAI Knowledge OS\")\n .version(\"0.1.0\");\n\n// ---------------------------------------------------------------------------\n// serve\n// ---------------------------------------------------------------------------\n\nprogram\n .command(\"serve\")\n .description(\"Start the PAI daemon in the foreground\")\n .action(async () => {\n ensureConfigDir();\n const config = loadConfig();\n await serve(config);\n });\n\n// ---------------------------------------------------------------------------\n// status\n// ---------------------------------------------------------------------------\n\nprogram\n .command(\"status\")\n .description(\"Query the running daemon status\")\n .action(async () => {\n const config = loadConfig();\n const client = new PaiClient(config.socketPath);\n\n try {\n const status = await client.status();\n console.log(JSON.stringify(status, null, 2));\n } catch (e) {\n const msg = e instanceof Error ? e.message : String(e);\n console.error(`Error: ${msg}`);\n process.exit(1);\n }\n });\n\n// ---------------------------------------------------------------------------\n// index\n// ---------------------------------------------------------------------------\n\nprogram\n .command(\"index\")\n .description(\"Trigger an immediate index run in the running daemon\")\n .action(async () => {\n const config = loadConfig();\n const client = new PaiClient(config.socketPath);\n\n try {\n await client.triggerIndex();\n console.log(\"Index triggered. Check daemon logs for progress.\");\n } catch (e) {\n const msg = e instanceof Error ? e.message : String(e);\n console.error(`Error: ${msg}`);\n process.exit(1);\n }\n });\n\n// ---------------------------------------------------------------------------\n// Parse\n// ---------------------------------------------------------------------------\n\nprogram.parse(process.argv);\n\nif (process.argv.length <= 2) {\n program.help();\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,MAAM,UAAU,IAAI,SAAS;AAE7B,QACG,KAAK,aAAa,CAClB,YAAY,uDAAuD,CACnE,QAAQ,QAAQ;AAMnB,QACG,QAAQ,QAAQ,CAChB,YAAY,yCAAyC,CACrD,OAAO,YAAY;AAClB,kBAAiB;AAEjB,OAAM,MADS,YAAY,CACR;EACnB;AAMJ,QACG,QAAQ,SAAS,CACjB,YAAY,kCAAkC,CAC9C,OAAO,YAAY;CAElB,MAAM,SAAS,IAAI,UADJ,YAAY,CACS,WAAW;AAE/C,KAAI;EACF,MAAM,SAAS,MAAM,OAAO,QAAQ;AACpC,UAAQ,IAAI,KAAK,UAAU,QAAQ,MAAM,EAAE,CAAC;UACrC,GAAG;EACV,MAAM,MAAM,aAAa,QAAQ,EAAE,UAAU,OAAO,EAAE;AACtD,UAAQ,MAAM,UAAU,MAAM;AAC9B,UAAQ,KAAK,EAAE;;EAEjB;AAMJ,QACG,QAAQ,QAAQ,CAChB,YAAY,uDAAuD,CACnE,OAAO,YAAY;CAElB,MAAM,SAAS,IAAI,UADJ,YAAY,CACS,WAAW;AAE/C,KAAI;AACF,QAAM,OAAO,cAAc;AAC3B,UAAQ,IAAI,mDAAmD;UACxD,GAAG;EACV,MAAM,MAAM,aAAa,QAAQ,EAAE,UAAU,OAAO,EAAE;AACtD,UAAQ,MAAM,UAAU,MAAM;AAC9B,UAAQ,KAAK,EAAE;;EAEjB;AAMJ,QAAQ,MAAM,QAAQ,KAAK;AAE3B,IAAI,QAAQ,KAAK,UAAU,EACzB,SAAQ,MAAM"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/daemon/index.ts"],"sourcesContent":["#!/usr/bin/env node\n/**\n * PAI Daemon — Entry point\n *\n * Commands:\n * serve — Start the PAI daemon (foreground, managed by launchd in production)\n * status — Query daemon status via IPC\n * index — Trigger an immediate index run via IPC\n */\n\nimport { Command } from \"commander\";\nimport { loadConfig, ensureConfigDir } from \"./config.js\";\nimport { serve } from \"./daemon.js\";\nimport { PaiClient } from \"./ipc-client.js\";\n\nconst program = new Command();\n\nprogram\n .name(\"pai-daemon\")\n .description(\"PAI Daemon — background service for PAI Knowledge OS\")\n .version(\"0.1.0\");\n\n// ---------------------------------------------------------------------------\n// serve\n// ---------------------------------------------------------------------------\n\nprogram\n .command(\"serve\")\n .description(\"Start the PAI daemon in the foreground\")\n .action(async () => {\n ensureConfigDir();\n const config = loadConfig();\n await serve(config);\n });\n\n// ---------------------------------------------------------------------------\n// status\n// ---------------------------------------------------------------------------\n\nprogram\n .command(\"status\")\n .description(\"Query the running daemon status\")\n .action(async () => {\n const config = loadConfig();\n const client = new PaiClient(config.socketPath);\n\n try {\n const status = await client.status();\n console.log(JSON.stringify(status, null, 2));\n } catch (e) {\n const msg = e instanceof Error ? e.message : String(e);\n console.error(`Error: ${msg}`);\n process.exit(1);\n }\n });\n\n// ---------------------------------------------------------------------------\n// index\n// ---------------------------------------------------------------------------\n\nprogram\n .command(\"index\")\n .description(\"Trigger an immediate index run in the running daemon\")\n .action(async () => {\n const config = loadConfig();\n const client = new PaiClient(config.socketPath);\n\n try {\n await client.triggerIndex();\n console.log(\"Index triggered. Check daemon logs for progress.\");\n } catch (e) {\n const msg = e instanceof Error ? e.message : String(e);\n console.error(`Error: ${msg}`);\n process.exit(1);\n }\n });\n\n// ---------------------------------------------------------------------------\n// Parse\n// ---------------------------------------------------------------------------\n\nprogram.parse(process.argv);\n\nif (process.argv.length <= 2) {\n program.help();\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,MAAM,UAAU,IAAI,SAAS;AAE7B,QACG,KAAK,aAAa,CAClB,YAAY,uDAAuD,CACnE,QAAQ,QAAQ;AAMnB,QACG,QAAQ,QAAQ,CAChB,YAAY,yCAAyC,CACrD,OAAO,YAAY;AAClB,kBAAiB;AAEjB,OAAM,MADS,YAAY,CACR;EACnB;AAMJ,QACG,QAAQ,SAAS,CACjB,YAAY,kCAAkC,CAC9C,OAAO,YAAY;CAElB,MAAM,SAAS,IAAI,UADJ,YAAY,CACS,WAAW;AAE/C,KAAI;EACF,MAAM,SAAS,MAAM,OAAO,QAAQ;AACpC,UAAQ,IAAI,KAAK,UAAU,QAAQ,MAAM,EAAE,CAAC;UACrC,GAAG;EACV,MAAM,MAAM,aAAa,QAAQ,EAAE,UAAU,OAAO,EAAE;AACtD,UAAQ,MAAM,UAAU,MAAM;AAC9B,UAAQ,KAAK,EAAE;;EAEjB;AAMJ,QACG,QAAQ,QAAQ,CAChB,YAAY,uDAAuD,CACnE,OAAO,YAAY;CAElB,MAAM,SAAS,IAAI,UADJ,YAAY,CACS,WAAW;AAE/C,KAAI;AACF,QAAM,OAAO,cAAc;AAC3B,UAAQ,IAAI,mDAAmD;UACxD,GAAG;EACV,MAAM,MAAM,aAAa,QAAQ,EAAE,UAAU,OAAO,EAAE;AACtD,UAAQ,MAAM,UAAU,MAAM;AAC9B,UAAQ,KAAK,EAAE;;EAEjB;AAMJ,QAAQ,MAAM,QAAQ,KAAK;AAE3B,IAAI,QAAQ,KAAK,UAAU,EACzB,SAAQ,MAAM"}
@@ -0,0 +1,24 @@
1
+ import "./db-Ddns80yf.mjs";
2
+ import "./utils-CJymHkYm.mjs";
3
+ import "./migrate-CfERwXhY.mjs";
4
+ import "./db-DJ8rk0VM.mjs";
5
+ import "./helpers-crDEr6S2.mjs";
6
+ import "./sync-Btcb6xA4.mjs";
7
+ import "./embeddings-DvRKcQyt.mjs";
8
+ import "./search-B69cQwDB.mjs";
9
+ import "./context-handover-cache-B9NKSjwR.mjs";
10
+ import "./config-DCu8THKi.mjs";
11
+ import "./config-DxMZjpvY.mjs";
12
+ import "./run-DDdT9teG.mjs";
13
+ import "./indexer-C5Le7XE7.mjs";
14
+ import "./factory-DNYAqjH0.mjs";
15
+ import "./wakeup-TnGjJY3I.mjs";
16
+ import "./server-Ch99xt5K.mjs";
17
+ import "./state-PJrgfDLW.mjs";
18
+ import { t as serve } from "./daemon-BppziPi6.mjs";
19
+ import "./router-DBAZfE7X.mjs";
20
+ import "./tools-UrSHIe29.mjs";
21
+ import "./detector-DWXkeTlk.mjs";
22
+ import "./work-queue-worker-BA5IDBwQ.mjs";
23
+
24
+ export { serve };
@@ -1,18 +1,19 @@
1
- import { t as openRegistry } from "./db-Ca5qfsMC.mjs";
2
- import { t as openFederation } from "./db-a1ixZQjr.mjs";
3
- import { d as sha256 } from "./helpers-IjZkXBhj.mjs";
4
- import { n as indexAll } from "./sync-BWbe8JTg.mjs";
5
- import { t as configureEmbeddingModel } from "./embeddings-DOLZnT1X.mjs";
6
- import { l as DEFAULT_NOTIFICATION_CONFIG, n as CONFIG_FILE, t as CONFIG_DIR } from "./config-B64vFg14.mjs";
7
- import { n as getBackendOutage, t as createStorageBackend } from "./factory-DEb9NmHJ.mjs";
8
- import { _ as readWorkersSection } from "./config-_lQI_W08.mjs";
9
- import { _ as workersLogDir, m as ledgerPath, p as eventsPath } from "./server-D4vAieF4.mjs";
10
- import { A as nowStamp, C as alive, D as loadStatus, E as isChatPane, M as appendLedger, O as loadStatuses, _ as itermForClaudeSession, n as runWorker } from "./run-D7K5UALn.mjs";
11
- import { A as vaultIndexInProgress, C as setShutdownRequested, D as shutdownRequested, E as setVaultIndexInProgress, O as startTime, S as setRegistryDb, T as setStorageBackend, _ as setIndexSchedulerTimer, a as indexInProgress, b as setLastVaultIndexTime, c as lastIndexTime, d as registryDb, f as setCacheKeepaliveTimer, g as setIndexInProgress, h as setEmbedSchedulerTimer, i as embedSchedulerTimer, k as storageBackend, l as lastVaultIndexTime, m as setEmbedInProgress, n as daemonConfig, o as indexSchedulerTimer, p as setDaemonConfig, r as embedInProgress, s as lastEmbedTime, t as cacheKeepaliveTimer, u as notificationConfig, v as setLastEmbedTime, w as setStartTime, x as setNotificationConfig, y as setLastIndexTime } from "./state-BRdB-Bf1.mjs";
12
- import { t as routeNotification } from "./router-DD6D4j31.mjs";
13
- import { C as toolProjectInfo, D as toolMemoryGet, O as toolMemorySearch, S as toolProjectHealth, T as toolProjectTodo, a as toolMemoryWakeup, b as toolSessionRoute, i as toolMemoryTaxonomy, n as toolMemoryFeedback, t as toolMemoryKgSearch, v as toolRegistrySearch, w as toolProjectList, x as toolProjectDetect, y as toolSessionList } from "./tools-LlzcV_eK.mjs";
14
- import { t as detectTopicShift } from "./detector-C73Nxm94.mjs";
15
- import { a as enqueue, i as stopWorker, n as notifyNewWork, o as getStats, r as startWorker, s as loadQueue } from "./work-queue-worker-DIT-VLSh.mjs";
1
+ import { n as openRegistry } from "./db-Ddns80yf.mjs";
2
+ import { r as openFederation } from "./db-DJ8rk0VM.mjs";
3
+ import { d as sha256 } from "./helpers-crDEr6S2.mjs";
4
+ import { n as indexAll } from "./sync-Btcb6xA4.mjs";
5
+ import { t as configureEmbeddingModel } from "./embeddings-DvRKcQyt.mjs";
6
+ import { a as enqueue, c as loadQueue, o as getStats } from "./context-handover-cache-B9NKSjwR.mjs";
7
+ import { d as DEFAULT_NOTIFICATION_CONFIG, n as CONFIG_FILE, t as CONFIG_DIR } from "./config-DCu8THKi.mjs";
8
+ import { v as readWorkersSection } from "./config-DxMZjpvY.mjs";
9
+ import { D as isChatPane, O as loadStatus, b as appendLedger, g as itermForClaudeSession, j as nowStamp, k as loadStatuses, n as runWorker, w as alive } from "./run-DDdT9teG.mjs";
10
+ import { n as getBackendOutage, t as createStorageBackend } from "./factory-DNYAqjH0.mjs";
11
+ import { _ as workersLogDir, m as ledgerPath, p as eventsPath } from "./server-Ch99xt5K.mjs";
12
+ import { A as vaultIndexInProgress, C as setShutdownRequested, D as shutdownRequested, E as setVaultIndexInProgress, O as startTime, S as setRegistryDb, T as setStorageBackend, _ as setIndexSchedulerTimer, a as indexInProgress, b as setLastVaultIndexTime, c as lastIndexTime, d as registryDb, f as setCacheKeepaliveTimer, g as setIndexInProgress, h as setEmbedSchedulerTimer, i as embedSchedulerTimer, k as storageBackend, l as lastVaultIndexTime, m as setEmbedInProgress, n as daemonConfig, o as indexSchedulerTimer, p as setDaemonConfig, r as embedInProgress, s as lastEmbedTime, t as cacheKeepaliveTimer, u as notificationConfig, v as setLastEmbedTime, w as setStartTime, x as setNotificationConfig, y as setLastIndexTime } from "./state-PJrgfDLW.mjs";
13
+ import { t as routeNotification } from "./router-DBAZfE7X.mjs";
14
+ import { C as toolProjectInfo, D as toolMemoryGet, O as toolMemorySearch, S as toolProjectHealth, T as toolProjectTodo, a as toolMemoryWakeup, b as toolSessionRoute, i as toolMemoryTaxonomy, n as toolMemoryFeedback, t as toolMemoryKgSearch, v as toolRegistrySearch, w as toolProjectList, x as toolProjectDetect, y as toolSessionList } from "./tools-UrSHIe29.mjs";
15
+ import { t as detectTopicShift } from "./detector-DWXkeTlk.mjs";
16
+ import { i as stopWorker, n as notifyNewWork, r as startWorker } from "./work-queue-worker-BA5IDBwQ.mjs";
16
17
  import { appendFileSync, existsSync, mkdirSync, readFileSync, renameSync, unlinkSync, writeFileSync } from "node:fs";
17
18
  import { setPriority } from "node:os";
18
19
  import { dirname, join } from "node:path";
@@ -22,7 +23,8 @@ import { connect, createServer } from "node:net";
22
23
  /**
23
24
  * config.ts — Notification config persistence helpers
24
25
  *
25
- * Reads and writes the `notifications` section of ~/.config/pai/config.json.
26
+ * Reads and writes the `notifications` section of CONFIG_FILE (see
27
+ * src/daemon/config.ts's paiConfigFilePath).
26
28
  * Deep-merges with defaults so partial configs work fine.
27
29
  *
28
30
  * This module is intentionally separate from the daemon's config loader
@@ -63,7 +65,7 @@ function loadNotificationConfig() {
63
65
  }
64
66
  /**
65
67
  * Persist the notification config by merging it into the existing
66
- * ~/.config/pai/config.json. Creates the file if it does not exist.
68
+ * CONFIG_FILE. Creates the file if it does not exist.
67
69
  */
68
70
  function saveNotificationConfig(config) {
69
71
  if (!existsSync(CONFIG_DIR)) mkdirSync(CONFIG_DIR, { recursive: true });
@@ -443,13 +445,24 @@ const aibrokerPush = async (logDir, target, ev) => {
443
445
  const iterm = target.iterm ?? (target.claudeSession ? itermForClaudeSession(logDir, target.claudeSession) : null);
444
446
  if (!iterm) return false;
445
447
  try {
446
- const { sendToSession } = await import("./aibroker-client-C6m71p6O.mjs");
448
+ const { sendToSession } = await import("./aibroker-client-D5NT0S1N.mjs");
447
449
  const r = await sendToSession(iterm, ev.text);
448
450
  return r.ok || r.timedOut === true;
449
451
  } catch {
450
452
  return false;
451
453
  }
452
454
  };
455
+ /**
456
+ * Whether a finished/failed/stalled event should be relayed into the owner's
457
+ * terminal. A caller launched with --output-format json|stream-json reads
458
+ * the run's result itself, and the harness already notifies it on process
459
+ * exit — pushing the one-liner too would cost that caller a full extra turn
460
+ * for information it already has. Interactive/pane launches and the default
461
+ * text format are unaffected: only json and stream-json ever skip the relay.
462
+ */
463
+ function shouldRelay(outputFormat) {
464
+ return outputFormat !== "json" && outputFormat !== "stream-json";
465
+ }
453
466
  function appendEventFile(logDir, ev) {
454
467
  const path = supervisionEventsPath(logDir, ev.session);
455
468
  const dir = supervisionDirPath(logDir);
@@ -490,6 +503,7 @@ async function runSupervisionTick(logDir, opts = {}) {
490
503
  const pushed = [];
491
504
  for (const ev of written) {
492
505
  const owner = statuses.find((s) => s.id === ev.worker);
506
+ if (!shouldRelay(owner?.outputFormat)) continue;
493
507
  const target = {
494
508
  claudeSession: owner?.spawnerSession ?? null,
495
509
  iterm: owner?.session?.id ?? null
@@ -831,7 +845,7 @@ async function runIndex() {
831
845
  try {
832
846
  process.stderr.write("[pai-daemon] Starting scheduled index run...\n");
833
847
  if (storageBackend.backendType === "sqlite") {
834
- const { SQLiteBackend } = await import("./sqlite-Cq3gJcq9.mjs");
848
+ const { SQLiteBackend } = await import("./sqlite-By6r2YhZ.mjs");
835
849
  if (storageBackend instanceof SQLiteBackend) {
836
850
  const { projects, result } = await indexAll(storageBackend.getRawDb(), registryDb);
837
851
  const elapsed = Date.now() - t0;
@@ -839,7 +853,7 @@ async function runIndex() {
839
853
  process.stderr.write(`[pai-daemon] Index complete: ${projects} projects, ${result.filesProcessed} files, ${result.chunksCreated} chunks (${elapsed}ms)\n`);
840
854
  }
841
855
  } else {
842
- const { indexAllWithBackend } = await import("./indexer-backend-BPTzKFZU.mjs");
856
+ const { indexAllWithBackend } = await import("./indexer-backend-CdvCJCkD.mjs");
843
857
  const { projects, result } = await indexAllWithBackend(storageBackend, registryDb);
844
858
  const elapsed = Date.now() - t0;
845
859
  setLastIndexTime(Date.now());
@@ -866,7 +880,7 @@ async function runVaultIndex() {
866
880
  process.stderr.write("[pai-daemon] Index/embed in progress, deferring vault index.\n");
867
881
  return;
868
882
  }
869
- const { lastVaultIndexTime } = await import("./state-CY6I-Hnc.mjs");
883
+ const { lastVaultIndexTime } = await import("./state-DnYGRmS7.mjs");
870
884
  if (lastVaultIndexTime > 0 && Date.now() - lastVaultIndexTime < VAULT_INDEX_MIN_INTERVAL_MS) return;
871
885
  let vaultProjectId = daemonConfig.vaultProjectId;
872
886
  if (!vaultProjectId) {
@@ -878,7 +892,7 @@ async function runVaultIndex() {
878
892
  const t0 = Date.now();
879
893
  process.stderr.write("[pai-daemon] Starting vault index run...\n");
880
894
  try {
881
- const { indexVault } = await import("./vault-indexer-mata9S7b.mjs");
895
+ const { indexVault } = await import("./vault-indexer-C5i-OAyr.mjs");
882
896
  const r = await indexVault(storageBackend, vaultProjectId, daemonConfig.vaultPath);
883
897
  const elapsed = Date.now() - t0;
884
898
  setLastVaultIndexTime(Date.now());
@@ -949,12 +963,12 @@ async function runEmbed() {
949
963
  const rows = registryDb.prepare("SELECT id, slug FROM projects WHERE status = 'active'").all();
950
964
  for (const r of rows) projectNames.set(r.id, r.slug);
951
965
  } catch {}
952
- const { embedChunksWithBackend } = await import("./indexer-backend-BPTzKFZU.mjs");
966
+ const { embedChunksWithBackend } = await import("./indexer-backend-CdvCJCkD.mjs");
953
967
  const count = await embedChunksWithBackend(storageBackend, () => shutdownRequested, projectNames, { maxMillis: 24e4 });
954
968
  let vaultEmbedCount = 0;
955
969
  if (daemonConfig.vaultPath) try {
956
- const { SQLiteBackend } = await import("./sqlite-Cq3gJcq9.mjs");
957
- const { openFederation } = await import("./db-O-cyAPfS.mjs");
970
+ const { SQLiteBackend } = await import("./sqlite-By6r2YhZ.mjs");
971
+ const { openFederation } = await import("./db-BOBfewFH.mjs");
958
972
  const federationDb = openFederation();
959
973
  const vaultSqliteBackend = new SQLiteBackend(federationDb);
960
974
  const vaultProjectNames = new Map(projectNames);
@@ -1013,12 +1027,12 @@ const REGISTRY_SCAN_STARTUP_DELAY_MS = 1e4;
1013
1027
  function startRegistryScanScheduler() {
1014
1028
  process.stderr.write("[pai-daemon] Registry scan scheduler: every 30min (first in 10s)\n");
1015
1029
  setTimeout(() => {
1016
- import("./work-queue-worker-AEmfVE0F.mjs").then(({ enqueueRegistryScan }) => enqueueRegistryScan()).catch((e) => {
1030
+ import("./work-queue-worker-DLM2wlqM.mjs").then(({ enqueueRegistryScan }) => enqueueRegistryScan()).catch((e) => {
1017
1031
  process.stderr.write(`[pai-daemon] Startup registry scan error: ${e}\n`);
1018
1032
  });
1019
1033
  }, REGISTRY_SCAN_STARTUP_DELAY_MS);
1020
1034
  const timer = setInterval(() => {
1021
- import("./work-queue-worker-AEmfVE0F.mjs").then(({ enqueueRegistryScan }) => enqueueRegistryScan()).catch((e) => {
1035
+ import("./work-queue-worker-DLM2wlqM.mjs").then(({ enqueueRegistryScan }) => enqueueRegistryScan()).catch((e) => {
1022
1036
  process.stderr.write(`[pai-daemon] Scheduled registry scan error: ${e}\n`);
1023
1037
  });
1024
1038
  }, REGISTRY_SCAN_INTERVAL_MS);
@@ -1166,7 +1180,7 @@ async function dispatchTool(method, params) {
1166
1180
  case "zettel_themes":
1167
1181
  case "zettel_god_notes":
1168
1182
  case "zettel_communities": {
1169
- const { toolZettelExplore, toolZettelHealth, toolZettelSurprise, toolZettelSuggest, toolZettelConverse, toolZettelThemes, toolZettelGodNotes, toolZettelCommunities } = await import("./tools-BW3NLMPk.mjs");
1183
+ const { toolZettelExplore, toolZettelHealth, toolZettelSurprise, toolZettelSuggest, toolZettelConverse, toolZettelThemes, toolZettelGodNotes, toolZettelCommunities } = await import("./tools-BradfQk7.mjs");
1170
1184
  switch (method) {
1171
1185
  case "zettel_explore": return toolZettelExplore(storageBackend, p);
1172
1186
  case "zettel_health": return toolZettelHealth(storageBackend, p);
@@ -1180,27 +1194,27 @@ async function dispatchTool(method, params) {
1180
1194
  break;
1181
1195
  }
1182
1196
  case "graph_clusters": {
1183
- const { handleGraphClusters } = await import("./clusters-j0ZuNYp9.mjs");
1197
+ const { handleGraphClusters } = await import("./clusters-Cw_P6lO-.mjs");
1184
1198
  return handleGraphClusters(storageBackend.getPool?.() ?? null, storageBackend, p);
1185
1199
  }
1186
1200
  case "graph_neighborhood": {
1187
- const { handleGraphNeighborhood } = await import("./neighborhood-CM7Jgb51.mjs");
1201
+ const { handleGraphNeighborhood } = await import("./neighborhood-CETR_P4y.mjs");
1188
1202
  return handleGraphNeighborhood(storageBackend.getPool?.() ?? null, storageBackend, p);
1189
1203
  }
1190
1204
  case "graph_note_context": {
1191
- const { handleGraphNoteContext } = await import("./note-context-DCwE2A-M.mjs");
1205
+ const { handleGraphNoteContext } = await import("./note-context-DCcRWBoN.mjs");
1192
1206
  return handleGraphNoteContext(storageBackend.getPool?.() ?? null, storageBackend, p);
1193
1207
  }
1194
1208
  case "graph_trace": {
1195
- const { handleGraphTrace } = await import("./trace-u4hT-pLD.mjs");
1209
+ const { handleGraphTrace } = await import("./trace-Cy8quQTm.mjs");
1196
1210
  return handleGraphTrace(storageBackend, p);
1197
1211
  }
1198
1212
  case "graph_latent_ideas": {
1199
- const { handleGraphLatentIdeas } = await import("./latent-ideas-CtSca4qG.mjs");
1213
+ const { handleGraphLatentIdeas } = await import("./latent-ideas-BfL4nCQ3.mjs");
1200
1214
  return handleGraphLatentIdeas(storageBackend, p);
1201
1215
  }
1202
1216
  case "idea_materialize": {
1203
- const { handleIdeaMaterialize } = await import("./latent-ideas-CtSca4qG.mjs");
1217
+ const { handleIdeaMaterialize } = await import("./latent-ideas-BfL4nCQ3.mjs");
1204
1218
  if (!daemonConfig.vaultPath) throw new Error("idea_materialize requires vaultPath to be configured in the daemon config");
1205
1219
  return handleIdeaMaterialize(p, daemonConfig.vaultPath);
1206
1220
  }
@@ -1208,7 +1222,7 @@ async function dispatchTool(method, params) {
1208
1222
  case "kg_query":
1209
1223
  case "kg_invalidate":
1210
1224
  case "kg_contradictions": {
1211
- const { toolKgAdd, toolKgQuery, toolKgInvalidate, toolKgContradictions } = await import("./tools-BW3NLMPk.mjs");
1225
+ const { toolKgAdd, toolKgQuery, toolKgInvalidate, toolKgContradictions } = await import("./tools-BradfQk7.mjs");
1212
1226
  const pgPool = storageBackend.getPool?.() ?? null;
1213
1227
  if (!pgPool) throw new Error(`${method} requires a Postgres storage backend`);
1214
1228
  switch (method) {
@@ -1220,7 +1234,7 @@ async function dispatchTool(method, params) {
1220
1234
  break;
1221
1235
  }
1222
1236
  case "memory_tunnels": {
1223
- const { toolMemoryTunnels } = await import("./tools-BW3NLMPk.mjs");
1237
+ const { toolMemoryTunnels } = await import("./tools-BradfQk7.mjs");
1224
1238
  return toolMemoryTunnels(registryDb, storageBackend, p);
1225
1239
  }
1226
1240
  case "memory_feedback": {
@@ -1860,7 +1874,7 @@ async function serve(config) {
1860
1874
  process.stderr.write("[pai-daemon] Starting daemon...\n");
1861
1875
  process.stderr.write(`[pai-daemon] Socket: ${config.socketPath}\n`);
1862
1876
  process.stderr.write(`[pai-daemon] Storage backend: ${config.storageBackend}\n`);
1863
- const { notificationConfig } = await import("./state-CY6I-Hnc.mjs");
1877
+ const { notificationConfig } = await import("./state-DnYGRmS7.mjs");
1864
1878
  process.stderr.write(`[pai-daemon] Notification mode: ${notificationConfig.mode}\n`);
1865
1879
  try {
1866
1880
  setPriority(process.pid, 10);
@@ -1927,4 +1941,4 @@ async function serve(config) {
1927
1941
 
1928
1942
  //#endregion
1929
1943
  export { serve as t };
1930
- //# sourceMappingURL=daemon-B8N1egl0.mjs.map
1944
+ //# sourceMappingURL=daemon-BppziPi6.mjs.map