@andre.li/memoark 0.3.1 → 0.3.2

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 (497) hide show
  1. package/README.en.md +388 -69
  2. package/README.md +674 -309
  3. package/README.zh-CN.md +816 -0
  4. package/bin/memoark.mjs +7 -2
  5. package/dist/adapters/store.d.ts.map +1 -1
  6. package/dist/adapters/store.js +6 -5
  7. package/dist/adapters/store.js.map +1 -1
  8. package/dist/cli-helpers.d.ts +12 -0
  9. package/dist/cli-helpers.d.ts.map +1 -0
  10. package/dist/cli-helpers.js +11 -0
  11. package/dist/cli-helpers.js.map +1 -0
  12. package/dist/cli.js +682 -126
  13. package/dist/cli.js.map +1 -1
  14. package/dist/collectors/feishu/chat-name-resolver.d.ts +33 -0
  15. package/dist/collectors/feishu/chat-name-resolver.d.ts.map +1 -0
  16. package/dist/collectors/feishu/chat-name-resolver.js +63 -0
  17. package/dist/collectors/feishu/chat-name-resolver.js.map +1 -0
  18. package/dist/collectors/feishu/collector.d.ts +4 -0
  19. package/dist/collectors/feishu/collector.d.ts.map +1 -1
  20. package/dist/collectors/feishu/collector.js +27 -4
  21. package/dist/collectors/feishu/collector.js.map +1 -1
  22. package/dist/collectors/feishu/docs/blocks.d.ts +25 -0
  23. package/dist/collectors/feishu/docs/blocks.d.ts.map +1 -0
  24. package/dist/collectors/feishu/docs/blocks.js +34 -0
  25. package/dist/collectors/feishu/docs/blocks.js.map +1 -0
  26. package/dist/collectors/feishu/docs/candidate.d.ts +17 -0
  27. package/dist/collectors/feishu/docs/candidate.d.ts.map +1 -0
  28. package/dist/collectors/feishu/docs/candidate.js +36 -0
  29. package/dist/collectors/feishu/docs/candidate.js.map +1 -0
  30. package/dist/collectors/feishu/docs/config.d.ts +41 -0
  31. package/dist/collectors/feishu/docs/config.d.ts.map +1 -0
  32. package/dist/collectors/feishu/docs/config.js +30 -0
  33. package/dist/collectors/feishu/docs/config.js.map +1 -0
  34. package/dist/collectors/feishu/docs/decision.d.ts +14 -0
  35. package/dist/collectors/feishu/docs/decision.d.ts.map +1 -0
  36. package/dist/collectors/feishu/docs/decision.js +43 -0
  37. package/dist/collectors/feishu/docs/decision.js.map +1 -0
  38. package/dist/collectors/feishu/docs/full-builder.d.ts +17 -0
  39. package/dist/collectors/feishu/docs/full-builder.d.ts.map +1 -0
  40. package/dist/collectors/feishu/docs/full-builder.js +136 -0
  41. package/dist/collectors/feishu/docs/full-builder.js.map +1 -0
  42. package/dist/collectors/feishu/docs/hash.d.ts +8 -0
  43. package/dist/collectors/feishu/docs/hash.d.ts.map +1 -0
  44. package/dist/collectors/feishu/docs/hash.js +15 -0
  45. package/dist/collectors/feishu/docs/hash.js.map +1 -0
  46. package/dist/collectors/feishu/docs/ingest.d.ts +54 -0
  47. package/dist/collectors/feishu/docs/ingest.d.ts.map +1 -0
  48. package/dist/collectors/feishu/docs/ingest.js +120 -0
  49. package/dist/collectors/feishu/docs/ingest.js.map +1 -0
  50. package/dist/collectors/feishu/docs/llm-json.d.ts +13 -0
  51. package/dist/collectors/feishu/docs/llm-json.d.ts.map +1 -0
  52. package/dist/collectors/feishu/docs/llm-json.js +40 -0
  53. package/dist/collectors/feishu/docs/llm-json.js.map +1 -0
  54. package/dist/collectors/feishu/docs/pointer-builder.d.ts +7 -0
  55. package/dist/collectors/feishu/docs/pointer-builder.d.ts.map +1 -0
  56. package/dist/collectors/feishu/docs/pointer-builder.js +11 -0
  57. package/dist/collectors/feishu/docs/pointer-builder.js.map +1 -0
  58. package/dist/collectors/feishu/docs/render.d.ts +8 -0
  59. package/dist/collectors/feishu/docs/render.d.ts.map +1 -0
  60. package/dist/collectors/feishu/docs/render.js +105 -0
  61. package/dist/collectors/feishu/docs/render.js.map +1 -0
  62. package/dist/collectors/feishu/docs/run.d.ts +37 -0
  63. package/dist/collectors/feishu/docs/run.d.ts.map +1 -0
  64. package/dist/collectors/feishu/docs/run.js +143 -0
  65. package/dist/collectors/feishu/docs/run.js.map +1 -0
  66. package/dist/collectors/feishu/docs/status.d.ts +16 -0
  67. package/dist/collectors/feishu/docs/status.d.ts.map +1 -0
  68. package/dist/collectors/feishu/docs/status.js +24 -0
  69. package/dist/collectors/feishu/docs/status.js.map +1 -0
  70. package/dist/collectors/feishu/docs/store-writer.d.ts +32 -0
  71. package/dist/collectors/feishu/docs/store-writer.d.ts.map +1 -0
  72. package/dist/collectors/feishu/docs/store-writer.js +71 -0
  73. package/dist/collectors/feishu/docs/store-writer.js.map +1 -0
  74. package/dist/collectors/feishu/docs/toc.d.ts +3 -0
  75. package/dist/collectors/feishu/docs/toc.d.ts.map +1 -0
  76. package/dist/collectors/feishu/docs/toc.js +19 -0
  77. package/dist/collectors/feishu/docs/toc.js.map +1 -0
  78. package/dist/collectors/feishu/docs/triggers.d.ts +7 -0
  79. package/dist/collectors/feishu/docs/triggers.d.ts.map +1 -0
  80. package/dist/collectors/feishu/docs/triggers.js +31 -0
  81. package/dist/collectors/feishu/docs/triggers.js.map +1 -0
  82. package/dist/collectors/feishu/docs/types.d.ts +109 -0
  83. package/dist/collectors/feishu/docs/types.d.ts.map +1 -0
  84. package/dist/collectors/feishu/docs/types.js +2 -0
  85. package/dist/collectors/feishu/docs/types.js.map +1 -0
  86. package/dist/collectors/feishu/docs/upgrade-queue.d.ts +19 -0
  87. package/dist/collectors/feishu/docs/upgrade-queue.d.ts.map +1 -0
  88. package/dist/collectors/feishu/docs/upgrade-queue.js +36 -0
  89. package/dist/collectors/feishu/docs/upgrade-queue.js.map +1 -0
  90. package/dist/collectors/feishu/docs/url-parser.d.ts +3 -0
  91. package/dist/collectors/feishu/docs/url-parser.d.ts.map +1 -0
  92. package/dist/collectors/feishu/docs/url-parser.js +39 -0
  93. package/dist/collectors/feishu/docs/url-parser.js.map +1 -0
  94. package/dist/collectors/feishu/docs/walkers.d.ts +24 -0
  95. package/dist/collectors/feishu/docs/walkers.d.ts.map +1 -0
  96. package/dist/collectors/feishu/docs/walkers.js +90 -0
  97. package/dist/collectors/feishu/docs/walkers.js.map +1 -0
  98. package/dist/collectors/feishu/docs/wiki-resolver.d.ts +15 -0
  99. package/dist/collectors/feishu/docs/wiki-resolver.d.ts.map +1 -0
  100. package/dist/collectors/feishu/docs/wiki-resolver.js +24 -0
  101. package/dist/collectors/feishu/docs/wiki-resolver.js.map +1 -0
  102. package/dist/collectors/feishu/lark-cli-client.d.ts +12 -0
  103. package/dist/collectors/feishu/lark-cli-client.d.ts.map +1 -1
  104. package/dist/collectors/feishu/lark-cli-client.js +37 -2
  105. package/dist/collectors/feishu/lark-cli-client.js.map +1 -1
  106. package/dist/collectors/feishu/lark-cli-identity-backend.d.ts +28 -0
  107. package/dist/collectors/feishu/lark-cli-identity-backend.d.ts.map +1 -0
  108. package/dist/collectors/feishu/lark-cli-identity-backend.js +110 -0
  109. package/dist/collectors/feishu/lark-cli-identity-backend.js.map +1 -0
  110. package/dist/collectors/feishu/self-open-id.d.ts +20 -0
  111. package/dist/collectors/feishu/self-open-id.d.ts.map +1 -0
  112. package/dist/collectors/feishu/self-open-id.js +31 -0
  113. package/dist/collectors/feishu/self-open-id.js.map +1 -0
  114. package/dist/collectors/feishu/sources/dm.d.ts.map +1 -1
  115. package/dist/collectors/feishu/sources/dm.js +4 -0
  116. package/dist/collectors/feishu/sources/dm.js.map +1 -1
  117. package/dist/collectors/feishu/sources/mail.d.ts.map +1 -1
  118. package/dist/collectors/feishu/sources/mail.js +18 -20
  119. package/dist/collectors/feishu/sources/mail.js.map +1 -1
  120. package/dist/collectors/feishu/sources/messages.d.ts +2 -0
  121. package/dist/collectors/feishu/sources/messages.d.ts.map +1 -1
  122. package/dist/collectors/feishu/sources/messages.js +28 -1
  123. package/dist/collectors/feishu/sources/messages.js.map +1 -1
  124. package/dist/collectors/feishu/types.d.ts +37 -3
  125. package/dist/collectors/feishu/types.d.ts.map +1 -1
  126. package/dist/collectors/feishu/types.js.map +1 -1
  127. package/dist/config-center/connection-checks.d.ts.map +1 -1
  128. package/dist/config-center/connection-checks.js +1 -1
  129. package/dist/config-center/connection-checks.js.map +1 -1
  130. package/dist/config-center/schema.d.ts.map +1 -1
  131. package/dist/config-center/schema.js +77 -0
  132. package/dist/config-center/schema.js.map +1 -1
  133. package/dist/consolidator/consolidator.d.ts +13 -1
  134. package/dist/consolidator/consolidator.d.ts.map +1 -1
  135. package/dist/consolidator/consolidator.js +12 -2
  136. package/dist/consolidator/consolidator.js.map +1 -1
  137. package/dist/core/canonicalize.js +5 -1
  138. package/dist/core/canonicalize.js.map +1 -1
  139. package/dist/core/config.d.ts +52 -9
  140. package/dist/core/config.d.ts.map +1 -1
  141. package/dist/core/config.js +86 -24
  142. package/dist/core/config.js.map +1 -1
  143. package/dist/core/env-validation.d.ts +9 -0
  144. package/dist/core/env-validation.d.ts.map +1 -0
  145. package/dist/core/env-validation.js +94 -0
  146. package/dist/core/env-validation.js.map +1 -0
  147. package/dist/core/identity-resolver.d.ts +24 -3
  148. package/dist/core/identity-resolver.d.ts.map +1 -1
  149. package/dist/core/identity-resolver.js +147 -2
  150. package/dist/core/identity-resolver.js.map +1 -1
  151. package/dist/core/person-identity.d.ts +124 -0
  152. package/dist/core/person-identity.d.ts.map +1 -0
  153. package/dist/core/person-identity.js +342 -0
  154. package/dist/core/person-identity.js.map +1 -0
  155. package/dist/core/person-slug.d.ts +21 -0
  156. package/dist/core/person-slug.d.ts.map +1 -0
  157. package/dist/core/person-slug.js +93 -0
  158. package/dist/core/person-slug.js.map +1 -0
  159. package/dist/core/pipeline-factory.d.ts +1 -1
  160. package/dist/core/pipeline-factory.d.ts.map +1 -1
  161. package/dist/core/pipeline-factory.js +8 -3
  162. package/dist/core/pipeline-factory.js.map +1 -1
  163. package/dist/core/pipeline.d.ts +16 -0
  164. package/dist/core/pipeline.d.ts.map +1 -1
  165. package/dist/core/pipeline.js +49 -1
  166. package/dist/core/pipeline.js.map +1 -1
  167. package/dist/core/resource-loader.d.ts +2 -0
  168. package/dist/core/resource-loader.d.ts.map +1 -0
  169. package/dist/core/resource-loader.js +12 -0
  170. package/dist/core/resource-loader.js.map +1 -0
  171. package/dist/core/schemas.d.ts +2981 -309
  172. package/dist/core/schemas.d.ts.map +1 -1
  173. package/dist/core/schemas.js +27 -0
  174. package/dist/core/schemas.js.map +1 -1
  175. package/dist/core/signal-scoring.d.ts.map +1 -1
  176. package/dist/core/signal-scoring.js +5 -1
  177. package/dist/core/signal-scoring.js.map +1 -1
  178. package/dist/core/source-ref.d.ts +4 -0
  179. package/dist/core/source-ref.d.ts.map +1 -0
  180. package/dist/core/source-ref.js +24 -0
  181. package/dist/core/source-ref.js.map +1 -0
  182. package/dist/core/state.d.ts +1 -1
  183. package/dist/core/state.d.ts.map +1 -1
  184. package/dist/core/state.js +3 -2
  185. package/dist/core/state.js.map +1 -1
  186. package/dist/core/types.d.ts +34 -6
  187. package/dist/core/types.d.ts.map +1 -1
  188. package/dist/daemon/reload-manager.d.ts +27 -0
  189. package/dist/daemon/reload-manager.d.ts.map +1 -0
  190. package/dist/daemon/reload-manager.js +67 -0
  191. package/dist/daemon/reload-manager.js.map +1 -0
  192. package/dist/daemon/scheduler.d.ts +9 -1
  193. package/dist/daemon/scheduler.d.ts.map +1 -1
  194. package/dist/daemon/scheduler.js +113 -38
  195. package/dist/daemon/scheduler.js.map +1 -1
  196. package/dist/daemon/serve-runtime.d.ts +31 -0
  197. package/dist/daemon/serve-runtime.d.ts.map +1 -0
  198. package/dist/daemon/serve-runtime.js +230 -0
  199. package/dist/daemon/serve-runtime.js.map +1 -0
  200. package/dist/embedded-assets.generated.d.ts.map +1 -1
  201. package/dist/embedded-assets.generated.js +3 -3
  202. package/dist/embedded-assets.generated.js.map +1 -1
  203. package/dist/extractors/playbook-extractor.d.ts +35 -0
  204. package/dist/extractors/playbook-extractor.d.ts.map +1 -0
  205. package/dist/extractors/playbook-extractor.js +98 -0
  206. package/dist/extractors/playbook-extractor.js.map +1 -0
  207. package/dist/extractors/prompts/examples/agent-session.md +257 -0
  208. package/dist/extractors/prompts/signal-extract.md +199 -0
  209. package/dist/extractors/prompts/system.md +45 -0
  210. package/dist/extractors/signal-extractor.d.ts +2 -1
  211. package/dist/extractors/signal-extractor.d.ts.map +1 -1
  212. package/dist/extractors/signal-extractor.js +99 -7
  213. package/dist/extractors/signal-extractor.js.map +1 -1
  214. package/dist/hooks/handlers.d.ts +21 -0
  215. package/dist/hooks/handlers.d.ts.map +1 -0
  216. package/dist/hooks/handlers.js +22 -0
  217. package/dist/hooks/handlers.js.map +1 -0
  218. package/dist/hooks/inject.d.ts +7 -0
  219. package/dist/hooks/inject.d.ts.map +1 -0
  220. package/dist/hooks/inject.js +18 -0
  221. package/dist/hooks/inject.js.map +1 -0
  222. package/dist/hooks/install.d.ts +14 -0
  223. package/dist/hooks/install.d.ts.map +1 -0
  224. package/dist/hooks/install.js +34 -0
  225. package/dist/hooks/install.js.map +1 -0
  226. package/dist/hooks/output.d.ts +19 -0
  227. package/dist/hooks/output.d.ts.map +1 -0
  228. package/dist/hooks/output.js +13 -0
  229. package/dist/hooks/output.js.map +1 -0
  230. package/dist/hooks/recall-client.d.ts +25 -0
  231. package/dist/hooks/recall-client.d.ts.map +1 -0
  232. package/dist/hooks/recall-client.js +56 -0
  233. package/dist/hooks/recall-client.js.map +1 -0
  234. package/dist/hooks/run-event.d.ts +13 -0
  235. package/dist/hooks/run-event.d.ts.map +1 -0
  236. package/dist/hooks/run-event.js +20 -0
  237. package/dist/hooks/run-event.js.map +1 -0
  238. package/dist/hooks/settings-edit.d.ts +10 -0
  239. package/dist/hooks/settings-edit.d.ts.map +1 -0
  240. package/dist/hooks/settings-edit.js +44 -0
  241. package/dist/hooks/settings-edit.js.map +1 -0
  242. package/dist/hooks/writeback.d.ts +12 -0
  243. package/dist/hooks/writeback.d.ts.map +1 -0
  244. package/dist/hooks/writeback.js +48 -0
  245. package/dist/hooks/writeback.js.map +1 -0
  246. package/dist/install/clients/claude-code.d.ts +3 -0
  247. package/dist/install/clients/claude-code.d.ts.map +1 -0
  248. package/dist/install/clients/claude-code.js +30 -0
  249. package/dist/install/clients/claude-code.js.map +1 -0
  250. package/dist/install/clients/claude-desktop.d.ts +3 -0
  251. package/dist/install/clients/claude-desktop.d.ts.map +1 -0
  252. package/dist/install/clients/claude-desktop.js +31 -0
  253. package/dist/install/clients/claude-desktop.js.map +1 -0
  254. package/dist/install/clients/codex.d.ts +3 -0
  255. package/dist/install/clients/codex.d.ts.map +1 -0
  256. package/dist/install/clients/codex.js +32 -0
  257. package/dist/install/clients/codex.js.map +1 -0
  258. package/dist/install/clients/cursor.d.ts +3 -0
  259. package/dist/install/clients/cursor.d.ts.map +1 -0
  260. package/dist/install/clients/cursor.js +35 -0
  261. package/dist/install/clients/cursor.js.map +1 -0
  262. package/dist/install/clients/hermes.d.ts +3 -0
  263. package/dist/install/clients/hermes.d.ts.map +1 -0
  264. package/dist/install/clients/hermes.js +35 -0
  265. package/dist/install/clients/hermes.js.map +1 -0
  266. package/dist/install/clients/index.d.ts +4 -0
  267. package/dist/install/clients/index.d.ts.map +1 -0
  268. package/dist/install/clients/index.js +18 -0
  269. package/dist/install/clients/index.js.map +1 -0
  270. package/dist/install/clients/windsurf.d.ts +3 -0
  271. package/dist/install/clients/windsurf.d.ts.map +1 -0
  272. package/dist/install/clients/windsurf.js +32 -0
  273. package/dist/install/clients/windsurf.js.map +1 -0
  274. package/dist/install/command.d.ts +14 -0
  275. package/dist/install/command.d.ts.map +1 -0
  276. package/dist/install/command.js +34 -0
  277. package/dist/install/command.js.map +1 -0
  278. package/dist/install/directive.d.ts +7 -0
  279. package/dist/install/directive.d.ts.map +1 -0
  280. package/dist/install/directive.js +31 -0
  281. package/dist/install/directive.js.map +1 -0
  282. package/dist/install/index.d.ts +26 -0
  283. package/dist/install/index.d.ts.map +1 -0
  284. package/dist/install/index.js +117 -0
  285. package/dist/install/index.js.map +1 -0
  286. package/dist/install/json-config.d.ts +11 -0
  287. package/dist/install/json-config.d.ts.map +1 -0
  288. package/dist/install/json-config.js +39 -0
  289. package/dist/install/json-config.js.map +1 -0
  290. package/dist/install/marked-block.d.ts +11 -0
  291. package/dist/install/marked-block.d.ts.map +1 -0
  292. package/dist/install/marked-block.js +34 -0
  293. package/dist/install/marked-block.js.map +1 -0
  294. package/dist/install/skill.d.ts +4 -0
  295. package/dist/install/skill.d.ts.map +1 -0
  296. package/dist/install/skill.js +61 -0
  297. package/dist/install/skill.js.map +1 -0
  298. package/dist/install/toml-config.d.ts +4 -0
  299. package/dist/install/toml-config.d.ts.map +1 -0
  300. package/dist/install/toml-config.js +51 -0
  301. package/dist/install/toml-config.js.map +1 -0
  302. package/dist/install/types.d.ts +37 -0
  303. package/dist/install/types.d.ts.map +1 -0
  304. package/dist/install/types.js +4 -0
  305. package/dist/install/types.js.map +1 -0
  306. package/dist/install/yaml-config.d.ts +4 -0
  307. package/dist/install/yaml-config.d.ts.map +1 -0
  308. package/dist/install/yaml-config.js +18 -0
  309. package/dist/install/yaml-config.js.map +1 -0
  310. package/dist/processors/privacy.d.ts +4 -1
  311. package/dist/processors/privacy.d.ts.map +1 -1
  312. package/dist/processors/privacy.js +5 -3
  313. package/dist/processors/privacy.js.map +1 -1
  314. package/dist/profile/accumulate.d.ts +28 -0
  315. package/dist/profile/accumulate.d.ts.map +1 -0
  316. package/dist/profile/accumulate.js +48 -0
  317. package/dist/profile/accumulate.js.map +1 -0
  318. package/dist/profile/behavior.d.ts +32 -0
  319. package/dist/profile/behavior.d.ts.map +1 -0
  320. package/dist/profile/behavior.js +122 -0
  321. package/dist/profile/behavior.js.map +1 -0
  322. package/dist/profile/four-color.d.ts +12 -0
  323. package/dist/profile/four-color.d.ts.map +1 -0
  324. package/dist/profile/four-color.js +39 -0
  325. package/dist/profile/four-color.js.map +1 -0
  326. package/dist/profile/profile-synth.d.ts +27 -0
  327. package/dist/profile/profile-synth.d.ts.map +1 -0
  328. package/dist/profile/profile-synth.js +174 -0
  329. package/dist/profile/profile-synth.js.map +1 -0
  330. package/dist/profile/types.d.ts +84 -0
  331. package/dist/profile/types.d.ts.map +1 -0
  332. package/dist/profile/types.js +11 -0
  333. package/dist/profile/types.js.map +1 -0
  334. package/dist/server/api.d.ts +8 -2
  335. package/dist/server/api.d.ts.map +1 -1
  336. package/dist/server/api.js +69 -34
  337. package/dist/server/api.js.map +1 -1
  338. package/dist/server/backfill-routes.d.ts.map +1 -1
  339. package/dist/server/backfill-routes.js +14 -1
  340. package/dist/server/backfill-routes.js.map +1 -1
  341. package/dist/server/chat-name-refresh-job.d.ts +33 -0
  342. package/dist/server/chat-name-refresh-job.d.ts.map +1 -0
  343. package/dist/server/chat-name-refresh-job.js +120 -0
  344. package/dist/server/chat-name-refresh-job.js.map +1 -0
  345. package/dist/server/chat-name-routes.d.ts +13 -0
  346. package/dist/server/chat-name-routes.d.ts.map +1 -0
  347. package/dist/server/chat-name-routes.js +81 -0
  348. package/dist/server/chat-name-routes.js.map +1 -0
  349. package/dist/server/config-routes.d.ts +2 -0
  350. package/dist/server/config-routes.d.ts.map +1 -1
  351. package/dist/server/config-routes.js +2 -1
  352. package/dist/server/config-routes.js.map +1 -1
  353. package/dist/server/mcp-http.d.ts +26 -0
  354. package/dist/server/mcp-http.d.ts.map +1 -0
  355. package/dist/server/mcp-http.js +102 -0
  356. package/dist/server/mcp-http.js.map +1 -0
  357. package/dist/server/mcp.d.ts +191 -25
  358. package/dist/server/mcp.d.ts.map +1 -1
  359. package/dist/server/mcp.js +1111 -68
  360. package/dist/server/mcp.js.map +1 -1
  361. package/dist/server/open-browser.d.ts +3 -0
  362. package/dist/server/open-browser.d.ts.map +1 -0
  363. package/dist/server/open-browser.js +12 -0
  364. package/dist/server/open-browser.js.map +1 -0
  365. package/dist/server/runtime.d.ts +13 -0
  366. package/dist/server/runtime.d.ts.map +1 -0
  367. package/dist/server/runtime.js +27 -0
  368. package/dist/server/runtime.js.map +1 -0
  369. package/dist/server/setup-server.d.ts.map +1 -1
  370. package/dist/server/setup-server.js +8 -11
  371. package/dist/server/setup-server.js.map +1 -1
  372. package/dist/setup/connection-tests.d.ts +1 -1
  373. package/dist/setup/connection-tests.d.ts.map +1 -1
  374. package/dist/setup/connection-tests.js +4 -2
  375. package/dist/setup/connection-tests.js.map +1 -1
  376. package/dist/setup/generate-config.d.ts.map +1 -1
  377. package/dist/setup/generate-config.js +31 -1
  378. package/dist/setup/generate-config.js.map +1 -1
  379. package/dist/setup/init-wizard.d.ts +1 -0
  380. package/dist/setup/init-wizard.d.ts.map +1 -1
  381. package/dist/setup/init-wizard.js +38 -21
  382. package/dist/setup/init-wizard.js.map +1 -1
  383. package/dist/setup/validate-config.d.ts +5 -1
  384. package/dist/setup/validate-config.d.ts.map +1 -1
  385. package/dist/setup/validate-config.js +18 -0
  386. package/dist/setup/validate-config.js.map +1 -1
  387. package/dist/store/data-dir-lock.d.ts +15 -0
  388. package/dist/store/data-dir-lock.d.ts.map +1 -0
  389. package/dist/store/data-dir-lock.js +96 -0
  390. package/dist/store/data-dir-lock.js.map +1 -0
  391. package/dist/store/database.d.ts +2 -0
  392. package/dist/store/database.d.ts.map +1 -1
  393. package/dist/store/database.js +23 -10
  394. package/dist/store/database.js.map +1 -1
  395. package/dist/store/graph.d.ts +22 -0
  396. package/dist/store/graph.d.ts.map +1 -1
  397. package/dist/store/graph.js +97 -7
  398. package/dist/store/graph.js.map +1 -1
  399. package/dist/store/migrations/index.d.ts.map +1 -1
  400. package/dist/store/migrations/index.js +52 -0
  401. package/dist/store/migrations/index.js.map +1 -1
  402. package/dist/store/pages.d.ts +7 -0
  403. package/dist/store/pages.d.ts.map +1 -1
  404. package/dist/store/pages.js +56 -1
  405. package/dist/store/pages.js.map +1 -1
  406. package/dist/store/person-behavior.d.ts +28 -0
  407. package/dist/store/person-behavior.d.ts.map +1 -0
  408. package/dist/store/person-behavior.js +127 -0
  409. package/dist/store/person-behavior.js.map +1 -0
  410. package/dist/store/pglite-assets.d.ts +15 -0
  411. package/dist/store/pglite-assets.d.ts.map +1 -0
  412. package/dist/store/pglite-assets.js +47 -0
  413. package/dist/store/pglite-assets.js.map +1 -0
  414. package/dist/store/query-rewrite.d.ts +28 -0
  415. package/dist/store/query-rewrite.d.ts.map +1 -0
  416. package/dist/store/query-rewrite.js +97 -0
  417. package/dist/store/query-rewrite.js.map +1 -0
  418. package/dist/store/schema.sql +107 -0
  419. package/dist/store/search.d.ts +36 -8
  420. package/dist/store/search.d.ts.map +1 -1
  421. package/dist/store/search.js +188 -76
  422. package/dist/store/search.js.map +1 -1
  423. package/dist/store/tags.d.ts.map +1 -1
  424. package/dist/store/tags.js +6 -2
  425. package/dist/store/tags.js.map +1 -1
  426. package/dist/store/timeline.d.ts +13 -1
  427. package/dist/store/timeline.d.ts.map +1 -1
  428. package/dist/store/timeline.js +134 -4
  429. package/dist/store/timeline.js.map +1 -1
  430. package/dist/store/trgm-search.d.ts +13 -0
  431. package/dist/store/trgm-search.d.ts.map +1 -0
  432. package/dist/store/trgm-search.js +53 -0
  433. package/dist/store/trgm-search.js.map +1 -0
  434. package/dist/store/wikilink.d.ts +17 -0
  435. package/dist/store/wikilink.d.ts.map +1 -0
  436. package/dist/store/wikilink.js +58 -0
  437. package/dist/store/wikilink.js.map +1 -0
  438. package/dist/sync/obsidian.d.ts.map +1 -1
  439. package/dist/sync/obsidian.js +5 -1
  440. package/dist/sync/obsidian.js.map +1 -1
  441. package/dist/synth/cache.d.ts +17 -0
  442. package/dist/synth/cache.d.ts.map +1 -0
  443. package/dist/synth/cache.js +67 -0
  444. package/dist/synth/cache.js.map +1 -0
  445. package/dist/synth/citations.d.ts +12 -0
  446. package/dist/synth/citations.d.ts.map +1 -0
  447. package/dist/synth/citations.js +28 -0
  448. package/dist/synth/citations.js.map +1 -0
  449. package/dist/synth/context.d.ts +10 -0
  450. package/dist/synth/context.d.ts.map +1 -0
  451. package/dist/synth/context.js +67 -0
  452. package/dist/synth/context.js.map +1 -0
  453. package/dist/synth/engine.d.ts +16 -0
  454. package/dist/synth/engine.d.ts.map +1 -0
  455. package/dist/synth/engine.js +111 -0
  456. package/dist/synth/engine.js.map +1 -0
  457. package/dist/synth/gaps.d.ts +17 -0
  458. package/dist/synth/gaps.d.ts.map +1 -0
  459. package/dist/synth/gaps.js +57 -0
  460. package/dist/synth/gaps.js.map +1 -0
  461. package/dist/synth/index.d.ts +6 -0
  462. package/dist/synth/index.d.ts.map +1 -0
  463. package/dist/synth/index.js +6 -0
  464. package/dist/synth/index.js.map +1 -0
  465. package/dist/synth/intent.d.ts +6 -0
  466. package/dist/synth/intent.d.ts.map +1 -0
  467. package/dist/synth/intent.js +13 -0
  468. package/dist/synth/intent.js.map +1 -0
  469. package/dist/synth/intents/daily-report.d.ts +7 -0
  470. package/dist/synth/intents/daily-report.d.ts.map +1 -0
  471. package/dist/synth/intents/daily-report.js +37 -0
  472. package/dist/synth/intents/daily-report.js.map +1 -0
  473. package/dist/synth/intents/index.d.ts +2 -0
  474. package/dist/synth/intents/index.d.ts.map +1 -0
  475. package/dist/synth/intents/index.js +12 -0
  476. package/dist/synth/intents/index.js.map +1 -0
  477. package/dist/synth/intents/person-strategy.d.ts +40 -0
  478. package/dist/synth/intents/person-strategy.d.ts.map +1 -0
  479. package/dist/synth/intents/person-strategy.js +66 -0
  480. package/dist/synth/intents/person-strategy.js.map +1 -0
  481. package/dist/synth/intents/recall.d.ts +8 -0
  482. package/dist/synth/intents/recall.d.ts.map +1 -0
  483. package/dist/synth/intents/recall.js +26 -0
  484. package/dist/synth/intents/recall.js.map +1 -0
  485. package/dist/synth/intents/troubleshoot.d.ts +11 -0
  486. package/dist/synth/intents/troubleshoot.d.ts.map +1 -0
  487. package/dist/synth/intents/troubleshoot.js +66 -0
  488. package/dist/synth/intents/troubleshoot.js.map +1 -0
  489. package/dist/synth/scope.d.ts +13 -0
  490. package/dist/synth/scope.d.ts.map +1 -0
  491. package/dist/synth/scope.js +139 -0
  492. package/dist/synth/scope.js.map +1 -0
  493. package/dist/synth/types.d.ts +117 -0
  494. package/dist/synth/types.d.ts.map +1 -0
  495. package/dist/synth/types.js +2 -0
  496. package/dist/synth/types.js.map +1 -0
  497. package/package.json +18 -6
@@ -0,0 +1,117 @@
1
+ import { spawnSync } from "node:child_process";
2
+ import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
3
+ import { homedir } from "node:os";
4
+ import { dirname } from "node:path";
5
+ import { ADAPTERS, getAdapter } from "./clients/index.js";
6
+ import { resolveLaunchCmd } from "./command.js";
7
+ import { parseJsonConfig, removeMcpServer, stringifyJsonConfig, upsertMcpServer, } from "./json-config.js";
8
+ import { removeBlock, upsertBlock } from "./marked-block.js";
9
+ import { removeMcpServerToml, upsertMcpServerToml } from "./toml-config.js";
10
+ import { removeMcpServerYaml, upsertMcpServerYaml } from "./yaml-config.js";
11
+ function readFileOr(path, fallback) {
12
+ return existsSync(path) ? readFileSync(path, "utf8") : fallback;
13
+ }
14
+ function ensureDir(dir) {
15
+ if (!existsSync(dir))
16
+ mkdirSync(dir, { recursive: true });
17
+ }
18
+ function applyOp(op) {
19
+ if (op.kind === "cli") {
20
+ spawnSync(op.args[0], op.args.slice(1), { stdio: "ignore" });
21
+ return;
22
+ }
23
+ ensureDir(dirname(op.path));
24
+ switch (op.kind) {
25
+ case "json-mcp": {
26
+ const obj = parseJsonConfig(readFileOr(op.path, ""), op.path);
27
+ const next = op.action === "upsert" && op.entry
28
+ ? upsertMcpServer(obj, "memoark", op.entry)
29
+ : removeMcpServer(obj, "memoark");
30
+ writeFileSync(op.path, stringifyJsonConfig(next));
31
+ break;
32
+ }
33
+ case "toml-mcp": {
34
+ const text = readFileOr(op.path, "");
35
+ const next = op.action === "upsert" && op.entry
36
+ ? upsertMcpServerToml(text, "memoark", op.entry)
37
+ : removeMcpServerToml(text, "memoark");
38
+ writeFileSync(op.path, next);
39
+ break;
40
+ }
41
+ case "yaml-mcp": {
42
+ const text = readFileOr(op.path, "");
43
+ const next = op.action === "upsert" && op.entry
44
+ ? upsertMcpServerYaml(text, "memoark", op.entry)
45
+ : removeMcpServerYaml(text, "memoark");
46
+ writeFileSync(op.path, next);
47
+ break;
48
+ }
49
+ case "marked-block": {
50
+ const text = readFileOr(op.path, "");
51
+ const next = op.action === "upsert" && op.content ? upsertBlock(text, op.content) : removeBlock(text);
52
+ writeFileSync(op.path, next);
53
+ break;
54
+ }
55
+ case "managed-file": {
56
+ if (op.action === "upsert" && op.content) {
57
+ ensureDir(dirname(op.path));
58
+ writeFileSync(op.path, op.content);
59
+ }
60
+ else if (existsSync(op.path)) {
61
+ rmSync(op.path);
62
+ }
63
+ break;
64
+ }
65
+ }
66
+ }
67
+ function selectAdapters(opts) {
68
+ if (opts.agent && opts.agent.length > 0) {
69
+ return opts.agent.map((id) => {
70
+ const a = getAdapter(id);
71
+ if (!a) {
72
+ throw new Error(`Unknown agent "${id}". Known: ${ADAPTERS.map((x) => x.id).join(", ")}`);
73
+ }
74
+ return a;
75
+ });
76
+ }
77
+ const home = opts.home ?? homedir();
78
+ const platform = opts.platform ?? process.platform;
79
+ return ADAPTERS.filter((a) => a.detect(home, platform));
80
+ }
81
+ function planFor(adapter, opts, action) {
82
+ const ctx = {
83
+ home: opts.home ?? homedir(),
84
+ platform: opts.platform ?? process.platform,
85
+ scope: opts.scope ?? "global",
86
+ cwd: opts.cwd ?? process.cwd(),
87
+ launch: opts.launch ?? resolveLaunchCmd({ http: opts.http }),
88
+ action,
89
+ };
90
+ return { id: adapter.id, displayName: adapter.displayName, ops: adapter.plan(ctx) };
91
+ }
92
+ /** Plan without touching disk (for `--dry-run`). */
93
+ export function planInstall(opts, action) {
94
+ return selectAdapters(opts).map((a) => planFor(a, opts, action));
95
+ }
96
+ function execute(opts, action) {
97
+ const planned = planInstall(opts, action);
98
+ if (!opts.dryRun) {
99
+ for (const client of planned) {
100
+ for (const op of client.ops)
101
+ applyOp(op);
102
+ }
103
+ }
104
+ return planned;
105
+ }
106
+ export function runInstall(opts = {}) {
107
+ return execute(opts, "upsert");
108
+ }
109
+ export function runUninstall(opts = {}) {
110
+ return execute(opts, "remove");
111
+ }
112
+ /** Ids of clients detected as installed on this machine. */
113
+ export function detectInstalledAgents(home = homedir(), platform = process.platform) {
114
+ return ADAPTERS.filter((a) => a.detect(home, platform)).map((a) => a.id);
115
+ }
116
+ export { ADAPTERS } from "./clients/index.js";
117
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/install/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACrF,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAkB,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EACL,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5E,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAqB5E,SAAS,UAAU,CAAC,IAAY,EAAE,QAAgB;IAChD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAClE,CAAC;AAED,SAAS,SAAS,CAAC,GAAW;IAC5B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,OAAO,CAAC,EAAa;IAC5B,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QACtB,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC7D,OAAO;IACT,CAAC;IACD,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5B,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QAChB,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,GAAG,GAAG,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;YAC9D,MAAM,IAAI,GACR,EAAE,CAAC,MAAM,KAAK,QAAQ,IAAI,EAAE,CAAC,KAAK;gBAChC,CAAC,CAAC,eAAe,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC;gBAC3C,CAAC,CAAC,eAAe,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YACtC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;YAClD,MAAM;QACR,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,IAAI,GAAG,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACrC,MAAM,IAAI,GACR,EAAE,CAAC,MAAM,KAAK,QAAQ,IAAI,EAAE,CAAC,KAAK;gBAChC,CAAC,CAAC,mBAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC;gBAChD,CAAC,CAAC,mBAAmB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAC3C,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC7B,MAAM;QACR,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,IAAI,GAAG,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACrC,MAAM,IAAI,GACR,EAAE,CAAC,MAAM,KAAK,QAAQ,IAAI,EAAE,CAAC,KAAK;gBAChC,CAAC,CAAC,mBAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC;gBAChD,CAAC,CAAC,mBAAmB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAC3C,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC7B,MAAM;QACR,CAAC;QACD,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,MAAM,IAAI,GAAG,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACrC,MAAM,IAAI,GACR,EAAE,CAAC,MAAM,KAAK,QAAQ,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC3F,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC7B,MAAM;QACR,CAAC;QACD,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,IAAI,EAAE,CAAC,MAAM,KAAK,QAAQ,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;gBACzC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC5B,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;YACrC,CAAC;iBAAM,IAAI,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/B,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;YACD,MAAM;QACR,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,IAAoB;IAC1C,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;YAC3B,MAAM,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;YACzB,IAAI,CAAC,CAAC,EAAE,CAAC;gBACP,MAAM,IAAI,KAAK,CAAC,kBAAkB,EAAE,aAAa,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC3F,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC;IACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;IACnD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,OAAO,CACd,OAAsB,EACtB,IAAoB,EACpB,MAAqB;IAErB,MAAM,GAAG,GAAY;QACnB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,OAAO,EAAE;QAC5B,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ;QAC3C,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,QAAQ;QAC7B,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE;QAC9B,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,gBAAgB,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5D,MAAM;KACP,CAAC;IACF,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AACtF,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,WAAW,CAAC,IAAoB,EAAE,MAAqB;IACrE,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,OAAO,CAAC,IAAoB,EAAE,MAAqB;IAC1D,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC1C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,GAAG;gBAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAAuB,EAAE;IAClD,OAAO,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAuB,EAAE;IACpD,OAAO,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,qBAAqB,CAAC,IAAI,GAAG,OAAO,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ;IACjF,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,11 @@
1
+ export interface McpEntry {
2
+ command: string;
3
+ args: string[];
4
+ }
5
+ type Json = Record<string, unknown>;
6
+ export declare function parseJsonConfig(text: string, path: string): Json;
7
+ export declare function upsertMcpServer(obj: Json, name: string, entry: McpEntry): Json;
8
+ export declare function removeMcpServer(obj: Json, name: string): Json;
9
+ export declare function stringifyJsonConfig(obj: Json): string;
10
+ export {};
11
+ //# sourceMappingURL=json-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-config.d.ts","sourceRoot":"","sources":["../../src/install/json-config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEpC,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAYhE;AAOD,wBAAgB,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI,CAI9E;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAM7D;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,IAAI,GAAG,MAAM,CAErD"}
@@ -0,0 +1,39 @@
1
+ // JSON-based MCP config editing (Claude Code ~/.claude.json, Claude Desktop,
2
+ // Cursor ~/.cursor/mcp.json, Windsurf). Operates on parsed objects; the
3
+ // orchestrator handles file IO. Other keys/servers are preserved.
4
+ export function parseJsonConfig(text, path) {
5
+ const trimmed = text.trim();
6
+ if (trimmed === "")
7
+ return {};
8
+ try {
9
+ const parsed = JSON.parse(trimmed);
10
+ if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed)) {
11
+ throw new Error("expected a top-level JSON object");
12
+ }
13
+ return parsed;
14
+ }
15
+ catch (e) {
16
+ throw new Error(`Invalid JSON in ${path}: ${e.message}`);
17
+ }
18
+ }
19
+ function servers(obj) {
20
+ const mcp = obj.mcpServers;
21
+ return mcp && typeof mcp === "object" && !Array.isArray(mcp) ? { ...mcp } : {};
22
+ }
23
+ export function upsertMcpServer(obj, name, entry) {
24
+ const next = servers(obj);
25
+ next[name] = entry;
26
+ return { ...obj, mcpServers: next };
27
+ }
28
+ export function removeMcpServer(obj, name) {
29
+ const mcp = obj.mcpServers;
30
+ if (!mcp || typeof mcp !== "object" || Array.isArray(mcp))
31
+ return obj;
32
+ const next = { ...mcp };
33
+ delete next[name];
34
+ return { ...obj, mcpServers: next };
35
+ }
36
+ export function stringifyJsonConfig(obj) {
37
+ return `${JSON.stringify(obj, null, 2)}\n`;
38
+ }
39
+ //# sourceMappingURL=json-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-config.js","sourceRoot":"","sources":["../../src/install/json-config.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,wEAAwE;AACxE,kEAAkE;AASlE,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,IAAY;IACxD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,OAAO,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC;IAC9B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3E,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,MAAc,CAAC;IACxB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,KAAM,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IACtE,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,GAAS;IACxB,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC;IAC3B,OAAO,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAI,GAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3F,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAS,EAAE,IAAY,EAAE,KAAe;IACtE,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IACnB,OAAO,EAAE,GAAG,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAS,EAAE,IAAY;IACrD,MAAM,GAAG,GAAG,GAAG,CAAC,UAAU,CAAC;IAC3B,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IACtE,MAAM,IAAI,GAAG,EAAE,GAAI,GAAY,EAAE,CAAC;IAClC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;IAClB,OAAO,EAAE,GAAG,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,GAAS;IAC3C,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;AAC7C,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Insert or replace the memoark block in `existing`.
3
+ * `block` must already include the start/end markers (e.g. DIRECTIVE_L1).
4
+ * Idempotent: re-running with changed content replaces in place, never appends a duplicate.
5
+ */
6
+ export declare function upsertBlock(existing: string, block: string): string;
7
+ /** Remove the memoark block, tidying surrounding whitespace. No-op if absent. */
8
+ export declare function removeBlock(existing: string): string;
9
+ /** True if `existing` already contains a memoark block. */
10
+ export declare function hasBlock(existing: string): boolean;
11
+ //# sourceMappingURL=marked-block.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marked-block.d.ts","sourceRoot":"","sources":["../../src/install/marked-block.ts"],"names":[],"mappings":"AAWA;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAMnE;AAED,iFAAiF;AACjF,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAOpD;AAED,2DAA2D;AAC3D,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAElD"}
@@ -0,0 +1,34 @@
1
+ import { MEMOARK_BLOCK_END, MEMOARK_BLOCK_START } from "./directive.js";
2
+ function escapeRegExp(s) {
3
+ return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
4
+ }
5
+ // Matches a single memoark-delimited block (non-greedy, spans newlines).
6
+ const blockRegex = new RegExp(`${escapeRegExp(MEMOARK_BLOCK_START)}[\\s\\S]*?${escapeRegExp(MEMOARK_BLOCK_END)}`);
7
+ /**
8
+ * Insert or replace the memoark block in `existing`.
9
+ * `block` must already include the start/end markers (e.g. DIRECTIVE_L1).
10
+ * Idempotent: re-running with changed content replaces in place, never appends a duplicate.
11
+ */
12
+ export function upsertBlock(existing, block) {
13
+ if (blockRegex.test(existing)) {
14
+ return existing.replace(blockRegex, block);
15
+ }
16
+ if (existing.trim() === "")
17
+ return `${block}\n`;
18
+ return `${existing.replace(/\s*$/, "")}\n\n${block}\n`;
19
+ }
20
+ /** Remove the memoark block, tidying surrounding whitespace. No-op if absent. */
21
+ export function removeBlock(existing) {
22
+ if (!blockRegex.test(existing))
23
+ return existing;
24
+ const tidied = existing
25
+ .replace(blockRegex, "")
26
+ .replace(/\n{3,}/g, "\n\n")
27
+ .replace(/\s*$/, "");
28
+ return tidied === "" ? "" : `${tidied}\n`;
29
+ }
30
+ /** True if `existing` already contains a memoark block. */
31
+ export function hasBlock(existing) {
32
+ return blockRegex.test(existing);
33
+ }
34
+ //# sourceMappingURL=marked-block.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marked-block.js","sourceRoot":"","sources":["../../src/install/marked-block.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAExE,SAAS,YAAY,CAAC,CAAS;IAC7B,OAAO,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,GAAG,IAAI,MAAM,CAC3B,GAAG,YAAY,CAAC,mBAAmB,CAAC,aAAa,YAAY,CAAC,iBAAiB,CAAC,EAAE,CACnF,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,QAAgB,EAAE,KAAa;IACzD,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,OAAO,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,GAAG,KAAK,IAAI,CAAC;IAChD,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC;AACzD,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,WAAW,CAAC,QAAgB;IAC1C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAChD,MAAM,MAAM,GAAG,QAAQ;SACpB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC;SAC1B,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACvB,OAAO,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC;AAC5C,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,QAAQ,CAAC,QAAgB;IACvC,OAAO,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACnC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const MEMOARK_SKILL = "---\nname: memoark\ndescription: The user's local-first personal memory (people, projects, decisions, tasks, history). Use it to recall who/what/why before answering, and to write durable decisions back.\n---\n\n# Memoark \u2014 your personal memory\n\nMemoark is the user's **local-first** personal memory and the source of truth about their\npeople, projects, decisions, tasks, and history. It is exposed over MCP.\n\n## When to use it\nConsult Memoark **before answering** whenever a request concerns:\n- a specific person or colleague (\"what did X tell me last week?\", \"who is X?\")\n- a project's status / progress / history (\"where is this project at?\", \"what did we decide?\")\n- the user's todos, preferences, or habits\n- anything phrased as recall: \"last week / earlier / last time / what did we\u2026\"\n\nDo **not** consult Memoark for generic questions unrelated to the user's world\n(pure syntax, general algorithms).\n\n## How to query (cheap-first)\n1. `search` \u2014 keyword FTS, zero cost. Start here.\n2. `query` / `recall` \u2014 semantic + cited; only if `search` is thin.\n3. Accept good results; don't over-escalate.\n\nAt the start of a session, call `get_session_context` for a compact digest of active\nprojects, recent decisions, open tasks, and key people.\n\nFor **project-status** questions, combine Memoark (decisions / tasks / timeline) **with**\nrepo reality (git / code) \u2014 don't answer from code alone.\n\n## Tool catalogue\n- **Retrieval**: `query`, `search`, `get_session_context`, `get_entity_profile`, `list_signals_by_entity`\n- **Synthesis**: `recall`, `synthesize`, `prep_for_person`, `daily_report`, `troubleshoot`\n- **Write**: `put_page`, `add_timeline_entry`, `manage_links`, `manage_tags`\n- **Graph / health**: `explore_graph`, `get_health`\n\n## Writing back (conservative)\nOn a clear **decision** or **discovery**, or when the user says \"remember this\", persist it:\n- `put_page(slug=\"decisions/<kebab>\", content=\"---\\ntitle: \u2026\\ntype: decision\\n---\\n<reasoning>\")`\n- `add_timeline_entry` for dated project events.\nSlugs follow stable conventions: `decisions/\u2026`, `entities/\u2026`, `projects/\u2026`. If unsure, ask.\n\n## Examples\n- *\"Where is the memoark project at?\"* \u2192 `get_session_context` + `query(\"memoark \u8FDB\u5C55\")`, then merge with the repo's git/code reality.\n- *\"What did Xu Lizi talk to me about last week?\"* \u2192 `recall(entity=\"entities/xu-lizi\")` or `query(\"\u8BB8\u529B\u5B50 \u4E0A\u5468\")`.\n";
2
+ /** Write the memoark skill into `<dir>/memoark/SKILL.md`. Idempotent. Returns the path. */
3
+ export declare function scaffoldSkill(dir: string): string;
4
+ //# sourceMappingURL=skill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../../src/install/skill.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,aAAa,29EA8CzB,CAAC;AAEF,2FAA2F;AAC3F,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMjD"}
@@ -0,0 +1,61 @@
1
+ import { mkdirSync, writeFileSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ // L3 of the progressive-disclosure stack: the full capability doc, loaded on
4
+ // demand as a skill. Single source of truth for `memoark skill scaffold` and
5
+ // the Hermes adapter.
6
+ export const MEMOARK_SKILL = `---
7
+ name: memoark
8
+ description: The user's local-first personal memory (people, projects, decisions, tasks, history). Use it to recall who/what/why before answering, and to write durable decisions back.
9
+ ---
10
+
11
+ # Memoark — your personal memory
12
+
13
+ Memoark is the user's **local-first** personal memory and the source of truth about their
14
+ people, projects, decisions, tasks, and history. It is exposed over MCP.
15
+
16
+ ## When to use it
17
+ Consult Memoark **before answering** whenever a request concerns:
18
+ - a specific person or colleague ("what did X tell me last week?", "who is X?")
19
+ - a project's status / progress / history ("where is this project at?", "what did we decide?")
20
+ - the user's todos, preferences, or habits
21
+ - anything phrased as recall: "last week / earlier / last time / what did we…"
22
+
23
+ Do **not** consult Memoark for generic questions unrelated to the user's world
24
+ (pure syntax, general algorithms).
25
+
26
+ ## How to query (cheap-first)
27
+ 1. \`search\` — keyword FTS, zero cost. Start here.
28
+ 2. \`query\` / \`recall\` — semantic + cited; only if \`search\` is thin.
29
+ 3. Accept good results; don't over-escalate.
30
+
31
+ At the start of a session, call \`get_session_context\` for a compact digest of active
32
+ projects, recent decisions, open tasks, and key people.
33
+
34
+ For **project-status** questions, combine Memoark (decisions / tasks / timeline) **with**
35
+ repo reality (git / code) — don't answer from code alone.
36
+
37
+ ## Tool catalogue
38
+ - **Retrieval**: \`query\`, \`search\`, \`get_session_context\`, \`get_entity_profile\`, \`list_signals_by_entity\`
39
+ - **Synthesis**: \`recall\`, \`synthesize\`, \`prep_for_person\`, \`daily_report\`, \`troubleshoot\`
40
+ - **Write**: \`put_page\`, \`add_timeline_entry\`, \`manage_links\`, \`manage_tags\`
41
+ - **Graph / health**: \`explore_graph\`, \`get_health\`
42
+
43
+ ## Writing back (conservative)
44
+ On a clear **decision** or **discovery**, or when the user says "remember this", persist it:
45
+ - \`put_page(slug="decisions/<kebab>", content="---\\ntitle: …\\ntype: decision\\n---\\n<reasoning>")\`
46
+ - \`add_timeline_entry\` for dated project events.
47
+ Slugs follow stable conventions: \`decisions/…\`, \`entities/…\`, \`projects/…\`. If unsure, ask.
48
+
49
+ ## Examples
50
+ - *"Where is the memoark project at?"* → \`get_session_context\` + \`query("memoark 进展")\`, then merge with the repo's git/code reality.
51
+ - *"What did Xu Lizi talk to me about last week?"* → \`recall(entity="entities/xu-lizi")\` or \`query("许力子 上周")\`.
52
+ `;
53
+ /** Write the memoark skill into `<dir>/memoark/SKILL.md`. Idempotent. Returns the path. */
54
+ export function scaffoldSkill(dir) {
55
+ const skillDir = join(dir, "memoark");
56
+ mkdirSync(skillDir, { recursive: true });
57
+ const path = join(skillDir, "SKILL.md");
58
+ writeFileSync(path, MEMOARK_SKILL);
59
+ return path;
60
+ }
61
+ //# sourceMappingURL=skill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill.js","sourceRoot":"","sources":["../../src/install/skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,6EAA6E;AAC7E,6EAA6E;AAC7E,sBAAsB;AACtB,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8C5B,CAAC;AAEF,2FAA2F;AAC3F,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACtC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACxC,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACnC,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { McpEntry } from "./json-config.js";
2
+ export declare function upsertMcpServerToml(text: string, name: string, entry: McpEntry): string;
3
+ export declare function removeMcpServerToml(text: string, name: string): string;
4
+ //# sourceMappingURL=toml-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toml-config.d.ts","sourceRoot":"","sources":["../../src/install/toml-config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AA0BjD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,MAAM,CAcvF;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAOtE"}
@@ -0,0 +1,51 @@
1
+ // Minimal TOML editing for Codex ~/.codex/config.toml `[mcp_servers.<name>]`
2
+ // tables. Intentionally dependency-free and scoped to this one table shape;
3
+ // other tables are preserved verbatim.
4
+ function renderTable(header, entry) {
5
+ const args = entry.args.map((a) => JSON.stringify(a)).join(", ");
6
+ return `[${header}]\ncommand = ${JSON.stringify(entry.command)}\nargs = [${args}]`;
7
+ }
8
+ // Returns [startLine, endLineExclusive] of the `[header]` table, or null.
9
+ function findTable(lines, header) {
10
+ const start = lines.findIndex((l) => l.trim() === `[${header}]`);
11
+ if (start === -1)
12
+ return null;
13
+ let end = lines.length;
14
+ for (let i = start + 1; i < lines.length; i++) {
15
+ if (lines[i].trim().startsWith("[")) {
16
+ end = i;
17
+ break;
18
+ }
19
+ }
20
+ return [start, end];
21
+ }
22
+ function normalize(text) {
23
+ const tidied = text.replace(/\n{3,}/g, "\n\n").replace(/\s*$/, "");
24
+ return tidied === "" ? "" : `${tidied}\n`;
25
+ }
26
+ export function upsertMcpServerToml(text, name, entry) {
27
+ const header = `mcp_servers.${name}`;
28
+ const block = renderTable(header, entry);
29
+ const lines = text.split("\n");
30
+ const region = findTable(lines, header);
31
+ if (region) {
32
+ const [start, end] = region;
33
+ let e = end;
34
+ while (e > start + 1 && lines[e - 1].trim() === "")
35
+ e--;
36
+ const rebuilt = [...lines.slice(0, start), ...block.split("\n"), "", ...lines.slice(e)];
37
+ return normalize(rebuilt.join("\n"));
38
+ }
39
+ const base = text.replace(/\s*$/, "");
40
+ return base === "" ? `${block}\n` : `${base}\n\n${block}\n`;
41
+ }
42
+ export function removeMcpServerToml(text, name) {
43
+ const header = `mcp_servers.${name}`;
44
+ const lines = text.split("\n");
45
+ const region = findTable(lines, header);
46
+ if (!region)
47
+ return text;
48
+ const [start, end] = region;
49
+ return normalize([...lines.slice(0, start), ...lines.slice(end)].join("\n"));
50
+ }
51
+ //# sourceMappingURL=toml-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toml-config.js","sourceRoot":"","sources":["../../src/install/toml-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import type { LaunchCmd } from "./command.js";
2
+ import type { McpEntry } from "./json-config.js";
3
+ export type Scope = "global" | "project";
4
+ export type InstallAction = "upsert" | "remove";
5
+ export interface PlanCtx {
6
+ home: string;
7
+ platform: NodeJS.Platform;
8
+ scope: Scope;
9
+ cwd: string;
10
+ launch: LaunchCmd;
11
+ action: InstallAction;
12
+ }
13
+ export type InstallOp = {
14
+ path: string;
15
+ kind: "json-mcp" | "toml-mcp" | "yaml-mcp";
16
+ action: InstallAction;
17
+ entry?: McpEntry;
18
+ } | {
19
+ path: string;
20
+ kind: "marked-block" | "managed-file";
21
+ action: InstallAction;
22
+ content?: string;
23
+ } | {
24
+ kind: "cli";
25
+ action: InstallAction;
26
+ args: string[];
27
+ };
28
+ export interface ClientAdapter {
29
+ id: string;
30
+ displayName: string;
31
+ /** Is this client installed on the machine? */
32
+ detect(home: string, platform: NodeJS.Platform): boolean;
33
+ /** Planned ops for the requested action; never touches disk. */
34
+ plan(ctx: PlanCtx): InstallOp[];
35
+ }
36
+ export declare function mcpEntry(ctx: PlanCtx): McpEntry;
37
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/install/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,MAAM,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;AACzC,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEhD,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC1B,KAAK,EAAE,KAAK,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,aAAa,CAAC;CACvB;AAGD,MAAM,MAAM,SAAS,GACjB;IACE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,UAAU,CAAC;IAC3C,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,CAAC,EAAE,QAAQ,CAAC;CAClB,GACD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,cAAc,GAAG,cAAc,CAAC;IAAC,MAAM,EAAE,aAAa,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAChG;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAE3D,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,+CAA+C;IAC/C,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC;IACzD,gEAAgE;IAChE,IAAI,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS,EAAE,CAAC;CACjC;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,QAAQ,CAE/C"}
@@ -0,0 +1,4 @@
1
+ export function mcpEntry(ctx) {
2
+ return { command: ctx.launch.command, args: ctx.launch.args };
3
+ }
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/install/types.ts"],"names":[],"mappings":"AAmCA,MAAM,UAAU,QAAQ,CAAC,GAAY;IACnC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AAChE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { McpEntry } from "./json-config.js";
2
+ export declare function upsertMcpServerYaml(text: string, name: string, entry: McpEntry): string;
3
+ export declare function removeMcpServerYaml(text: string, name: string): string;
4
+ //# sourceMappingURL=yaml-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yaml-config.d.ts","sourceRoot":"","sources":["../../src/install/yaml-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AASjD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,MAAM,CAIvF;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAItE"}
@@ -0,0 +1,18 @@
1
+ import { Document, parseDocument } from "yaml";
2
+ // Minimal YAML editing for Hermes config.yaml `mcp_servers.<name>`. Uses the
3
+ // Document API so comments and other keys/servers are preserved.
4
+ function load(text) {
5
+ return text?.trim() ? parseDocument(text) : new Document({});
6
+ }
7
+ export function upsertMcpServerYaml(text, name, entry) {
8
+ const doc = load(text);
9
+ doc.setIn(["mcp_servers", name], { command: entry.command, args: [...entry.args] });
10
+ return doc.toString();
11
+ }
12
+ export function removeMcpServerYaml(text, name) {
13
+ const doc = load(text);
14
+ if (doc.hasIn(["mcp_servers", name]))
15
+ doc.deleteIn(["mcp_servers", name]);
16
+ return doc.toString();
17
+ }
18
+ //# sourceMappingURL=yaml-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yaml-config.js","sourceRoot":"","sources":["../../src/install/yaml-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAG/C,6EAA6E;AAC7E,iEAAiE;AAEjE,SAAS,IAAI,CAAC,IAAY;IACxB,OAAO,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,IAAY,EAAE,KAAe;IAC7E,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,GAAG,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpF,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,IAAY;IAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1E,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC"}
@@ -23,11 +23,14 @@ import type { ExtractionResult } from "../core/types.js";
23
23
  export declare class PrivacyProcessor {
24
24
  private config;
25
25
  private redactionMap;
26
+ private stateBase?;
26
27
  private phoneRegex;
27
28
  private idCardRegex;
28
29
  private bankCardRegex;
29
30
  private ipRegex;
30
- constructor(config: PrivacyConfig);
31
+ constructor(config: PrivacyConfig, options?: {
32
+ stateBase?: string;
33
+ });
31
34
  /**
32
35
  * Main entry point - process ExtractionResult and apply redactions
33
36
  */
@@ -1 +1 @@
1
- {"version":3,"file":"privacy.d.ts","sourceRoot":"","sources":["../../src/processors/privacy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,KAAK,EAIV,gBAAgB,EAOjB,MAAM,kBAAkB,CAAC;AAY1B;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,YAAY,CAAwB;IAG5C,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,WAAW,CAAmB;IACtC,OAAO,CAAC,aAAa,CAAgB;IAGrC,OAAO,CAAC,OAAO,CAAyC;gBAE5C,MAAM,EAAE,aAAa;IAIjC;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,gBAAgB,GAAG,gBAAgB;IAkCnD;;OAEG;IACH,OAAO,CAAC,gBAAgB;IASxB;;OAEG;IACH,OAAO,CAAC,aAAa;IAQrB;;OAEG;IACH,OAAO,CAAC,eAAe;IAWvB;;OAEG;IACH,OAAO,CAAC,WAAW;IAQnB;;OAEG;IACH,OAAO,CAAC,WAAW;IAQnB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAWxB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IASxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAWzB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAWxB;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAS9B;;;OAGG;IACH,OAAO,CAAC,UAAU;IA8BlB;;;OAGG;IACH,OAAO,CAAC,cAAc;IA2CtB;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAY1B"}
1
+ {"version":3,"file":"privacy.d.ts","sourceRoot":"","sources":["../../src/processors/privacy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,KAAK,EAIV,gBAAgB,EAOjB,MAAM,kBAAkB,CAAC;AAY1B;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,YAAY,CAAwB;IAC5C,OAAO,CAAC,SAAS,CAAC,CAAS;IAG3B,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,WAAW,CAAmB;IACtC,OAAO,CAAC,aAAa,CAAgB;IAGrC,OAAO,CAAC,OAAO,CAAyC;gBAE5C,MAAM,EAAE,aAAa,EAAE,OAAO,GAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAO;IAKvE;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,gBAAgB,GAAG,gBAAgB;IAkCnD;;OAEG;IACH,OAAO,CAAC,gBAAgB;IASxB;;OAEG;IACH,OAAO,CAAC,aAAa;IAQrB;;OAEG;IACH,OAAO,CAAC,eAAe;IAWvB;;OAEG;IACH,OAAO,CAAC,WAAW;IAQnB;;OAEG;IACH,OAAO,CAAC,WAAW;IAQnB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAWxB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IASxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAWzB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAWxB;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAS9B;;;OAGG;IACH,OAAO,CAAC,UAAU;IA8BlB;;;OAGG;IACH,OAAO,CAAC,cAAc;IA2CtB;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAY1B"}
@@ -23,14 +23,16 @@ import { ensureStateDir, statePath } from "../core/state.js";
23
23
  export class PrivacyProcessor {
24
24
  config;
25
25
  redactionMap = [];
26
+ stateBase;
26
27
  // L1 Patterns
27
28
  phoneRegex = /1[3-9]\d{9}/g;
28
29
  idCardRegex = /\d{17}[\dXx]/g;
29
30
  bankCardRegex = /\d{16,19}/g;
30
31
  // L2 Patterns
31
32
  ipRegex = /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/g;
32
- constructor(config) {
33
+ constructor(config, options = {}) {
33
34
  this.config = config;
35
+ this.stateBase = options.stateBase;
34
36
  }
35
37
  /**
36
38
  * Main entry point - process ExtractionResult and apply redactions
@@ -257,8 +259,8 @@ export class PrivacyProcessor {
257
259
  */
258
260
  writeRedactionMap() {
259
261
  try {
260
- ensureStateDir();
261
- const mapPath = statePath("redaction_map.jsonl");
262
+ ensureStateDir(this.stateBase);
263
+ const mapPath = statePath("redaction_map.jsonl", this.stateBase);
262
264
  for (const entry of this.redactionMap) {
263
265
  appendFileSync(mapPath, `${JSON.stringify(entry)}\n`);
264
266
  }
@@ -1 +1 @@
1
- {"version":3,"file":"privacy.js","sourceRoot":"","sources":["../../src/processors/privacy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"privacy.js","sourceRoot":"","sources":["../../src/processors/privacy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Pipeline-side behavior accumulation (Spec 8 §4.1 / §9).
3
+ *
4
+ * Gated by config.profile: when disabled, nothing is written. Per-person
5
+ * allow/deny lists (canonical slugs) further gate which people are profiled.
6
+ * Group vs DM is inferred from the block channel ("group/..." → group).
7
+ */
8
+ import type { ProfileConfig } from "../core/config.js";
9
+ import type { ConversationBlock } from "../core/types.js";
10
+ import type { PersonBehaviorStore } from "../store/person-behavior.js";
11
+ export interface AccumulateDeps {
12
+ store: PersonBehaviorStore;
13
+ config: ProfileConfig;
14
+ /**
15
+ * Map a message's `contact` (sender id) to its canonical person slug.
16
+ * May be sync or async (e.g. an identity-handle lookup); senders are
17
+ * pre-resolved once per block before the (sync) contribution computation.
18
+ */
19
+ resolveSender: (contact: string) => string | Promise<string>;
20
+ }
21
+ /** Whether a person (by canonical slug) is allowed to be profiled. */
22
+ export declare function isPersonProfilable(slug: string, config: ProfileConfig): boolean;
23
+ /**
24
+ * Accumulate behavior counters for a single conversation block.
25
+ * No-op when profiling is disabled (the pipeline writes 0 rows in that case).
26
+ */
27
+ export declare function accumulateBehavior(block: ConversationBlock, deps: AccumulateDeps): Promise<void>;
28
+ //# sourceMappingURL=accumulate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accumulate.d.ts","sourceRoot":"","sources":["../../src/profile/accumulate.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAGvE,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,mBAAmB,CAAC;IAC3B,MAAM,EAAE,aAAa,CAAC;IACtB;;;;OAIG;IACH,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9D;AAED,sEAAsE;AACtE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAI/E;AAMD;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,iBAAiB,EACxB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,IAAI,CAAC,CAuBf"}