@chendpoc/pi-memory 0.1.12 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (708) hide show
  1. package/README.md +67 -187
  2. package/UBIQUITOUS_LANGUAGE.md +81 -0
  3. package/dist/adapters/embed/factory.d.ts +7 -0
  4. package/dist/adapters/embed/factory.d.ts.map +1 -0
  5. package/dist/adapters/embed/factory.js +44 -0
  6. package/dist/adapters/embed/factory.js.map +1 -0
  7. package/dist/adapters/embed/hash.d.ts +3 -0
  8. package/dist/adapters/embed/hash.d.ts.map +1 -0
  9. package/dist/adapters/embed/hash.js +26 -0
  10. package/dist/adapters/embed/hash.js.map +1 -0
  11. package/dist/adapters/embed/normalize.d.ts +3 -0
  12. package/dist/adapters/embed/normalize.d.ts.map +1 -0
  13. package/dist/adapters/embed/normalize.js +15 -0
  14. package/dist/adapters/embed/normalize.js.map +1 -0
  15. package/dist/adapters/embed/ollama.d.ts +8 -0
  16. package/dist/adapters/embed/ollama.d.ts.map +1 -0
  17. package/dist/adapters/embed/ollama.js +31 -0
  18. package/dist/adapters/embed/ollama.js.map +1 -0
  19. package/dist/adapters/embed/openai.d.ts +8 -0
  20. package/dist/adapters/embed/openai.d.ts.map +1 -0
  21. package/dist/adapters/embed/openai.js +30 -0
  22. package/dist/adapters/embed/openai.js.map +1 -0
  23. package/dist/adapters/embed/types.d.ts +9 -0
  24. package/dist/adapters/embed/types.d.ts.map +1 -0
  25. package/dist/adapters/embed/types.js +2 -0
  26. package/dist/adapters/embed/types.js.map +1 -0
  27. package/dist/adapters/http.d.ts +13 -0
  28. package/dist/adapters/http.d.ts.map +1 -0
  29. package/dist/adapters/http.js +31 -0
  30. package/dist/adapters/http.js.map +1 -0
  31. package/dist/adapters/index.d.ts +4 -0
  32. package/dist/adapters/index.d.ts.map +1 -0
  33. package/dist/adapters/index.js +4 -0
  34. package/dist/adapters/index.js.map +1 -0
  35. package/dist/adapters/llm/extractText.d.ts +5 -0
  36. package/dist/adapters/llm/extractText.d.ts.map +1 -0
  37. package/dist/adapters/llm/extractText.js +7 -0
  38. package/dist/adapters/llm/extractText.js.map +1 -0
  39. package/dist/adapters/llm/factory.d.ts +11 -0
  40. package/dist/adapters/llm/factory.d.ts.map +1 -0
  41. package/dist/adapters/llm/factory.js +48 -0
  42. package/dist/adapters/llm/factory.js.map +1 -0
  43. package/dist/adapters/llm/index.d.ts +8 -0
  44. package/dist/adapters/llm/index.d.ts.map +1 -0
  45. package/dist/adapters/llm/index.js +7 -0
  46. package/dist/adapters/llm/index.js.map +1 -0
  47. package/dist/adapters/llm/modelSpec.d.ts +10 -0
  48. package/dist/adapters/llm/modelSpec.d.ts.map +1 -0
  49. package/dist/adapters/llm/modelSpec.js +21 -0
  50. package/dist/adapters/llm/modelSpec.js.map +1 -0
  51. package/dist/adapters/llm/ollama.d.ts +4 -0
  52. package/dist/adapters/llm/ollama.d.ts.map +1 -0
  53. package/dist/adapters/llm/ollama.js +32 -0
  54. package/dist/adapters/llm/ollama.js.map +1 -0
  55. package/dist/adapters/llm/openai-compat.d.ts +4 -0
  56. package/dist/adapters/llm/openai-compat.d.ts.map +1 -0
  57. package/dist/adapters/llm/openai-compat.js +36 -0
  58. package/dist/adapters/llm/openai-compat.js.map +1 -0
  59. package/dist/adapters/llm/pi-ai.d.ts +5 -0
  60. package/dist/adapters/llm/pi-ai.d.ts.map +1 -0
  61. package/dist/adapters/llm/pi-ai.js +60 -0
  62. package/dist/adapters/llm/pi-ai.js.map +1 -0
  63. package/dist/adapters/llm/standalone.d.ts +6 -0
  64. package/dist/adapters/llm/standalone.d.ts.map +1 -0
  65. package/dist/adapters/llm/standalone.js +44 -0
  66. package/dist/adapters/llm/standalone.js.map +1 -0
  67. package/dist/adapters/llm/types.d.ts +15 -0
  68. package/dist/adapters/llm/types.d.ts.map +1 -0
  69. package/dist/adapters/llm/types.js +2 -0
  70. package/dist/adapters/llm/types.js.map +1 -0
  71. package/dist/cli/init.d.ts +3 -0
  72. package/dist/cli/init.d.ts.map +1 -0
  73. package/dist/cli/init.js +13 -0
  74. package/dist/cli/init.js.map +1 -0
  75. package/dist/cli/jobs.d.ts +32 -0
  76. package/dist/cli/jobs.d.ts.map +1 -0
  77. package/dist/cli/jobs.js +100 -0
  78. package/dist/cli/jobs.js.map +1 -0
  79. package/dist/cli/log.d.ts +14 -0
  80. package/dist/cli/log.d.ts.map +1 -0
  81. package/dist/cli/log.js +32 -0
  82. package/dist/cli/log.js.map +1 -0
  83. package/dist/cli/parseArgs.d.ts +35 -0
  84. package/dist/cli/parseArgs.d.ts.map +1 -0
  85. package/dist/cli/parseArgs.js +127 -0
  86. package/dist/cli/parseArgs.js.map +1 -0
  87. package/dist/cli/status.d.ts +44 -0
  88. package/dist/cli/status.d.ts.map +1 -0
  89. package/dist/cli/status.js +238 -0
  90. package/dist/cli/status.js.map +1 -0
  91. package/dist/cli/theme.d.ts +14 -0
  92. package/dist/cli/theme.d.ts.map +1 -0
  93. package/dist/cli/theme.js +20 -0
  94. package/dist/cli/theme.js.map +1 -0
  95. package/dist/cli.js +68 -231
  96. package/dist/cli.js.map +1 -1
  97. package/dist/commands/index.d.ts +6 -0
  98. package/dist/commands/index.d.ts.map +1 -0
  99. package/dist/commands/index.js +14 -0
  100. package/dist/commands/index.js.map +1 -0
  101. package/dist/commands/parseMemoryStatusArgs.d.ts +3 -0
  102. package/dist/commands/parseMemoryStatusArgs.d.ts.map +1 -0
  103. package/dist/commands/parseMemoryStatusArgs.js +15 -0
  104. package/dist/commands/parseMemoryStatusArgs.js.map +1 -0
  105. package/dist/commands/parseRememberArgs.d.ts +10 -0
  106. package/dist/commands/parseRememberArgs.d.ts.map +1 -0
  107. package/dist/commands/parseRememberArgs.js +46 -0
  108. package/dist/commands/parseRememberArgs.js.map +1 -0
  109. package/dist/commands/remember.d.ts +8 -0
  110. package/dist/commands/remember.d.ts.map +1 -0
  111. package/dist/commands/remember.js +30 -0
  112. package/dist/commands/remember.js.map +1 -0
  113. package/dist/commands/status.d.ts +10 -0
  114. package/dist/commands/status.d.ts.map +1 -0
  115. package/dist/commands/status.js +81 -0
  116. package/dist/commands/status.js.map +1 -0
  117. package/dist/commands/types.d.ts +10 -0
  118. package/dist/commands/types.d.ts.map +1 -0
  119. package/dist/commands/types.js +2 -0
  120. package/dist/commands/types.js.map +1 -0
  121. package/dist/compact/index.d.ts +5 -0
  122. package/dist/compact/index.d.ts.map +1 -0
  123. package/dist/compact/index.js +5 -0
  124. package/dist/compact/index.js.map +1 -0
  125. package/dist/compact/parseMemoryExport.d.ts +6 -0
  126. package/dist/compact/parseMemoryExport.d.ts.map +1 -0
  127. package/dist/compact/parseMemoryExport.js +62 -0
  128. package/dist/compact/parseMemoryExport.js.map +1 -0
  129. package/dist/compact/register.d.ts +10 -0
  130. package/dist/compact/register.d.ts.map +1 -0
  131. package/dist/compact/register.js +47 -0
  132. package/dist/compact/register.js.map +1 -0
  133. package/dist/compact/runSummary.d.ts +6 -0
  134. package/dist/compact/runSummary.d.ts.map +1 -0
  135. package/dist/compact/runSummary.js +29 -0
  136. package/dist/compact/runSummary.js.map +1 -0
  137. package/dist/compact/subagentDelta.d.ts +6 -0
  138. package/dist/compact/subagentDelta.d.ts.map +1 -0
  139. package/dist/compact/subagentDelta.js +13 -0
  140. package/dist/compact/subagentDelta.js.map +1 -0
  141. package/dist/compact/summaryPrompt.d.ts +3 -0
  142. package/dist/compact/summaryPrompt.d.ts.map +1 -0
  143. package/dist/compact/summaryPrompt.js +41 -0
  144. package/dist/compact/summaryPrompt.js.map +1 -0
  145. package/dist/config/agentDir.d.ts +11 -0
  146. package/dist/config/agentDir.d.ts.map +1 -0
  147. package/dist/config/agentDir.js +21 -0
  148. package/dist/config/agentDir.js.map +1 -0
  149. package/dist/config/chunking.d.ts +7 -0
  150. package/dist/config/chunking.d.ts.map +1 -0
  151. package/dist/config/chunking.js +20 -0
  152. package/dist/config/chunking.js.map +1 -0
  153. package/dist/config/env.d.ts +28 -0
  154. package/dist/config/env.d.ts.map +1 -0
  155. package/dist/config/env.js +43 -0
  156. package/dist/config/env.js.map +1 -0
  157. package/dist/config/index.d.ts +7 -0
  158. package/dist/config/index.d.ts.map +1 -0
  159. package/dist/config/index.js +7 -0
  160. package/dist/config/index.js.map +1 -0
  161. package/dist/config/loadEnv.d.ts +10 -0
  162. package/dist/config/loadEnv.d.ts.map +1 -0
  163. package/dist/config/loadEnv.js +25 -0
  164. package/dist/config/loadEnv.js.map +1 -0
  165. package/dist/config/preflightBudget.d.ts +9 -0
  166. package/dist/config/preflightBudget.d.ts.map +1 -0
  167. package/dist/config/preflightBudget.js +16 -0
  168. package/dist/config/preflightBudget.js.map +1 -0
  169. package/dist/config/retrieval.d.ts +10 -0
  170. package/dist/config/retrieval.d.ts.map +1 -0
  171. package/dist/config/retrieval.js +31 -0
  172. package/dist/config/retrieval.js.map +1 -0
  173. package/dist/consolidate/entryKey.d.ts +6 -0
  174. package/dist/consolidate/entryKey.d.ts.map +1 -0
  175. package/dist/consolidate/entryKey.js +5 -0
  176. package/dist/consolidate/entryKey.js.map +1 -0
  177. package/dist/consolidate/index.d.ts +5 -0
  178. package/dist/consolidate/index.d.ts.map +1 -0
  179. package/dist/consolidate/index.js +5 -0
  180. package/dist/consolidate/index.js.map +1 -0
  181. package/dist/consolidate/mergeEntries.d.ts +4 -0
  182. package/dist/consolidate/mergeEntries.d.ts.map +1 -0
  183. package/dist/consolidate/mergeEntries.js +17 -0
  184. package/dist/consolidate/mergeEntries.js.map +1 -0
  185. package/dist/consolidate/mergePrompt.d.ts +4 -0
  186. package/dist/consolidate/mergePrompt.d.ts.map +1 -0
  187. package/dist/consolidate/mergePrompt.js +40 -0
  188. package/dist/consolidate/mergePrompt.js.map +1 -0
  189. package/dist/consolidate/mergeWithLlm.d.ts +4 -0
  190. package/dist/consolidate/mergeWithLlm.d.ts.map +1 -0
  191. package/dist/consolidate/mergeWithLlm.js +27 -0
  192. package/dist/consolidate/mergeWithLlm.js.map +1 -0
  193. package/dist/consolidate/runJob.d.ts +29 -0
  194. package/dist/consolidate/runJob.d.ts.map +1 -0
  195. package/dist/consolidate/runJob.js +48 -0
  196. package/dist/consolidate/runJob.js.map +1 -0
  197. package/dist/consolidate/scheduler.d.ts +18 -0
  198. package/dist/consolidate/scheduler.d.ts.map +1 -0
  199. package/dist/consolidate/scheduler.js +32 -0
  200. package/dist/consolidate/scheduler.js.map +1 -0
  201. package/dist/constants/chunking.d.ts +7 -0
  202. package/dist/constants/chunking.d.ts.map +1 -0
  203. package/dist/constants/chunking.js +7 -0
  204. package/dist/constants/chunking.js.map +1 -0
  205. package/dist/constants/env.d.ts +44 -0
  206. package/dist/constants/env.d.ts.map +1 -0
  207. package/dist/constants/env.js +49 -0
  208. package/dist/constants/env.js.map +1 -0
  209. package/dist/constants/index.d.ts +8 -0
  210. package/dist/constants/index.d.ts.map +1 -0
  211. package/dist/constants/index.js +8 -0
  212. package/dist/constants/index.js.map +1 -0
  213. package/dist/constants/memory.d.ts +17 -0
  214. package/dist/constants/memory.d.ts.map +1 -0
  215. package/dist/constants/memory.js +16 -0
  216. package/dist/constants/memory.js.map +1 -0
  217. package/dist/constants/paths.d.ts +23 -0
  218. package/dist/constants/paths.d.ts.map +1 -0
  219. package/dist/constants/paths.js +23 -0
  220. package/dist/constants/paths.js.map +1 -0
  221. package/dist/constants/preflight.d.ts +10 -0
  222. package/dist/constants/preflight.d.ts.map +1 -0
  223. package/dist/constants/preflight.js +10 -0
  224. package/dist/constants/preflight.js.map +1 -0
  225. package/dist/constants/retrieval.d.ts +10 -0
  226. package/dist/constants/retrieval.d.ts.map +1 -0
  227. package/dist/constants/retrieval.js +10 -0
  228. package/dist/constants/retrieval.js.map +1 -0
  229. package/dist/constants/security.d.ts +5 -0
  230. package/dist/constants/security.d.ts.map +1 -0
  231. package/dist/constants/security.js +5 -0
  232. package/dist/constants/security.js.map +1 -0
  233. package/dist/constants/timing.d.ts +36 -0
  234. package/dist/constants/timing.d.ts.map +1 -0
  235. package/dist/constants/timing.js +36 -0
  236. package/dist/constants/timing.js.map +1 -0
  237. package/dist/index.d.ts +11 -28
  238. package/dist/index.d.ts.map +1 -1
  239. package/dist/index.js +11 -27
  240. package/dist/index.js.map +1 -1
  241. package/dist/init/workspace.d.ts +15 -0
  242. package/dist/init/workspace.d.ts.map +1 -0
  243. package/dist/init/workspace.js +32 -0
  244. package/dist/init/workspace.js.map +1 -0
  245. package/dist/ipc/jsonlFramer.d.ts +9 -0
  246. package/dist/ipc/jsonlFramer.d.ts.map +1 -0
  247. package/dist/ipc/jsonlFramer.js +26 -0
  248. package/dist/ipc/jsonlFramer.js.map +1 -0
  249. package/dist/pi-extension.d.ts +0 -2
  250. package/dist/pi-extension.d.ts.map +1 -1
  251. package/dist/pi-extension.js +194 -219
  252. package/dist/pi-extension.js.map +1 -1
  253. package/dist/preflight/episodic.d.ts +20 -0
  254. package/dist/preflight/episodic.d.ts.map +1 -0
  255. package/dist/preflight/episodic.js +109 -0
  256. package/dist/preflight/episodic.js.map +1 -0
  257. package/dist/preflight/queryCache.d.ts +15 -0
  258. package/dist/preflight/queryCache.d.ts.map +1 -0
  259. package/dist/preflight/queryCache.js +46 -0
  260. package/dist/preflight/queryCache.js.map +1 -0
  261. package/dist/preflight/queryIntent.d.ts +20 -0
  262. package/dist/preflight/queryIntent.d.ts.map +1 -0
  263. package/dist/preflight/queryIntent.js +75 -0
  264. package/dist/preflight/queryIntent.js.map +1 -0
  265. package/dist/preflight/render.d.ts +8 -19
  266. package/dist/preflight/render.d.ts.map +1 -1
  267. package/dist/preflight/render.js +29 -106
  268. package/dist/preflight/render.js.map +1 -1
  269. package/dist/preflight/session.d.ts +3 -0
  270. package/dist/preflight/session.d.ts.map +1 -0
  271. package/dist/preflight/session.js +6 -0
  272. package/dist/preflight/session.js.map +1 -0
  273. package/dist/preflight/strip.d.ts +0 -8
  274. package/dist/preflight/strip.d.ts.map +1 -1
  275. package/dist/preflight/strip.js +2 -11
  276. package/dist/preflight/strip.js.map +1 -1
  277. package/dist/shutdown/enqueue.d.ts +12 -0
  278. package/dist/shutdown/enqueue.d.ts.map +1 -0
  279. package/dist/shutdown/enqueue.js +14 -0
  280. package/dist/shutdown/enqueue.js.map +1 -0
  281. package/dist/shutdown/extractPrompt.d.ts +4 -0
  282. package/dist/shutdown/extractPrompt.d.ts.map +1 -0
  283. package/dist/shutdown/extractPrompt.js +29 -0
  284. package/dist/shutdown/extractPrompt.js.map +1 -0
  285. package/dist/shutdown/processed.d.ts +9 -0
  286. package/dist/shutdown/processed.d.ts.map +1 -0
  287. package/dist/shutdown/processed.js +28 -0
  288. package/dist/shutdown/processed.js.map +1 -0
  289. package/dist/shutdown/readQueue.d.ts +4 -0
  290. package/dist/shutdown/readQueue.d.ts.map +1 -0
  291. package/dist/shutdown/readQueue.js +26 -0
  292. package/dist/shutdown/readQueue.js.map +1 -0
  293. package/dist/shutdown/runDrainJob.d.ts +26 -0
  294. package/dist/shutdown/runDrainJob.d.ts.map +1 -0
  295. package/dist/shutdown/runDrainJob.js +143 -0
  296. package/dist/shutdown/runDrainJob.js.map +1 -0
  297. package/dist/shutdown/sessionReader.d.ts +6 -0
  298. package/dist/shutdown/sessionReader.d.ts.map +1 -0
  299. package/dist/shutdown/sessionReader.js +44 -0
  300. package/dist/shutdown/sessionReader.js.map +1 -0
  301. package/dist/sidecar/client.d.ts +17 -16
  302. package/dist/sidecar/client.d.ts.map +1 -1
  303. package/dist/sidecar/client.js +64 -100
  304. package/dist/sidecar/client.js.map +1 -1
  305. package/dist/sidecar/paths.d.ts +8 -0
  306. package/dist/sidecar/paths.d.ts.map +1 -0
  307. package/dist/sidecar/paths.js +23 -0
  308. package/dist/sidecar/paths.js.map +1 -0
  309. package/dist/sidecar/protocol.d.ts +54 -0
  310. package/dist/sidecar/protocol.d.ts.map +1 -0
  311. package/dist/sidecar/protocol.js +4 -0
  312. package/dist/sidecar/protocol.js.map +1 -0
  313. package/dist/sidecar/reindexBridge.d.ts +13 -0
  314. package/dist/sidecar/reindexBridge.d.ts.map +1 -0
  315. package/dist/sidecar/reindexBridge.js +37 -0
  316. package/dist/sidecar/reindexBridge.js.map +1 -0
  317. package/dist/sidecar/server/process.d.ts +2 -0
  318. package/dist/sidecar/server/process.d.ts.map +1 -0
  319. package/dist/sidecar/server/process.js +22 -0
  320. package/dist/sidecar/server/process.js.map +1 -0
  321. package/dist/sidecar/server/query.d.ts +8 -0
  322. package/dist/sidecar/server/query.d.ts.map +1 -0
  323. package/dist/sidecar/server/query.js +7 -0
  324. package/dist/sidecar/server/query.js.map +1 -0
  325. package/dist/sidecar/server/reindex.d.ts +8 -0
  326. package/dist/sidecar/server/reindex.d.ts.map +1 -0
  327. package/dist/sidecar/server/reindex.js +12 -0
  328. package/dist/sidecar/server/reindex.js.map +1 -0
  329. package/dist/sidecar/server/server.d.ts +11 -0
  330. package/dist/sidecar/server/server.d.ts.map +1 -0
  331. package/dist/sidecar/server/server.js +76 -0
  332. package/dist/sidecar/server/server.js.map +1 -0
  333. package/dist/sidecar/server/stats.d.ts +8 -0
  334. package/dist/sidecar/server/stats.d.ts.map +1 -0
  335. package/dist/sidecar/server/stats.js +18 -0
  336. package/dist/sidecar/server/stats.js.map +1 -0
  337. package/dist/sidecar/server/vec/embedder.d.ts +2 -0
  338. package/dist/sidecar/server/vec/embedder.d.ts.map +1 -0
  339. package/dist/sidecar/server/vec/embedder.js +2 -0
  340. package/dist/sidecar/server/vec/embedder.js.map +1 -0
  341. package/dist/sidecar/server/vec/mmr.d.ts +13 -0
  342. package/dist/sidecar/server/vec/mmr.d.ts.map +1 -0
  343. package/dist/sidecar/server/vec/mmr.js +36 -0
  344. package/dist/sidecar/server/vec/mmr.js.map +1 -0
  345. package/dist/sidecar/server/vec/store.d.ts +30 -0
  346. package/dist/sidecar/server/vec/store.d.ts.map +1 -0
  347. package/dist/sidecar/server/vec/store.js +179 -0
  348. package/dist/sidecar/server/vec/store.js.map +1 -0
  349. package/dist/sidecar/sidecarManager.d.ts +10 -0
  350. package/dist/sidecar/sidecarManager.d.ts.map +1 -0
  351. package/dist/sidecar/sidecarManager.js +111 -0
  352. package/dist/sidecar/sidecarManager.js.map +1 -0
  353. package/dist/sidecar/utils.d.ts +3 -0
  354. package/dist/sidecar/utils.d.ts.map +1 -0
  355. package/dist/sidecar/utils.js +27 -0
  356. package/dist/sidecar/utils.js.map +1 -0
  357. package/dist/store/backend.d.ts +12 -0
  358. package/dist/store/backend.d.ts.map +1 -0
  359. package/dist/store/backend.js +47 -0
  360. package/dist/store/backend.js.map +1 -0
  361. package/dist/store/index.d.ts +6 -0
  362. package/dist/store/index.d.ts.map +1 -0
  363. package/dist/store/index.js +6 -0
  364. package/dist/store/index.js.map +1 -0
  365. package/dist/store/indexChunks.d.ts +9 -0
  366. package/dist/store/indexChunks.d.ts.map +1 -0
  367. package/dist/store/indexChunks.js +78 -0
  368. package/dist/store/indexChunks.js.map +1 -0
  369. package/dist/store/markdown/format.d.ts +5 -0
  370. package/dist/store/markdown/format.d.ts.map +1 -0
  371. package/dist/store/markdown/format.js +14 -0
  372. package/dist/store/markdown/format.js.map +1 -0
  373. package/dist/store/markdown/parse.d.ts +5 -0
  374. package/dist/store/markdown/parse.d.ts.map +1 -0
  375. package/dist/store/markdown/parse.js +57 -0
  376. package/dist/store/markdown/parse.js.map +1 -0
  377. package/dist/store/markdown/template.d.ts +3 -0
  378. package/dist/store/markdown/template.d.ts.map +1 -0
  379. package/dist/store/markdown/template.js +22 -0
  380. package/dist/store/markdown/template.js.map +1 -0
  381. package/dist/store/memoryStore.d.ts +69 -0
  382. package/dist/store/memoryStore.d.ts.map +1 -0
  383. package/dist/store/memoryStore.js +421 -0
  384. package/dist/store/memoryStore.js.map +1 -0
  385. package/dist/store/paths.d.ts +10 -0
  386. package/dist/store/paths.d.ts.map +1 -0
  387. package/dist/store/paths.js +19 -0
  388. package/dist/store/paths.js.map +1 -0
  389. package/dist/store/types.d.ts +38 -0
  390. package/dist/store/types.d.ts.map +1 -0
  391. package/dist/store/types.js +3 -0
  392. package/dist/store/types.js.map +1 -0
  393. package/dist/ui/memoryStatusWidget.d.ts +20 -0
  394. package/dist/ui/memoryStatusWidget.d.ts.map +1 -0
  395. package/dist/ui/memoryStatusWidget.js +51 -0
  396. package/dist/ui/memoryStatusWidget.js.map +1 -0
  397. package/dist/utils/debugLog.d.ts +4 -0
  398. package/dist/utils/debugLog.d.ts.map +1 -0
  399. package/dist/utils/debugLog.js +14 -0
  400. package/dist/utils/debugLog.js.map +1 -0
  401. package/dist/utils/fs.d.ts +26 -0
  402. package/dist/utils/fs.d.ts.map +1 -0
  403. package/dist/utils/fs.js +101 -0
  404. package/dist/utils/fs.js.map +1 -0
  405. package/dist/utils/index.d.ts +8 -0
  406. package/dist/utils/index.d.ts.map +1 -0
  407. package/dist/utils/index.js +8 -0
  408. package/dist/utils/index.js.map +1 -0
  409. package/dist/utils/paths.d.ts +22 -0
  410. package/dist/utils/paths.d.ts.map +1 -0
  411. package/dist/utils/paths.js +51 -0
  412. package/dist/utils/paths.js.map +1 -0
  413. package/dist/utils/platform.d.ts +7 -0
  414. package/dist/utils/platform.d.ts.map +1 -0
  415. package/dist/utils/platform.js +18 -0
  416. package/dist/utils/platform.js.map +1 -0
  417. package/dist/utils/scheduler.d.ts +33 -0
  418. package/dist/utils/scheduler.d.ts.map +1 -0
  419. package/dist/utils/scheduler.js +63 -0
  420. package/dist/utils/scheduler.js.map +1 -0
  421. package/dist/utils/socket.d.ts +7 -0
  422. package/dist/utils/socket.d.ts.map +1 -0
  423. package/dist/utils/socket.js +35 -0
  424. package/dist/utils/socket.js.map +1 -0
  425. package/dist/utils/time.d.ts +22 -0
  426. package/dist/utils/time.d.ts.map +1 -0
  427. package/dist/utils/time.js +42 -0
  428. package/dist/utils/time.js.map +1 -0
  429. package/package.json +40 -12
  430. package/scripts/init-memory-workspace.mjs +62 -0
  431. package/scripts/path-utils.mjs +12 -0
  432. package/scripts/platform-fs.mjs +65 -0
  433. package/scripts/postinstall.mjs +17 -0
  434. package/src/adapters/embed/factory.ts +50 -0
  435. package/src/adapters/embed/hash.ts +29 -0
  436. package/src/adapters/embed/normalize.ts +13 -0
  437. package/src/adapters/embed/ollama.ts +49 -0
  438. package/src/adapters/embed/openai.ts +46 -0
  439. package/src/adapters/embed/types.ts +9 -0
  440. package/src/adapters/http.ts +42 -0
  441. package/src/adapters/index.ts +16 -0
  442. package/src/adapters/llm/extractText.ts +6 -0
  443. package/src/adapters/llm/factory.ts +60 -0
  444. package/src/adapters/llm/index.ts +7 -0
  445. package/src/adapters/llm/modelSpec.ts +39 -0
  446. package/src/adapters/llm/ollama.ts +42 -0
  447. package/src/adapters/llm/openai-compat.ts +46 -0
  448. package/src/adapters/llm/pi-ai.ts +75 -0
  449. package/src/adapters/llm/standalone.ts +60 -0
  450. package/src/adapters/llm/types.ts +16 -0
  451. package/src/cli/init.ts +18 -0
  452. package/src/cli/jobs.ts +144 -0
  453. package/src/cli/log.ts +46 -0
  454. package/src/cli/parseArgs.ts +175 -0
  455. package/src/cli/status.ts +323 -0
  456. package/src/cli/theme.ts +26 -0
  457. package/src/cli.ts +82 -232
  458. package/src/commands/index.ts +20 -0
  459. package/src/commands/parseMemoryStatusArgs.ts +11 -0
  460. package/src/commands/parseRememberArgs.ts +55 -0
  461. package/src/commands/remember.ts +43 -0
  462. package/src/commands/status.ts +112 -0
  463. package/src/commands/types.ts +12 -0
  464. package/src/compact/index.ts +4 -0
  465. package/src/compact/parseMemoryExport.ts +71 -0
  466. package/src/compact/register.ts +57 -0
  467. package/src/compact/runSummary.ts +42 -0
  468. package/src/compact/subagentDelta.ts +22 -0
  469. package/src/compact/summaryPrompt.ts +45 -0
  470. package/src/config/agentDir.ts +24 -0
  471. package/src/config/chunking.ts +36 -0
  472. package/src/config/env.ts +97 -0
  473. package/src/config/index.ts +6 -0
  474. package/src/config/loadEnv.ts +26 -0
  475. package/src/config/preflightBudget.ts +33 -0
  476. package/src/config/retrieval.ts +50 -0
  477. package/src/consolidate/entryKey.ts +4 -0
  478. package/src/consolidate/index.ts +4 -0
  479. package/src/consolidate/mergeEntries.ts +22 -0
  480. package/src/consolidate/mergePrompt.ts +46 -0
  481. package/src/consolidate/mergeWithLlm.ts +39 -0
  482. package/src/consolidate/runJob.ts +81 -0
  483. package/src/consolidate/scheduler.ts +54 -0
  484. package/src/constants/chunking.ts +8 -0
  485. package/src/constants/env.ts +56 -0
  486. package/src/constants/index.ts +7 -0
  487. package/src/constants/memory.ts +22 -0
  488. package/src/constants/paths.ts +26 -0
  489. package/src/constants/preflight.ts +13 -0
  490. package/src/constants/retrieval.ts +10 -0
  491. package/src/constants/security.ts +5 -0
  492. package/src/constants/timing.ts +46 -0
  493. package/src/index.ts +11 -241
  494. package/src/init/workspace.ts +44 -0
  495. package/src/ipc/jsonlFramer.ts +29 -0
  496. package/src/pi-extension.ts +186 -316
  497. package/src/preflight/episodic.ts +159 -0
  498. package/src/preflight/queryCache.ts +59 -0
  499. package/src/preflight/queryIntent.ts +92 -0
  500. package/src/preflight/render.ts +34 -173
  501. package/src/preflight/session.ts +7 -0
  502. package/src/preflight/strip.ts +4 -11
  503. package/src/shutdown/enqueue.ts +29 -0
  504. package/src/shutdown/extractPrompt.ts +27 -0
  505. package/src/shutdown/processed.ts +45 -0
  506. package/src/shutdown/readQueue.ts +26 -0
  507. package/src/shutdown/runDrainJob.ts +202 -0
  508. package/src/shutdown/sessionReader.ts +61 -0
  509. package/src/sidecar/client.ts +98 -150
  510. package/src/sidecar/paths.ts +31 -0
  511. package/src/sidecar/protocol.ts +38 -0
  512. package/src/sidecar/reindexBridge.ts +52 -0
  513. package/src/sidecar/server/process.ts +27 -0
  514. package/src/sidecar/server/query.ts +16 -0
  515. package/src/sidecar/server/reindex.ts +21 -0
  516. package/src/sidecar/server/server.ts +105 -0
  517. package/src/sidecar/server/stats.ts +23 -0
  518. package/src/sidecar/server/vec/embedder.ts +1 -0
  519. package/src/sidecar/server/vec/mmr.ts +55 -0
  520. package/src/sidecar/server/vec/store.ts +232 -0
  521. package/src/sidecar/sidecarManager.ts +134 -0
  522. package/src/sidecar/utils.ts +28 -0
  523. package/src/store/backend.ts +66 -0
  524. package/src/store/index.ts +5 -0
  525. package/src/store/indexChunks.ts +89 -0
  526. package/src/store/markdown/format.ts +16 -0
  527. package/src/store/markdown/parse.ts +63 -0
  528. package/src/store/markdown/template.ts +24 -0
  529. package/src/store/memoryStore.ts +518 -0
  530. package/src/store/paths.ts +33 -0
  531. package/src/store/proper-lockfile.d.ts +3 -0
  532. package/src/store/types.ts +46 -0
  533. package/src/ui/memoryStatusWidget.ts +80 -0
  534. package/src/utils/debugLog.ts +22 -0
  535. package/src/utils/fs.ts +115 -0
  536. package/src/utils/index.ts +68 -0
  537. package/src/utils/paths.ts +67 -0
  538. package/src/utils/platform.ts +20 -0
  539. package/src/utils/scheduler.ts +98 -0
  540. package/src/utils/socket.ts +33 -0
  541. package/src/utils/time.ts +51 -0
  542. package/templates/MEMORY.md.example +22 -0
  543. package/dist/adapters/ollamaClient.d.ts +0 -11
  544. package/dist/adapters/ollamaClient.d.ts.map +0 -1
  545. package/dist/adapters/ollamaClient.js +0 -122
  546. package/dist/adapters/ollamaClient.js.map +0 -1
  547. package/dist/adapters/openaiCompatClient.d.ts +0 -11
  548. package/dist/adapters/openaiCompatClient.d.ts.map +0 -1
  549. package/dist/adapters/openaiCompatClient.js +0 -118
  550. package/dist/adapters/openaiCompatClient.js.map +0 -1
  551. package/dist/adapters/piComplete.d.ts +0 -17
  552. package/dist/adapters/piComplete.d.ts.map +0 -1
  553. package/dist/adapters/piComplete.js +0 -169
  554. package/dist/adapters/piComplete.js.map +0 -1
  555. package/dist/bundle/install.d.ts +0 -34
  556. package/dist/bundle/install.d.ts.map +0 -1
  557. package/dist/bundle/install.js +0 -183
  558. package/dist/bundle/install.js.map +0 -1
  559. package/dist/config.d.ts +0 -27
  560. package/dist/config.d.ts.map +0 -1
  561. package/dist/config.js +0 -49
  562. package/dist/config.js.map +0 -1
  563. package/dist/errclass.d.ts +0 -7
  564. package/dist/errclass.d.ts.map +0 -1
  565. package/dist/errclass.js +0 -32
  566. package/dist/errclass.js.map +0 -1
  567. package/dist/extension.d.ts +0 -24
  568. package/dist/extension.d.ts.map +0 -1
  569. package/dist/extension.js +0 -7
  570. package/dist/extension.js.map +0 -1
  571. package/dist/fallback/index.d.ts +0 -11
  572. package/dist/fallback/index.d.ts.map +0 -1
  573. package/dist/fallback/index.js +0 -16
  574. package/dist/fallback/index.js.map +0 -1
  575. package/dist/fallback/llmRerank.d.ts +0 -19
  576. package/dist/fallback/llmRerank.d.ts.map +0 -1
  577. package/dist/fallback/llmRerank.js +0 -60
  578. package/dist/fallback/llmRerank.js.map +0 -1
  579. package/dist/fallback/memoryMd.d.ts +0 -6
  580. package/dist/fallback/memoryMd.d.ts.map +0 -1
  581. package/dist/fallback/memoryMd.js +0 -35
  582. package/dist/fallback/memoryMd.js.map +0 -1
  583. package/dist/fallback/sessionIndex.d.ts +0 -35
  584. package/dist/fallback/sessionIndex.d.ts.map +0 -1
  585. package/dist/fallback/sessionIndex.js +0 -287
  586. package/dist/fallback/sessionIndex.js.map +0 -1
  587. package/dist/fallback/sessionSearch.d.ts +0 -18
  588. package/dist/fallback/sessionSearch.d.ts.map +0 -1
  589. package/dist/fallback/sessionSearch.js +0 -234
  590. package/dist/fallback/sessionSearch.js.map +0 -1
  591. package/dist/local/graphQuery.d.ts +0 -21
  592. package/dist/local/graphQuery.d.ts.map +0 -1
  593. package/dist/local/graphQuery.js +0 -170
  594. package/dist/local/graphQuery.js.map +0 -1
  595. package/dist/paths.d.ts +0 -7
  596. package/dist/paths.d.ts.map +0 -1
  597. package/dist/paths.js +0 -26
  598. package/dist/paths.js.map +0 -1
  599. package/dist/preflight/detectIntents.d.ts +0 -102
  600. package/dist/preflight/detectIntents.d.ts.map +0 -1
  601. package/dist/preflight/detectIntents.js +0 -624
  602. package/dist/preflight/detectIntents.js.map +0 -1
  603. package/dist/preflight/hook.d.ts +0 -58
  604. package/dist/preflight/hook.d.ts.map +0 -1
  605. package/dist/preflight/hook.js +0 -77
  606. package/dist/preflight/hook.js.map +0 -1
  607. package/dist/service.d.ts +0 -56
  608. package/dist/service.d.ts.map +0 -1
  609. package/dist/service.js +0 -200
  610. package/dist/service.js.map +0 -1
  611. package/dist/settings.d.ts +0 -38
  612. package/dist/settings.d.ts.map +0 -1
  613. package/dist/settings.js +0 -68
  614. package/dist/settings.js.map +0 -1
  615. package/dist/sidecar/bundle.d.ts +0 -19
  616. package/dist/sidecar/bundle.d.ts.map +0 -1
  617. package/dist/sidecar/bundle.js +0 -39
  618. package/dist/sidecar/bundle.js.map +0 -1
  619. package/dist/sidecar/process.d.ts +0 -14
  620. package/dist/sidecar/process.d.ts.map +0 -1
  621. package/dist/sidecar/process.js +0 -138
  622. package/dist/sidecar/process.js.map +0 -1
  623. package/dist/tools/memoryAppend.d.ts +0 -37
  624. package/dist/tools/memoryAppend.d.ts.map +0 -1
  625. package/dist/tools/memoryAppend.js +0 -99
  626. package/dist/tools/memoryAppend.js.map +0 -1
  627. package/dist/tools/memoryRecall.d.ts +0 -113
  628. package/dist/tools/memoryRecall.d.ts.map +0 -1
  629. package/dist/tools/memoryRecall.js +0 -325
  630. package/dist/tools/memoryRecall.js.map +0 -1
  631. package/dist/trainer/bundleBuilder.d.ts +0 -30
  632. package/dist/trainer/bundleBuilder.d.ts.map +0 -1
  633. package/dist/trainer/bundleBuilder.js +0 -106
  634. package/dist/trainer/bundleBuilder.js.map +0 -1
  635. package/dist/trainer/bundleLoader.d.ts +0 -12
  636. package/dist/trainer/bundleLoader.d.ts.map +0 -1
  637. package/dist/trainer/bundleLoader.js +0 -59
  638. package/dist/trainer/bundleLoader.js.map +0 -1
  639. package/dist/trainer/deltaMerge.d.ts +0 -38
  640. package/dist/trainer/deltaMerge.d.ts.map +0 -1
  641. package/dist/trainer/deltaMerge.js +0 -183
  642. package/dist/trainer/deltaMerge.js.map +0 -1
  643. package/dist/trainer/entityResolver.d.ts +0 -27
  644. package/dist/trainer/entityResolver.d.ts.map +0 -1
  645. package/dist/trainer/entityResolver.js +0 -92
  646. package/dist/trainer/entityResolver.js.map +0 -1
  647. package/dist/trainer/extractFacts.d.ts +0 -67
  648. package/dist/trainer/extractFacts.d.ts.map +0 -1
  649. package/dist/trainer/extractFacts.js +0 -213
  650. package/dist/trainer/extractFacts.js.map +0 -1
  651. package/dist/trainer/index.d.ts +0 -54
  652. package/dist/trainer/index.d.ts.map +0 -1
  653. package/dist/trainer/index.js +0 -82
  654. package/dist/trainer/index.js.map +0 -1
  655. package/dist/trainer/llmExtractor.d.ts +0 -16
  656. package/dist/trainer/llmExtractor.d.ts.map +0 -1
  657. package/dist/trainer/llmExtractor.js +0 -146
  658. package/dist/trainer/llmExtractor.js.map +0 -1
  659. package/dist/trainer/marker.d.ts +0 -10
  660. package/dist/trainer/marker.d.ts.map +0 -1
  661. package/dist/trainer/marker.js +0 -28
  662. package/dist/trainer/marker.js.map +0 -1
  663. package/dist/trainer/scheduler.d.ts +0 -31
  664. package/dist/trainer/scheduler.d.ts.map +0 -1
  665. package/dist/trainer/scheduler.js +0 -72
  666. package/dist/trainer/scheduler.js.map +0 -1
  667. package/dist/trainer/sessionLoader.d.ts +0 -23
  668. package/dist/trainer/sessionLoader.d.ts.map +0 -1
  669. package/dist/trainer/sessionLoader.js +0 -182
  670. package/dist/trainer/sessionLoader.js.map +0 -1
  671. package/dist/types.d.ts +0 -135
  672. package/dist/types.d.ts.map +0 -1
  673. package/dist/types.js +0 -8
  674. package/dist/types.js.map +0 -1
  675. package/src/adapters/ollamaClient.ts +0 -179
  676. package/src/adapters/openaiCompatClient.ts +0 -155
  677. package/src/adapters/piComplete.ts +0 -233
  678. package/src/bundle/install.ts +0 -206
  679. package/src/cache/memoryCaches.ts +0 -72
  680. package/src/config.ts +0 -92
  681. package/src/errclass.ts +0 -37
  682. package/src/extension.ts +0 -23
  683. package/src/fallback/index.ts +0 -24
  684. package/src/fallback/llmRerank.ts +0 -97
  685. package/src/fallback/memoryMd.ts +0 -36
  686. package/src/fallback/sessionIndex.ts +0 -327
  687. package/src/fallback/sessionSearch.ts +0 -261
  688. package/src/local/graphQuery.ts +0 -252
  689. package/src/paths.ts +0 -28
  690. package/src/preflight/detectIntents.ts +0 -660
  691. package/src/preflight/hook.ts +0 -199
  692. package/src/service.ts +0 -306
  693. package/src/settings.ts +0 -126
  694. package/src/sidecar/bundle.ts +0 -52
  695. package/src/sidecar/process.ts +0 -160
  696. package/src/tools/memoryAppend.ts +0 -113
  697. package/src/tools/memoryRecall.ts +0 -388
  698. package/src/trainer/bundleBuilder.ts +0 -192
  699. package/src/trainer/bundleLoader.ts +0 -105
  700. package/src/trainer/deltaMerge.ts +0 -221
  701. package/src/trainer/entityResolver.ts +0 -140
  702. package/src/trainer/extractFacts.ts +0 -312
  703. package/src/trainer/index.ts +0 -147
  704. package/src/trainer/llmExtractor.ts +0 -206
  705. package/src/trainer/marker.ts +0 -30
  706. package/src/trainer/scheduler.ts +0 -107
  707. package/src/trainer/sessionLoader.ts +0 -225
  708. package/src/types.ts +0 -168
@@ -1,7 +0,0 @@
1
- import { type ResponseEnvelope } from "./types.js";
2
- export type ErrorClass = "ok" | "retryable" | "permanent" | "unavailable";
3
- export declare const ErrTransport: Error;
4
- export declare function classifyTransportError(err: unknown): ErrorClass;
5
- /** Maps HTTP status + envelope → error class (Kocoro memory/errclass.go). */
6
- export declare function classifyHTTP(status: number, env: ResponseEnvelope | null): ErrorClass;
7
- //# sourceMappingURL=errclass.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errclass.d.ts","sourceRoot":"","sources":["../src/errclass.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEjE,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,WAAW,GAAG,WAAW,GAAG,aAAa,CAAC;AAE1E,eAAO,MAAM,YAAY,OAAyC,CAAC;AAEnE,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,CAE/D;AAED,6EAA6E;AAC7E,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,gBAAgB,GAAG,IAAI,GAC3B,UAAU,CAsBZ"}
package/dist/errclass.js DELETED
@@ -1,32 +0,0 @@
1
- import { errorSubCode } from "./types.js";
2
- export const ErrTransport = new Error("memory: transport failure");
3
- export function classifyTransportError(err) {
4
- return err == null ? "ok" : "unavailable";
5
- }
6
- /** Maps HTTP status + envelope → error class (Kocoro memory/errclass.go). */
7
- export function classifyHTTP(status, env) {
8
- if (status >= 200 && status < 300)
9
- return "ok";
10
- const sub = env?.error ? errorSubCode(env.error) : "";
11
- const code = env?.error?.code ?? "";
12
- switch (status) {
13
- case 400:
14
- return "permanent";
15
- case 401:
16
- case 403:
17
- return "permanent";
18
- case 409:
19
- return "retryable";
20
- case 422:
21
- return "permanent";
22
- case 503:
23
- if (code === "not_ready" || sub === "not_ready")
24
- return "unavailable";
25
- return "permanent";
26
- case 500:
27
- return "retryable";
28
- default:
29
- return "retryable";
30
- }
31
- }
32
- //# sourceMappingURL=errclass.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errclass.js","sourceRoot":"","sources":["../src/errclass.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAyB,MAAM,YAAY,CAAC;AAIjE,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;AAEnE,MAAM,UAAU,sBAAsB,CAAC,GAAY;IACjD,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC;AAC5C,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,YAAY,CAC1B,MAAc,EACd,GAA4B;IAE5B,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG;QAAE,OAAO,IAAI,CAAC;IAC/C,MAAM,GAAG,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtD,MAAM,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC;IACpC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,GAAG;YACN,OAAO,WAAW,CAAC;QACrB,KAAK,GAAG,CAAC;QACT,KAAK,GAAG;YACN,OAAO,WAAW,CAAC;QACrB,KAAK,GAAG;YACN,OAAO,WAAW,CAAC;QACrB,KAAK,GAAG;YACN,OAAO,WAAW,CAAC;QACrB,KAAK,GAAG;YACN,IAAI,IAAI,KAAK,WAAW,IAAI,GAAG,KAAK,WAAW;gBAAE,OAAO,aAAa,CAAC;YACtE,OAAO,WAAW,CAAC;QACrB,KAAK,GAAG;YACN,OAAO,WAAW,CAAC;QACrB;YACE,OAAO,WAAW,CAAC;IACvB,CAAC;AACH,CAAC"}
@@ -1,24 +0,0 @@
1
- /**
2
- * @deprecated Use `@chendpoc/pi-memory/extension` (pi-extension.ts) with real ExtensionAPI.
3
- * Re-exports the Pi extension entry for backward compatibility.
4
- */
5
- export { default, default as piMemoryExtension, getSharedMemoryService } from "./pi-extension.js";
6
- export type { BeforeTurnHook, MemoryHelperLLM } from "./preflight/hook.js";
7
- export { createBeforeTurnHook } from "./preflight/hook.js";
8
- /** @deprecated Stub types kept for programmatic callers migrating off the old API. */
9
- export interface PiExtensionAPI {
10
- config?: Record<string, unknown>;
11
- registerTool(tool: PiAgentTool): void;
12
- onBeforeTurn?(hook: import("./preflight/hook.js").BeforeTurnHook): void;
13
- onUnload?(fn: () => void | Promise<void>): void;
14
- }
15
- /** @deprecated */
16
- export interface PiAgentTool {
17
- name: string;
18
- description: string;
19
- parameters: Record<string, unknown>;
20
- execute(args: Record<string, unknown>, ctx?: {
21
- signal?: AbortSignal;
22
- }): Promise<string>;
23
- }
24
- //# sourceMappingURL=extension.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extension.d.ts","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAClG,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,sFAAsF;AACtF,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IACtC,YAAY,CAAC,CAAC,IAAI,EAAE,OAAO,qBAAqB,EAAE,cAAc,GAAG,IAAI,CAAC;IACxE,QAAQ,CAAC,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACjD;AAED,kBAAkB;AAClB,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACzF"}
package/dist/extension.js DELETED
@@ -1,7 +0,0 @@
1
- /**
2
- * @deprecated Use `@chendpoc/pi-memory/extension` (pi-extension.ts) with real ExtensionAPI.
3
- * Re-exports the Pi extension entry for backward compatibility.
4
- */
5
- export { default, default as piMemoryExtension, getSharedMemoryService } from "./pi-extension.js";
6
- export { createBeforeTurnHook } from "./preflight/hook.js";
7
- //# sourceMappingURL=extension.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAElG,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1,11 +0,0 @@
1
- import type { FallbackQuery } from "../types.js";
2
- export type { SessionSearchHit } from "./sessionSearch.js";
3
- export { sessionKeywordSearch } from "./sessionSearch.js";
4
- export { memoryMdSnippet } from "./memoryMd.js";
5
- export interface FallbackOptions {
6
- sessionsDir: string;
7
- memoryMdPaths: string[];
8
- }
9
- /** Real fallback: session JSON keyword search + MEMORY.md grep. */
10
- export declare function createFallbackQuery(opts: FallbackOptions): FallbackQuery;
11
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fallback/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjD,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,mEAAmE;AACnE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,eAAe,GAAG,aAAa,CASxE"}
@@ -1,16 +0,0 @@
1
- import { memoryMdSnippet } from "./memoryMd.js";
2
- import { sessionKeywordSearch } from "./sessionSearch.js";
3
- export { sessionKeywordSearch } from "./sessionSearch.js";
4
- export { memoryMdSnippet } from "./memoryMd.js";
5
- /** Real fallback: session JSON keyword search + MEMORY.md grep. */
6
- export function createFallbackQuery(opts) {
7
- return {
8
- async sessionKeyword(query, limit) {
9
- return sessionKeywordSearch(opts.sessionsDir, query, limit);
10
- },
11
- async memoryFileSnippet(query) {
12
- return memoryMdSnippet(opts.memoryMdPaths, query);
13
- },
14
- };
15
- }
16
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fallback/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAOhD,mEAAmE;AACnE,MAAM,UAAU,mBAAmB,CAAC,IAAqB;IACvD,OAAO;QACL,KAAK,CAAC,cAAc,CAAC,KAAa,EAAE,KAAa;YAC/C,OAAO,oBAAoB,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC9D,CAAC;QACD,KAAK,CAAC,iBAAiB,CAAC,KAAa;YACnC,OAAO,eAAe,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QACpD,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,19 +0,0 @@
1
- import type { LLMClient } from "../trainer/llmExtractor.js";
2
- import type { SessionSearchHit } from "./sessionSearch.js";
3
- export interface RerankOptions {
4
- client: LLMClient;
5
- maxCandidates?: number;
6
- maxTokens?: number;
7
- }
8
- export interface RankedResult {
9
- index: number;
10
- score: number;
11
- summary: string;
12
- }
13
- /**
14
- * Rerank FTS5 search hits using an LLM. Returns scored + summarized results
15
- * sorted by relevance. On any LLM failure, returns null (caller should use
16
- * original hits as fallback).
17
- */
18
- export declare function rerankWithLLM(query: string, hits: SessionSearchHit[], opts: RerankOptions): Promise<RankedResult[] | null>;
19
- //# sourceMappingURL=llmRerank.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"llmRerank.d.ts","sourceRoot":"","sources":["../../src/fallback/llmRerank.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,SAAS,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAqDD;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,gBAAgB,EAAE,EACxB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,CAchC"}
@@ -1,60 +0,0 @@
1
- const DEFAULT_MAX_CANDIDATES = 10;
2
- function buildRerankPrompt(query, hits) {
3
- const numbered = hits
4
- .map((h, i) => `#${i}: [${h.session_title || "untitled"}] ${h.snippet}`)
5
- .join("\n");
6
- return `You are a relevance judge. Given a user query and numbered search results from past sessions, rate each result 0-10 for relevance to the query and write a one-sentence summary of the relevant content.
7
-
8
- Query: ${query}
9
-
10
- Results:
11
- ${numbered}
12
-
13
- Respond with ONLY a JSON array (no markdown fences, no explanation):
14
- [{ "index": 0, "score": 8, "summary": "..." }, ...]`;
15
- }
16
- function parseRerankResponse(raw, hitCount) {
17
- const cleaned = raw.replace(/^```(?:json)?\s*/m, "").replace(/\s*```\s*$/m, "").trim();
18
- let parsed;
19
- try {
20
- parsed = JSON.parse(cleaned);
21
- }
22
- catch {
23
- return null;
24
- }
25
- if (!Array.isArray(parsed))
26
- return null;
27
- const results = [];
28
- for (const item of parsed) {
29
- const index = typeof item.index === "number" ? item.index : -1;
30
- const score = typeof item.score === "number" ? item.score : 0;
31
- const summary = typeof item.summary === "string" ? item.summary.trim() : "";
32
- if (index < 0 || index >= hitCount || !summary)
33
- continue;
34
- results.push({ index, score: Math.max(0, Math.min(10, score)), summary });
35
- }
36
- if (results.length === 0)
37
- return null;
38
- results.sort((a, b) => b.score - a.score);
39
- return results;
40
- }
41
- /**
42
- * Rerank FTS5 search hits using an LLM. Returns scored + summarized results
43
- * sorted by relevance. On any LLM failure, returns null (caller should use
44
- * original hits as fallback).
45
- */
46
- export async function rerankWithLLM(query, hits, opts) {
47
- if (hits.length === 0)
48
- return null;
49
- const maxCandidates = opts.maxCandidates ?? DEFAULT_MAX_CANDIDATES;
50
- const truncated = hits.slice(0, maxCandidates);
51
- const prompt = buildRerankPrompt(query, truncated);
52
- try {
53
- const response = await opts.client.complete(prompt);
54
- return parseRerankResponse(response, truncated.length);
55
- }
56
- catch {
57
- return null;
58
- }
59
- }
60
- //# sourceMappingURL=llmRerank.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"llmRerank.js","sourceRoot":"","sources":["../../src/fallback/llmRerank.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Best-effort grep of MEMORY.md for query terms (Kocoro memory_fallback.go).
3
- * Returns joined matching lines capped at 4KB. Empty string if absent/no match.
4
- */
5
- export declare function memoryMdSnippet(paths: string[], query: string): Promise<string>;
6
- //# sourceMappingURL=memoryMd.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memoryMd.d.ts","sourceRoot":"","sources":["../../src/fallback/memoryMd.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,MAAM,EAAE,EACf,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC,CAwBjB"}
@@ -1,35 +0,0 @@
1
- import fs from "node:fs/promises";
2
- const SNIPPET_CAP = 4096;
3
- /**
4
- * Best-effort grep of MEMORY.md for query terms (Kocoro memory_fallback.go).
5
- * Returns joined matching lines capped at 4KB. Empty string if absent/no match.
6
- */
7
- export async function memoryMdSnippet(paths, query) {
8
- const q = query.trim().toLowerCase();
9
- if (!q)
10
- return "";
11
- for (const p of paths) {
12
- let text;
13
- try {
14
- text = await fs.readFile(p, "utf8");
15
- }
16
- catch {
17
- continue;
18
- }
19
- const matches = [];
20
- let total = 0;
21
- for (const line of text.split("\n")) {
22
- if (!line.toLowerCase().includes(q))
23
- continue;
24
- matches.push(line);
25
- total += line.length + 1;
26
- if (total > SNIPPET_CAP)
27
- break;
28
- }
29
- if (matches.length > 0) {
30
- return matches.join("\n");
31
- }
32
- }
33
- return "";
34
- }
35
- //# sourceMappingURL=memoryMd.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memoryMd.js","sourceRoot":"","sources":["../../src/fallback/memoryMd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAElC,MAAM,WAAW,GAAG,IAAI,CAAC;AAEzB;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAAe,EACf,KAAa;IAEb,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAElB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAAE,SAAS;YAC9C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,KAAK,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YACzB,IAAI,KAAK,GAAG,WAAW;gBAAE,MAAM;QACjC,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC"}
@@ -1,35 +0,0 @@
1
- import type { SessionSearchHit } from "./sessionSearch.js";
2
- export interface SqliteDatabase {
3
- pragma(sql: string): unknown;
4
- exec(sql: string): void;
5
- prepare(sql: string): {
6
- run(...args: unknown[]): unknown;
7
- get(...args: unknown[]): unknown;
8
- all(...args: unknown[]): unknown[];
9
- };
10
- transaction<T>(fn: () => T): () => T;
11
- close(): void;
12
- }
13
- export interface SessionIndex {
14
- /** Full rebuild — drop and re-populate from all session files. */
15
- rebuildIndex(sessionsDir: string): Promise<{
16
- indexed: number;
17
- }>;
18
- /** Incremental — only index sessions modified after lastIndexedTs. */
19
- incrementalIndex(sessionsDir: string, lastIndexedTs?: Date | null): Promise<{
20
- indexed: number;
21
- }>;
22
- /** FTS5 search returning the same shape as sessionKeywordSearch. */
23
- search(query: string, limit: number): SessionSearchHit[];
24
- /** Retrieve the last-indexed timestamp from DB metadata. */
25
- getLastIndexedTs(): Date | null;
26
- /** Close the database connection. */
27
- close(): void;
28
- }
29
- /**
30
- * Open (or create) the SQLite FTS5 index.
31
- * Pass ":memory:" as dbPath for tests.
32
- * Optionally pass a pre-built SqliteDatabase for testing without native deps.
33
- */
34
- export declare function openSessionIndex(dbPath: string, injectedDb?: SqliteDatabase): SessionIndex | null;
35
- //# sourceMappingURL=sessionIndex.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sessionIndex.d.ts","sourceRoot":"","sources":["../../src/fallback/sessionIndex.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG;QACpB,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QACjC,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QACjC,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;KACpC,CAAC;IACF,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;IACrC,KAAK,IAAI,IAAI,CAAC;CACf;AA6CD,MAAM,WAAW,YAAY;IAC3B,kEAAkE;IAClE,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChE,sEAAsE;IACtE,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjG,oEAAoE;IACpE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAC;IACzD,4DAA4D;IAC5D,gBAAgB,IAAI,IAAI,GAAG,IAAI,CAAC;IAChC,qCAAqC;IACrC,KAAK,IAAI,IAAI,CAAC;CACf;AAkBD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,cAAc,GAAG,YAAY,GAAG,IAAI,CAuOjG"}
@@ -1,287 +0,0 @@
1
- import { createHash } from "node:crypto";
2
- import fs from "node:fs/promises";
3
- import { createRequire } from "node:module";
4
- import path from "node:path";
5
- /**
6
- * Lazy-loaded better-sqlite3 via createRequire (ESM-compatible).
7
- * Returns null if the package is not installed (graceful degradation).
8
- */
9
- function loadSqlite() {
10
- try {
11
- const require = createRequire(import.meta.url);
12
- const mod = require("better-sqlite3");
13
- return mod;
14
- }
15
- catch {
16
- return null;
17
- }
18
- }
19
- function messageText(content) {
20
- if (typeof content === "string")
21
- return content;
22
- if (!Array.isArray(content))
23
- return "";
24
- const parts = [];
25
- for (const block of content) {
26
- if (typeof block === "string") {
27
- parts.push(block);
28
- continue;
29
- }
30
- if (block && typeof block === "object") {
31
- const b = block;
32
- if (typeof b.text === "string")
33
- parts.push(b.text);
34
- else if (typeof b.content === "string")
35
- parts.push(b.content);
36
- }
37
- }
38
- return parts.join("\n");
39
- }
40
- const SCHEMA_SQL = `
41
- CREATE TABLE IF NOT EXISTS meta (
42
- key TEXT PRIMARY KEY,
43
- value TEXT
44
- );
45
- CREATE VIRTUAL TABLE IF NOT EXISTS session_fts USING fts5(
46
- session_id,
47
- turn_idx,
48
- role,
49
- content,
50
- session_title,
51
- created_at,
52
- tokenize='unicode61'
53
- );
54
- `;
55
- /**
56
- * Open (or create) the SQLite FTS5 index.
57
- * Pass ":memory:" as dbPath for tests.
58
- * Optionally pass a pre-built SqliteDatabase for testing without native deps.
59
- */
60
- export function openSessionIndex(dbPath, injectedDb) {
61
- let db;
62
- if (injectedDb) {
63
- db = injectedDb;
64
- }
65
- else {
66
- const Sqlite = loadSqlite();
67
- if (!Sqlite)
68
- return null;
69
- db = new Sqlite(dbPath);
70
- }
71
- db.pragma("journal_mode = WAL");
72
- db.exec(SCHEMA_SQL);
73
- function setMeta(key, value) {
74
- db.prepare("INSERT OR REPLACE INTO meta (key, value) VALUES (?, ?)").run(key, value);
75
- }
76
- function getMeta(key) {
77
- const row = db.prepare("SELECT value FROM meta WHERE key = ?").get(key);
78
- return row?.value ?? null;
79
- }
80
- function insertTurns(sessions) {
81
- const insert = db.prepare("INSERT INTO session_fts (session_id, turn_idx, role, content, session_title, created_at) VALUES (?, ?, ?, ?, ?, ?)");
82
- let count = 0;
83
- const seenContent = new Set();
84
- const tx = db.transaction(() => {
85
- for (const s of sessions) {
86
- for (const m of s.messages) {
87
- if (!m.content.trim())
88
- continue;
89
- const fingerprint = createHash("sha256")
90
- .update(m.content)
91
- .digest("hex")
92
- .slice(0, 16);
93
- if (seenContent.has(fingerprint))
94
- continue;
95
- seenContent.add(fingerprint);
96
- insert.run(s.id, String(m.index), m.role, m.content, s.title, s.createdAt);
97
- count++;
98
- }
99
- }
100
- });
101
- tx();
102
- return count;
103
- }
104
- async function collectFiles(dir) {
105
- let names;
106
- try {
107
- names = await fs.readdir(dir);
108
- }
109
- catch {
110
- return [];
111
- }
112
- const files = [];
113
- for (const name of names) {
114
- const full = path.join(dir, name);
115
- let st;
116
- try {
117
- st = await fs.stat(full);
118
- }
119
- catch {
120
- continue;
121
- }
122
- if (st.isDirectory()) {
123
- files.push(...await collectFiles(full));
124
- }
125
- else if (st.isFile() && (name.endsWith(".json") || name.endsWith(".jsonl"))) {
126
- files.push(full);
127
- }
128
- }
129
- return files;
130
- }
131
- function parseJsonlMessages(raw, filePath) {
132
- const lines = raw.split("\n").filter((l) => l.trim());
133
- if (lines.length === 0)
134
- return null;
135
- let id = path.basename(filePath, path.extname(filePath));
136
- let title = "";
137
- let createdAt = "";
138
- const messages = [];
139
- let idx = 0;
140
- for (const line of lines) {
141
- let obj;
142
- try {
143
- obj = JSON.parse(line);
144
- }
145
- catch {
146
- continue;
147
- }
148
- if (obj.type === "session") {
149
- id = obj.id ?? id;
150
- title = obj.title ?? "";
151
- createdAt = obj.timestamp ?? "";
152
- continue;
153
- }
154
- if (obj.type === "message") {
155
- const msg = obj.message;
156
- if (!msg?.role || !msg.content)
157
- continue;
158
- if (msg.role !== "user" && msg.role !== "assistant")
159
- continue;
160
- const text = messageText(msg.content);
161
- if (text.trim()) {
162
- messages.push({ role: msg.role, content: text, index: idx++ });
163
- }
164
- }
165
- }
166
- if (messages.length === 0)
167
- return null;
168
- return { id, title, createdAt, messages };
169
- }
170
- async function loadSessionFiles(sessionsDir, modifiedAfter) {
171
- const filePaths = await collectFiles(sessionsDir);
172
- const results = [];
173
- for (const filePath of filePaths) {
174
- let st;
175
- try {
176
- st = await fs.stat(filePath);
177
- }
178
- catch {
179
- continue;
180
- }
181
- if (!st.isFile())
182
- continue;
183
- if (modifiedAfter && st.mtime <= modifiedAfter)
184
- continue;
185
- let raw;
186
- try {
187
- raw = await fs.readFile(filePath, "utf8");
188
- }
189
- catch {
190
- continue;
191
- }
192
- if (filePath.endsWith(".jsonl")) {
193
- const parsed = parseJsonlMessages(raw, filePath);
194
- if (parsed)
195
- results.push(parsed);
196
- }
197
- else {
198
- let session;
199
- try {
200
- session = JSON.parse(raw);
201
- }
202
- catch {
203
- continue;
204
- }
205
- const sessionId = session.id ?? path.basename(filePath, ".json");
206
- const messages = [];
207
- for (let i = 0; i < (session.messages?.length ?? 0); i++) {
208
- const msg = session.messages[i];
209
- const text = messageText(msg.content);
210
- if (text.trim()) {
211
- messages.push({ role: msg.role ?? "unknown", content: text, index: i });
212
- }
213
- }
214
- if (messages.length > 0) {
215
- results.push({ id: sessionId, title: session.title ?? "", createdAt: session.created_at ?? "", messages });
216
- }
217
- }
218
- }
219
- return results;
220
- }
221
- return {
222
- async rebuildIndex(sessionsDir) {
223
- db.exec("DELETE FROM session_fts");
224
- const sessions = await loadSessionFiles(sessionsDir);
225
- const indexed = insertTurns(sessions);
226
- setMeta("last_indexed_ts", new Date().toISOString());
227
- return { indexed };
228
- },
229
- async incrementalIndex(sessionsDir, lastIndexedTs) {
230
- const effectiveTs = lastIndexedTs ??
231
- (() => {
232
- const raw = getMeta("last_indexed_ts");
233
- return raw ? new Date(raw) : null;
234
- })();
235
- const sessions = await loadSessionFiles(sessionsDir, effectiveTs);
236
- if (sessions.length === 0)
237
- return { indexed: 0 };
238
- const sessionIds = sessions.map((s) => s.id);
239
- const deletePlaceholders = sessionIds.map(() => "?").join(",");
240
- db.prepare(`DELETE FROM session_fts WHERE session_id IN (${deletePlaceholders})`).run(...sessionIds);
241
- const indexed = insertTurns(sessions);
242
- setMeta("last_indexed_ts", new Date().toISOString());
243
- return { indexed };
244
- },
245
- search(query, limit) {
246
- const q = query.trim();
247
- if (!q || limit <= 0)
248
- return [];
249
- const ftsQuery = q
250
- .split(/\s+/)
251
- .filter(Boolean)
252
- .map((term) => `"${term.replace(/"/g, '""')}"`)
253
- .join(" AND ");
254
- if (!ftsQuery)
255
- return [];
256
- try {
257
- const rows = db.prepare(`SELECT session_id, turn_idx, role, snippet(session_fts, 3, '>>>', '<<<', '...', 40) as snip, session_title, created_at
258
- FROM session_fts
259
- WHERE session_fts MATCH ?
260
- ORDER BY rank
261
- LIMIT ?`).all(ftsQuery, limit);
262
- return rows.map((r) => ({
263
- session_id: r.session_id,
264
- session_title: r.session_title,
265
- role: r.role,
266
- snippet: r.snip.replace(/>>>/g, "").replace(/<<</g, ""),
267
- msg_index: parseInt(r.turn_idx, 10),
268
- created_at: r.created_at,
269
- }));
270
- }
271
- catch {
272
- return [];
273
- }
274
- },
275
- getLastIndexedTs() {
276
- const raw = getMeta("last_indexed_ts");
277
- if (!raw)
278
- return null;
279
- const d = new Date(raw);
280
- return isNaN(d.getTime()) ? null : d;
281
- },
282
- close() {
283
- db.close();
284
- },
285
- };
286
- }
287
- //# sourceMappingURL=sessionIndex.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sessionIndex.js","sourceRoot":"","sources":["../../src/fallback/sessionIndex.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- /** Mirrors Kocoro session.SearchResult for fallback hits. */
2
- export interface SessionSearchHit {
3
- session_id: string;
4
- session_title: string;
5
- role: string;
6
- snippet: string;
7
- msg_index: number;
8
- created_at: string;
9
- }
10
- /** Default session DB path. */
11
- export declare function defaultSessionDbPath(sessionsDir: string): string;
12
- /**
13
- * Keyword search over Pi-style session files (JSON + JSONL, recursive subdirectories).
14
- * Uses FTS5 index when available, falls back to file scan.
15
- * All whitespace-separated terms must match (case-insensitive AND).
16
- */
17
- export declare function sessionKeywordSearch(sessionsDir: string, query: string, limit: number): Promise<SessionSearchHit[]>;
18
- //# sourceMappingURL=sessionSearch.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sessionSearch.d.ts","sourceRoot":"","sources":["../../src/fallback/sessionSearch.ts"],"names":[],"mappings":"AAKA,6DAA6D;AAC7D,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAaD,+BAA+B;AAC/B,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEhE;AAqCD;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA4C7B"}