@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
@@ -0,0 +1,19 @@
1
+ import { expandHomePath } from "../utils/paths.js";
2
+ import { joinPath } from "../utils/fs.js";
3
+ import { AUTO_FILE_PREFIX, COMPACTION_STATE_FILE, DEFAULT_MEMORY_FILE, MEMORY_GC_FILE, } from "../constants/memory.js";
4
+ export function resolveAgentDir(agentDir) {
5
+ return expandHomePath(agentDir);
6
+ }
7
+ export function getAgentPaths(agentDir, memoryFileName = DEFAULT_MEMORY_FILE) {
8
+ const resolved = resolveAgentDir(agentDir);
9
+ return {
10
+ agentDir: resolved,
11
+ memoryFile: joinPath(resolved, memoryFileName),
12
+ memoryGcFile: joinPath(resolved, MEMORY_GC_FILE),
13
+ compactionStateFile: joinPath(resolved, COMPACTION_STATE_FILE),
14
+ };
15
+ }
16
+ export function isAutoOverflowFile(name) {
17
+ return name.startsWith(AUTO_FILE_PREFIX) && name.endsWith(".md");
18
+ }
19
+ //# sourceMappingURL=paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/store/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,cAAc,GACf,MAAM,wBAAwB,CAAC;AAShC,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,cAAc,GAAG,mBAAmB;IAClF,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC3C,OAAO;QACL,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;QAC9C,YAAY,EAAE,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;QAChD,mBAAmB,EAAE,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC;KAC/D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC"}
@@ -0,0 +1,38 @@
1
+ import type { IndexDocument } from "../sidecar/protocol.js";
2
+ import { MEMORY_SECTIONS, type MemorySection } from "../constants/memory.js";
3
+ export { MEMORY_SECTIONS, type MemorySection };
4
+ /** Durable note stored in MEMORY.md (+ overflow files). */
5
+ export type StoreMemoryEntry = {
6
+ id: string;
7
+ section: MemorySection;
8
+ content: string;
9
+ userAuthored?: boolean;
10
+ timestamp: string;
11
+ };
12
+ export type ParsedEntry = StoreMemoryEntry & {
13
+ sourceFile: string;
14
+ line: number;
15
+ };
16
+ export type MemoryStats = {
17
+ lineCount: number;
18
+ overflowFileCount: number;
19
+ entryCount: number;
20
+ lastConsolidatedAt: string | null;
21
+ };
22
+ export type ResolvedMemory = {
23
+ content: string;
24
+ entries: ParsedEntry[];
25
+ };
26
+ export type IntegrityReport = {
27
+ ok: boolean;
28
+ issues: string[];
29
+ };
30
+ export type { LlmClient } from "../adapters/llm/types.js";
31
+ export type MemoryStoreOptions = {
32
+ agentDir: string;
33
+ memoryFileName?: string;
34
+ maxLines?: number;
35
+ defaultFallbackMaxChars?: number;
36
+ };
37
+ export type { IndexDocument };
38
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/store/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE7E,OAAO,EAAE,eAAe,EAAE,KAAK,aAAa,EAAE,CAAC;AAE/C,2DAA2D;AAC3D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,gBAAgB,GAAG;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAEF,YAAY,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE1D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC,CAAC;AAEF,YAAY,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { MEMORY_SECTIONS } from "../constants/memory.js";
2
+ export { MEMORY_SECTIONS };
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/store/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAsB,MAAM,wBAAwB,CAAC;AAE7E,OAAO,EAAE,eAAe,EAAsB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { Theme } from "@earendil-works/pi-coding-agent";
2
+ import type { Component, TUI } from "@earendil-works/pi-tui";
3
+ import type { MemoryStatusReport } from "../cli/status.js";
4
+ export type MemoryStatusWidgetState = {
5
+ report: MemoryStatusReport;
6
+ expanded: boolean;
7
+ };
8
+ export declare class MemoryStatusWidget implements Component {
9
+ private readonly theme;
10
+ private state;
11
+ private cachedWidth?;
12
+ private cachedLines?;
13
+ private version;
14
+ private cachedVersion;
15
+ constructor(theme: Theme, state: MemoryStatusWidgetState);
16
+ invalidate(): void;
17
+ render(width: number): string[];
18
+ }
19
+ export declare function createMemoryStatusWidget(_tui: TUI, theme: Theme, state: MemoryStatusWidgetState): MemoryStatusWidget;
20
+ //# sourceMappingURL=memoryStatusWidget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memoryStatusWidget.d.ts","sourceRoot":"","sources":["../../src/ui/memoryStatusWidget.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAG7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAO3D,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAUF,qBAAa,kBAAmB,YAAW,SAAS;IAOhD,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,KAAK;IAPf,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,WAAW,CAAC,CAAW;IAC/B,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,aAAa,CAAM;gBAGR,KAAK,EAAE,KAAK,EACrB,KAAK,EAAE,uBAAuB;IAGxC,UAAU,IAAI,IAAI;IAIlB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;CAgChC;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,GAAG,EACT,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,uBAAuB,GAC7B,kBAAkB,CAEpB"}
@@ -0,0 +1,51 @@
1
+ import { truncateToWidth } from "@earendil-works/pi-tui";
2
+ import { formatMemoryStatusSummary, formatMemoryStatusTuiLines, piStatusPalette, } from "../cli/status.js";
3
+ function formatHeader(theme, width) {
4
+ const title = theme.fg("accent", theme.bold("pi-memory status"));
5
+ const fill = Math.max(0, width - title.length - 2);
6
+ const left = Math.floor(fill / 2);
7
+ const right = fill - left;
8
+ return `${theme.fg("borderMuted", "─".repeat(left))} ${title} ${theme.fg("borderMuted", "─".repeat(right))}`;
9
+ }
10
+ export class MemoryStatusWidget {
11
+ theme;
12
+ state;
13
+ cachedWidth;
14
+ cachedLines;
15
+ version = 0;
16
+ cachedVersion = -1;
17
+ constructor(theme, state) {
18
+ this.theme = theme;
19
+ this.state = state;
20
+ }
21
+ invalidate() {
22
+ this.cachedLines = undefined;
23
+ }
24
+ render(width) {
25
+ if (this.cachedLines && this.cachedWidth === width && this.cachedVersion === this.version) {
26
+ return this.cachedLines;
27
+ }
28
+ const palette = piStatusPalette(this.theme);
29
+ const lines = [];
30
+ if (!this.state.expanded) {
31
+ const summary = formatMemoryStatusSummary(this.state.report, palette, (text) => this.theme.fg("accent", text));
32
+ const hint = this.theme.fg("dim", " (/memory-status to expand)");
33
+ lines.push(truncateToWidth(`${summary}${hint}`, width));
34
+ }
35
+ else {
36
+ lines.push(truncateToWidth(formatHeader(this.theme, width), width));
37
+ for (const line of formatMemoryStatusTuiLines(this.state.report, palette, this.theme)) {
38
+ lines.push(truncateToWidth(` ${line}`, width));
39
+ }
40
+ lines.push(truncateToWidth(this.theme.fg("dim", " /memory-status to collapse · /memory-status hide to dismiss"), width));
41
+ }
42
+ this.cachedLines = lines;
43
+ this.cachedWidth = width;
44
+ this.cachedVersion = this.version;
45
+ return lines;
46
+ }
47
+ }
48
+ export function createMemoryStatusWidget(_tui, theme, state) {
49
+ return new MemoryStatusWidget(theme, state);
50
+ }
51
+ //# sourceMappingURL=memoryStatusWidget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memoryStatusWidget.js","sourceRoot":"","sources":["../../src/ui/memoryStatusWidget.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function isMemoryDebugEnabled(env?: NodeJS.ProcessEnv): boolean;
2
+ /** Debug-only stderr log; never shown to Pi UI or session. */
3
+ export declare function debugMemory(scope: string, message: string, fields?: Record<string, string | number | boolean | null | undefined>, env?: NodeJS.ProcessEnv): void;
4
+ //# sourceMappingURL=debugLog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debugLog.d.ts","sourceRoot":"","sources":["../../src/utils/debugLog.ts"],"names":[],"mappings":"AAEA,wBAAgB,oBAAoB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAElF;AAED,8DAA8D;AAC9D,wBAAgB,WAAW,CACzB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,EACrE,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,IAAI,CASN"}
@@ -0,0 +1,14 @@
1
+ import { theme } from "../cli/theme.js";
2
+ export function isMemoryDebugEnabled(env = process.env) {
3
+ return env.PI_MEMORY_DEBUG === "1" || env.PI_MEMORY_DEBUG === "true";
4
+ }
5
+ /** Debug-only stderr log; never shown to Pi UI or session. */
6
+ export function debugMemory(scope, message, fields, env = process.env) {
7
+ if (!isMemoryDebugEnabled(env))
8
+ return;
9
+ const suffix = fields && Object.keys(fields).length > 0
10
+ ? ` ${JSON.stringify(fields, (_key, value) => (value === undefined ? null : value))}`
11
+ : "";
12
+ console.error(theme.dim(`[${scope}] ${message}${suffix}`));
13
+ }
14
+ //# sourceMappingURL=debugLog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debugLog.js","sourceRoot":"","sources":["../../src/utils/debugLog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC,MAAM,UAAU,oBAAoB,CAAC,MAAyB,OAAO,CAAC,GAAG;IACvE,OAAO,GAAG,CAAC,eAAe,KAAK,GAAG,IAAI,GAAG,CAAC,eAAe,KAAK,MAAM,CAAC;AACvE,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,WAAW,CACzB,KAAa,EACb,OAAe,EACf,MAAqE,EACrE,MAAyB,OAAO,CAAC,GAAG;IAEpC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC;QAAE,OAAO;IAEvC,MAAM,MAAM,GACV,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC;QACtC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;QACrF,CAAC,CAAC,EAAE,CAAC;IAET,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;AAC7D,CAAC"}
@@ -0,0 +1,26 @@
1
+ /** Cross-platform path join (`\` on Windows, `/` on POSIX). */
2
+ export declare function joinPath(...segments: string[]): string;
3
+ export declare function pathBasename(filePath: string): string;
4
+ export declare function pathDirname(filePath: string): string;
5
+ export declare function pathExists(filePath: string): boolean;
6
+ /** True when the current process can read the path. */
7
+ export declare function canRead(filePath: string): boolean;
8
+ export declare function isENOENT(error: unknown): boolean;
9
+ /** Create directory tree; Unix applies secure mode, Windows omits mode. */
10
+ export declare function ensureDir(dirPath: string): Promise<void>;
11
+ export declare function ensureDirSync(dirPath: string): void;
12
+ /** Read UTF-8 text; missing file → empty string. */
13
+ export declare function readText(filePath: string): Promise<string>;
14
+ /** Read UTF-8 text; propagates ENOENT. */
15
+ export declare function readTextRequired(filePath: string): Promise<string>;
16
+ /** Write UTF-8 text; creates parent directories. */
17
+ export declare function writeText(filePath: string, content: string): Promise<void>;
18
+ /** Append UTF-8 text; creates parent directories. */
19
+ export declare function appendText(filePath: string, content: string): Promise<void>;
20
+ /** List directory entries; missing dir → empty array. */
21
+ export declare function listDir(dirPath: string): Promise<string[]>;
22
+ /** Delete file; missing file → no-op. */
23
+ export declare function removeFile(filePath: string): Promise<void>;
24
+ /** Ensure file exists (empty) for lockfile targets. */
25
+ export declare function ensureFile(filePath: string): Promise<void>;
26
+ //# sourceMappingURL=fs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"AAcA,+DAA+D;AAC/D,wBAAgB,QAAQ,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAEtD;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,uDAAuD;AACvD,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAOjD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEhD;AAED,2EAA2E;AAC3E,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9D;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEnD;AAED,oDAAoD;AACpD,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOhE;AAED,0CAA0C;AAC1C,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAExE;AAED,oDAAoD;AACpD,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIhF;AAED,qDAAqD;AACrD,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIjF;AAED,yDAAyD;AACzD,wBAAsB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAOhE;AAED,yCAAyC;AACzC,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOhE;AAED,uDAAuD;AACvD,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAUhE"}
@@ -0,0 +1,101 @@
1
+ /** Runtime fs helpers. Pre-build postinstall mirror: scripts/platform-fs.mjs */
2
+ import { accessSync, existsSync, mkdirSync, constants } from "node:fs";
3
+ import { appendFile, mkdir, readFile, readdir, unlink, writeFile, } from "node:fs/promises";
4
+ import { basename, dirname, join } from "node:path";
5
+ import { expandHomePath, mkdirOptions } from "./paths.js";
6
+ /** Cross-platform path join (`\` on Windows, `/` on POSIX). */
7
+ export function joinPath(...segments) {
8
+ return join(...segments);
9
+ }
10
+ export function pathBasename(filePath) {
11
+ return basename(filePath);
12
+ }
13
+ export function pathDirname(filePath) {
14
+ return dirname(filePath);
15
+ }
16
+ export function pathExists(filePath) {
17
+ return existsSync(expandHomePath(filePath));
18
+ }
19
+ /** True when the current process can read the path. */
20
+ export function canRead(filePath) {
21
+ try {
22
+ accessSync(expandHomePath(filePath), constants.R_OK);
23
+ return true;
24
+ }
25
+ catch {
26
+ return false;
27
+ }
28
+ }
29
+ export function isENOENT(error) {
30
+ return error?.code === "ENOENT";
31
+ }
32
+ /** Create directory tree; Unix applies secure mode, Windows omits mode. */
33
+ export async function ensureDir(dirPath) {
34
+ await mkdir(expandHomePath(dirPath), mkdirOptions());
35
+ }
36
+ export function ensureDirSync(dirPath) {
37
+ mkdirSync(expandHomePath(dirPath), mkdirOptions());
38
+ }
39
+ /** Read UTF-8 text; missing file → empty string. */
40
+ export async function readText(filePath) {
41
+ try {
42
+ return await readFile(expandHomePath(filePath), "utf8");
43
+ }
44
+ catch (error) {
45
+ if (isENOENT(error))
46
+ return "";
47
+ throw error;
48
+ }
49
+ }
50
+ /** Read UTF-8 text; propagates ENOENT. */
51
+ export async function readTextRequired(filePath) {
52
+ return readFile(expandHomePath(filePath), "utf8");
53
+ }
54
+ /** Write UTF-8 text; creates parent directories. */
55
+ export async function writeText(filePath, content) {
56
+ const resolved = expandHomePath(filePath);
57
+ await ensureDir(dirname(resolved));
58
+ await writeFile(resolved, content, "utf8");
59
+ }
60
+ /** Append UTF-8 text; creates parent directories. */
61
+ export async function appendText(filePath, content) {
62
+ const resolved = expandHomePath(filePath);
63
+ await ensureDir(dirname(resolved));
64
+ await appendFile(resolved, content, "utf8");
65
+ }
66
+ /** List directory entries; missing dir → empty array. */
67
+ export async function listDir(dirPath) {
68
+ try {
69
+ return await readdir(expandHomePath(dirPath));
70
+ }
71
+ catch (error) {
72
+ if (isENOENT(error))
73
+ return [];
74
+ throw error;
75
+ }
76
+ }
77
+ /** Delete file; missing file → no-op. */
78
+ export async function removeFile(filePath) {
79
+ try {
80
+ await unlink(expandHomePath(filePath));
81
+ }
82
+ catch (error) {
83
+ if (isENOENT(error))
84
+ return;
85
+ throw error;
86
+ }
87
+ }
88
+ /** Ensure file exists (empty) for lockfile targets. */
89
+ export async function ensureFile(filePath) {
90
+ try {
91
+ await readTextRequired(filePath);
92
+ }
93
+ catch (error) {
94
+ if (isENOENT(error)) {
95
+ await writeText(filePath, "");
96
+ return;
97
+ }
98
+ throw error;
99
+ }
100
+ }
101
+ //# sourceMappingURL=fs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export { getPlatform, isMacOS, isUnixLike, isWindows, type PiMemoryPlatform, } from "./platform.js";
2
+ export { CONFIG_DIR_NAME, defaultMemoryAgentDir, defaultPiConfigDir, defaultPiMemoryEnvFile, defaultPiLogsDir, expandHomePath, getAgentDir, mkdirOptions, secureDirMode, secureFileMode, } from "./paths.js";
3
+ export { appendText, canRead, ensureDir, ensureDirSync, ensureFile, isENOENT, joinPath, listDir, pathBasename, pathDirname, pathExists, readText, readTextRequired, removeFile, writeText, } from "./fs.js";
4
+ export { cleanupSocketFiles, removeSocketFile, secureSocketPath } from "./socket.js";
5
+ export { debugMemory, isMemoryDebugEnabled } from "./debugLog.js";
6
+ export { daysSince, epochTimestamp, formatLocalDate, formatTimestamp, now, nowMs, parseTime, remainingMs, type TimeInput, } from "./time.js";
7
+ export { buildConsolidateCliArgs, buildMaintenanceCliArgs, defaultConsolidateSchedulerPaths, formatConsolidateCronLine, formatMaintenanceCronLine, getConsolidateSchedulerKind, getConsolidateTemplateNames, type ConsolidateCliInvocation, type ConsolidateSchedulerKind, type ConsolidateSchedulerPaths, type ConsolidateTemplateName, } from "./scheduler.js";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,OAAO,EACP,UAAU,EACV,SAAS,EACT,KAAK,gBAAgB,GACtB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,YAAY,EACZ,aAAa,EACb,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,UAAU,EACV,OAAO,EACP,SAAS,EACT,aAAa,EACb,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,WAAW,EACX,UAAU,EACV,QAAQ,EACR,gBAAgB,EAChB,UAAU,EACV,SAAS,GACV,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAErF,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAElE,OAAO,EACL,SAAS,EACT,cAAc,EACd,eAAe,EACf,eAAe,EACf,GAAG,EACH,KAAK,EACL,SAAS,EACT,WAAW,EACX,KAAK,SAAS,GACf,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,gCAAgC,EAChC,yBAAyB,EACzB,yBAAyB,EACzB,2BAA2B,EAC3B,2BAA2B,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,GAC7B,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,8 @@
1
+ export { getPlatform, isMacOS, isUnixLike, isWindows, } from "./platform.js";
2
+ export { CONFIG_DIR_NAME, defaultMemoryAgentDir, defaultPiConfigDir, defaultPiMemoryEnvFile, defaultPiLogsDir, expandHomePath, getAgentDir, mkdirOptions, secureDirMode, secureFileMode, } from "./paths.js";
3
+ export { appendText, canRead, ensureDir, ensureDirSync, ensureFile, isENOENT, joinPath, listDir, pathBasename, pathDirname, pathExists, readText, readTextRequired, removeFile, writeText, } from "./fs.js";
4
+ export { cleanupSocketFiles, removeSocketFile, secureSocketPath } from "./socket.js";
5
+ export { debugMemory, isMemoryDebugEnabled } from "./debugLog.js";
6
+ export { daysSince, epochTimestamp, formatLocalDate, formatTimestamp, now, nowMs, parseTime, remainingMs, } from "./time.js";
7
+ export { buildConsolidateCliArgs, buildMaintenanceCliArgs, defaultConsolidateSchedulerPaths, formatConsolidateCronLine, formatMaintenanceCronLine, getConsolidateSchedulerKind, getConsolidateTemplateNames, } from "./scheduler.js";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,OAAO,EACP,UAAU,EACV,SAAS,GAEV,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,YAAY,EACZ,aAAa,EACb,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,UAAU,EACV,OAAO,EACP,SAAS,EACT,aAAa,EACb,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,WAAW,EACX,UAAU,EACV,QAAQ,EACR,gBAAgB,EAChB,UAAU,EACV,SAAS,GACV,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAErF,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAElE,OAAO,EACL,SAAS,EACT,cAAc,EACd,eAAe,EACf,eAAe,EACf,GAAG,EACH,KAAK,EACL,SAAS,EACT,WAAW,GAEZ,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,gCAAgC,EAChC,yBAAyB,EACzB,yBAAyB,EACzB,2BAA2B,EAC3B,2BAA2B,GAK5B,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { CONFIG_DIR_NAME, getAgentDir } from "@earendil-works/pi-coding-agent";
2
+ export { CONFIG_DIR_NAME, getAgentDir };
3
+ /** Expand leading `~` or `~/` using the current user's home directory. */
4
+ export declare function expandHomePath(input: string): string;
5
+ /** Pi user config root (~/.pi). Uses Pi's CONFIG_DIR_NAME. */
6
+ export declare function defaultPiConfigDir(): string;
7
+ /** Memory data root: ~/.pi/pi-memory-data */
8
+ export declare function defaultMemoryAgentDir(): string;
9
+ /** pi-memory config: ~/.pi/agent/pi-memory.env */
10
+ export declare function defaultPiMemoryEnvFile(): string;
11
+ export declare function defaultPiLogsDir(): string;
12
+ export declare function defaultConsolidateLogPath(): string;
13
+ export declare function defaultConsolidateErrLogPath(): string;
14
+ /** Directory mode for agent / socket parent dirs (Unix only; ignored on Windows). */
15
+ export declare function secureDirMode(): number | undefined;
16
+ /** File mode for socket files (Unix only; ignored on Windows). */
17
+ export declare function secureFileMode(): number | undefined;
18
+ export declare function mkdirOptions(): {
19
+ recursive: true;
20
+ mode?: number;
21
+ };
22
+ //# sourceMappingURL=paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/utils/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAc/E,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC;AAExC,0EAA0E;AAC1E,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOpD;AAED,8DAA8D;AAC9D,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,6CAA6C;AAC7C,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED,kDAAkD;AAClD,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,yBAAyB,IAAI,MAAM,CAElD;AAED,wBAAgB,4BAA4B,IAAI,MAAM,CAErD;AAED,qFAAqF;AACrF,wBAAgB,aAAa,IAAI,MAAM,GAAG,SAAS,CAElD;AAED,kEAAkE;AAClE,wBAAgB,cAAc,IAAI,MAAM,GAAG,SAAS,CAEnD;AAED,wBAAgB,YAAY,IAAI;IAAE,SAAS,EAAE,IAAI,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAGjE"}
@@ -0,0 +1,51 @@
1
+ import { CONFIG_DIR_NAME, getAgentDir } from "@earendil-works/pi-coding-agent";
2
+ import { homedir } from "node:os";
3
+ import { join } from "node:path";
4
+ import { CONSOLIDATE_ERR_LOG_FILE, CONSOLIDATE_LOG_FILE, PI_MEMORY_DATA_SUBDIR, PI_MEMORY_ENV_FILE_NAME, PI_LOGS_SUBDIR, } from "../constants/paths.js";
5
+ import { SECURE_DIR_MODE, SECURE_FILE_MODE } from "../constants/security.js";
6
+ import { isWindows } from "./platform.js";
7
+ export { CONFIG_DIR_NAME, getAgentDir };
8
+ /** Expand leading `~` or `~/` using the current user's home directory. */
9
+ export function expandHomePath(input) {
10
+ const trimmed = input.trim();
11
+ if (trimmed === "~")
12
+ return homedir();
13
+ if (trimmed.startsWith("~/") || trimmed.startsWith("~\\")) {
14
+ return join(homedir(), trimmed.slice(2));
15
+ }
16
+ return trimmed;
17
+ }
18
+ /** Pi user config root (~/.pi). Uses Pi's CONFIG_DIR_NAME. */
19
+ export function defaultPiConfigDir() {
20
+ return join(homedir(), CONFIG_DIR_NAME);
21
+ }
22
+ /** Memory data root: ~/.pi/pi-memory-data */
23
+ export function defaultMemoryAgentDir() {
24
+ return join(defaultPiConfigDir(), PI_MEMORY_DATA_SUBDIR);
25
+ }
26
+ /** pi-memory config: ~/.pi/agent/pi-memory.env */
27
+ export function defaultPiMemoryEnvFile() {
28
+ return join(getAgentDir(), PI_MEMORY_ENV_FILE_NAME);
29
+ }
30
+ export function defaultPiLogsDir() {
31
+ return join(defaultPiConfigDir(), PI_LOGS_SUBDIR);
32
+ }
33
+ export function defaultConsolidateLogPath() {
34
+ return join(defaultPiLogsDir(), CONSOLIDATE_LOG_FILE);
35
+ }
36
+ export function defaultConsolidateErrLogPath() {
37
+ return join(defaultPiLogsDir(), CONSOLIDATE_ERR_LOG_FILE);
38
+ }
39
+ /** Directory mode for agent / socket parent dirs (Unix only; ignored on Windows). */
40
+ export function secureDirMode() {
41
+ return isWindows() ? undefined : SECURE_DIR_MODE;
42
+ }
43
+ /** File mode for socket files (Unix only; ignored on Windows). */
44
+ export function secureFileMode() {
45
+ return isWindows() ? undefined : SECURE_FILE_MODE;
46
+ }
47
+ export function mkdirOptions() {
48
+ const mode = secureDirMode();
49
+ return mode === undefined ? { recursive: true } : { recursive: true, mode };
50
+ }
51
+ //# sourceMappingURL=paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/utils/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,GACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC;AAExC,0EAA0E;AAC1E,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,OAAO,KAAK,GAAG;QAAE,OAAO,OAAO,EAAE,CAAC;IACtC,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,eAAe,CAAC,CAAC;AAC1C,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,qBAAqB;IACnC,OAAO,IAAI,CAAC,kBAAkB,EAAE,EAAE,qBAAqB,CAAC,CAAC;AAC3D,CAAC;AAED,kDAAkD;AAClD,MAAM,UAAU,sBAAsB;IACpC,OAAO,IAAI,CAAC,WAAW,EAAE,EAAE,uBAAuB,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,IAAI,CAAC,kBAAkB,EAAE,EAAE,cAAc,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,yBAAyB;IACvC,OAAO,IAAI,CAAC,gBAAgB,EAAE,EAAE,oBAAoB,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,4BAA4B;IAC1C,OAAO,IAAI,CAAC,gBAAgB,EAAE,EAAE,wBAAwB,CAAC,CAAC;AAC5D,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,aAAa;IAC3B,OAAO,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC;AACnD,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,cAAc;IAC5B,OAAO,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAC7B,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC9E,CAAC"}
@@ -0,0 +1,7 @@
1
+ export type PiMemoryPlatform = "darwin" | "win32" | "other";
2
+ export declare function getPlatform(): PiMemoryPlatform;
3
+ export declare function isWindows(): boolean;
4
+ export declare function isMacOS(): boolean;
5
+ /** Unix-like platforms where chmod / UDS cleanup apply. */
6
+ export declare function isUnixLike(): boolean;
7
+ //# sourceMappingURL=platform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../src/utils/platform.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;AAE5D,wBAAgB,WAAW,IAAI,gBAAgB,CAI9C;AAED,wBAAgB,SAAS,IAAI,OAAO,CAEnC;AAED,wBAAgB,OAAO,IAAI,OAAO,CAEjC;AAED,2DAA2D;AAC3D,wBAAgB,UAAU,IAAI,OAAO,CAEpC"}
@@ -0,0 +1,18 @@
1
+ export function getPlatform() {
2
+ if (process.platform === "darwin")
3
+ return "darwin";
4
+ if (process.platform === "win32")
5
+ return "win32";
6
+ return "other";
7
+ }
8
+ export function isWindows() {
9
+ return process.platform === "win32";
10
+ }
11
+ export function isMacOS() {
12
+ return process.platform === "darwin";
13
+ }
14
+ /** Unix-like platforms where chmod / UDS cleanup apply. */
15
+ export function isUnixLike() {
16
+ return !isWindows();
17
+ }
18
+ //# sourceMappingURL=platform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/utils/platform.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,WAAW;IACzB,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IACnD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC;IACjD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC;AACvC,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,UAAU;IACxB,OAAO,CAAC,SAAS,EAAE,CAAC;AACtB,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { LAUNCHD_LABEL, SCHEDULER_TEMPLATE_FILES, SCHTASKS_TASK_NAME } from "../constants/paths.js";
2
+ import { isMacOS, isWindows, type PiMemoryPlatform } from "./platform.js";
3
+ export type ConsolidateSchedulerKind = "launchd" | "crontab" | "schtasks";
4
+ /** Recommended OS scheduler for daily consolidate on this platform. */
5
+ export declare function getConsolidateSchedulerKind(platform?: PiMemoryPlatform): ConsolidateSchedulerKind;
6
+ export type ConsolidateSchedulerPaths = {
7
+ agentDir: string;
8
+ envFile: string;
9
+ logsDir: string;
10
+ stdoutLog: string;
11
+ stderrLog: string;
12
+ };
13
+ export declare function defaultConsolidateSchedulerPaths(): ConsolidateSchedulerPaths;
14
+ export type ConsolidateCliInvocation = {
15
+ nodePath: string;
16
+ cliPath: string;
17
+ cron: boolean;
18
+ verbose: boolean;
19
+ agentDir?: string;
20
+ };
21
+ /** argv for `pi-memory maintenance` (OS scheduler / wrapper scripts). */
22
+ export declare function buildMaintenanceCliArgs(opts: Pick<ConsolidateCliInvocation, "cron" | "verbose" | "agentDir">): string[];
23
+ /** @deprecated Prefer buildMaintenanceCliArgs for OS schedulers. */
24
+ export declare function buildConsolidateCliArgs(opts: Pick<ConsolidateCliInvocation, "cron" | "verbose" | "agentDir">): string[];
25
+ /** Single-line shell command (macOS / Linux crontab). */
26
+ export declare function formatMaintenanceCronLine(opts: ConsolidateCliInvocation & ConsolidateSchedulerPaths): string;
27
+ /** @deprecated Prefer formatMaintenanceCronLine. */
28
+ export declare function formatConsolidateCronLine(opts: ConsolidateCliInvocation & ConsolidateSchedulerPaths): string;
29
+ export type ConsolidateTemplateName = (typeof SCHEDULER_TEMPLATE_FILES)[keyof typeof SCHEDULER_TEMPLATE_FILES];
30
+ /** Template file basename shipped under templates/ for this platform. */
31
+ export declare function getConsolidateTemplateNames(platform?: PiMemoryPlatform): ConsolidateTemplateName[];
32
+ export { LAUNCHD_LABEL, SCHEDULER_TEMPLATE_FILES, SCHTASKS_TASK_NAME, isMacOS, isWindows };
33
+ //# sourceMappingURL=scheduler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../src/utils/scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,kBAAkB,EACnB,MAAM,uBAAuB,CAAC;AAQ/B,OAAO,EAAe,OAAO,EAAE,SAAS,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEvF,MAAM,MAAM,wBAAwB,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;AAE1E,uEAAuE;AACvE,wBAAgB,2BAA2B,CAAC,QAAQ,GAAE,gBAAgC,GAAG,wBAAwB,CAIhH;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAgB,gCAAgC,IAAI,yBAAyB,CAQ5E;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,yEAAyE;AACzE,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,IAAI,CAAC,wBAAwB,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC,GACpE,MAAM,EAAE,CAMV;AAED,oEAAoE;AACpE,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,wBAAwB,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC,GAAG,MAAM,EAAE,CAEvH;AAED,yDAAyD;AACzD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,wBAAwB,GAAG,yBAAyB,GAAG,MAAM,CAU5G;AAED,oDAAoD;AACpD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,wBAAwB,GAAG,yBAAyB,GAAG,MAAM,CAE5G;AAED,MAAM,MAAM,uBAAuB,GACjC,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,OAAO,wBAAwB,CAAC,CAAC;AAE3E,yEAAyE;AACzE,wBAAgB,2BAA2B,CAAC,QAAQ,GAAE,gBAAgC,GAAG,uBAAuB,EAAE,CAQjH;AAED,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -0,0 +1,63 @@
1
+ import { LAUNCHD_LABEL, SCHEDULER_TEMPLATE_FILES, SCHTASKS_TASK_NAME, } from "../constants/paths.js";
2
+ import { defaultConsolidateErrLogPath, defaultConsolidateLogPath, defaultMemoryAgentDir, defaultPiMemoryEnvFile, defaultPiLogsDir, } from "./paths.js";
3
+ import { getPlatform, isMacOS, isWindows } from "./platform.js";
4
+ /** Recommended OS scheduler for daily consolidate on this platform. */
5
+ export function getConsolidateSchedulerKind(platform = getPlatform()) {
6
+ if (platform === "darwin")
7
+ return "launchd";
8
+ if (platform === "win32")
9
+ return "schtasks";
10
+ return "crontab";
11
+ }
12
+ export function defaultConsolidateSchedulerPaths() {
13
+ return {
14
+ agentDir: defaultMemoryAgentDir(),
15
+ envFile: defaultPiMemoryEnvFile(),
16
+ logsDir: defaultPiLogsDir(),
17
+ stdoutLog: defaultConsolidateLogPath(),
18
+ stderrLog: defaultConsolidateErrLogPath(),
19
+ };
20
+ }
21
+ /** argv for `pi-memory maintenance` (OS scheduler / wrapper scripts). */
22
+ export function buildMaintenanceCliArgs(opts) {
23
+ const args = ["maintenance"];
24
+ if (opts.cron)
25
+ args.push("--cron");
26
+ if (opts.verbose)
27
+ args.push("--verbose");
28
+ if (opts.agentDir)
29
+ args.push("--agent-dir", opts.agentDir);
30
+ return args;
31
+ }
32
+ /** @deprecated Prefer buildMaintenanceCliArgs for OS schedulers. */
33
+ export function buildConsolidateCliArgs(opts) {
34
+ return buildMaintenanceCliArgs(opts);
35
+ }
36
+ /** Single-line shell command (macOS / Linux crontab). */
37
+ export function formatMaintenanceCronLine(opts) {
38
+ const args = buildMaintenanceCliArgs(opts).join(" ");
39
+ return [
40
+ `PI_MEMORY_ENV_FILE=${opts.envFile}`,
41
+ `PI_MEMORY_AGENT_DIR=${opts.agentDir}`,
42
+ opts.nodePath,
43
+ opts.cliPath,
44
+ args,
45
+ `>> ${opts.stdoutLog} 2>&1`,
46
+ ].join(" ");
47
+ }
48
+ /** @deprecated Prefer formatMaintenanceCronLine. */
49
+ export function formatConsolidateCronLine(opts) {
50
+ return formatMaintenanceCronLine(opts);
51
+ }
52
+ /** Template file basename shipped under templates/ for this platform. */
53
+ export function getConsolidateTemplateNames(platform = getPlatform()) {
54
+ if (platform === "darwin") {
55
+ return [SCHEDULER_TEMPLATE_FILES.launchd, SCHEDULER_TEMPLATE_FILES.crontab];
56
+ }
57
+ if (platform === "win32") {
58
+ return [SCHEDULER_TEMPLATE_FILES.windowsCmd, SCHEDULER_TEMPLATE_FILES.windowsSchtasks];
59
+ }
60
+ return [SCHEDULER_TEMPLATE_FILES.crontab];
61
+ }
62
+ export { LAUNCHD_LABEL, SCHEDULER_TEMPLATE_FILES, SCHTASKS_TASK_NAME, isMacOS, isWindows };
63
+ //# sourceMappingURL=scheduler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../src/utils/scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,4BAA4B,EAC5B,yBAAyB,EACzB,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAyB,MAAM,eAAe,CAAC;AAIvF,uEAAuE;AACvE,MAAM,UAAU,2BAA2B,CAAC,WAA6B,WAAW,EAAE;IACpF,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC5C,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,UAAU,CAAC;IAC5C,OAAO,SAAS,CAAC;AACnB,CAAC;AAUD,MAAM,UAAU,gCAAgC;IAC9C,OAAO;QACL,QAAQ,EAAE,qBAAqB,EAAE;QACjC,OAAO,EAAE,sBAAsB,EAAE;QACjC,OAAO,EAAE,gBAAgB,EAAE;QAC3B,SAAS,EAAE,yBAAyB,EAAE;QACtC,SAAS,EAAE,4BAA4B,EAAE;KAC1C,CAAC;AACJ,CAAC;AAUD,yEAAyE;AACzE,MAAM,UAAU,uBAAuB,CACrC,IAAqE;IAErE,MAAM,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;IAC7B,IAAI,IAAI,CAAC,IAAI;QAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,IAAI,CAAC,OAAO;QAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzC,IAAI,IAAI,CAAC,QAAQ;QAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,uBAAuB,CAAC,IAAqE;IAC3G,OAAO,uBAAuB,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,yBAAyB,CAAC,IAA0D;IAClG,MAAM,IAAI,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrD,OAAO;QACL,sBAAsB,IAAI,CAAC,OAAO,EAAE;QACpC,uBAAuB,IAAI,CAAC,QAAQ,EAAE;QACtC,IAAI,CAAC,QAAQ;QACb,IAAI,CAAC,OAAO;QACZ,IAAI;QACJ,MAAM,IAAI,CAAC,SAAS,OAAO;KAC5B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,yBAAyB,CAAC,IAA0D;IAClG,OAAO,yBAAyB,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAKD,yEAAyE;AACzE,MAAM,UAAU,2BAA2B,CAAC,WAA6B,WAAW,EAAE;IACpF,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,CAAC,wBAAwB,CAAC,OAAO,EAAE,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAC9E,CAAC;IACD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO,CAAC,wBAAwB,CAAC,UAAU,EAAE,wBAAwB,CAAC,eAAe,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -0,0 +1,7 @@
1
+ /** Remove stale socket file before bind (Unix domain sockets only). */
2
+ export declare function removeSocketFile(socketPath: string): void;
3
+ /** Restrict socket permissions after bind (Unix only). */
4
+ export declare function secureSocketPath(socketPath: string): void;
5
+ /** Remove socket and pid companion files on shutdown. */
6
+ export declare function cleanupSocketFiles(socketPath: string, pidPath?: string): void;
7
+ //# sourceMappingURL=socket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../src/utils/socket.ts"],"names":[],"mappings":"AAKA,uEAAuE;AACvE,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAOzD;AAED,0DAA0D;AAC1D,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAIzD;AAED,yDAAyD;AACzD,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAS7E"}