memkin 0.4.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 (914) hide show
  1. package/LICENSE +191 -0
  2. package/README.en.md +934 -0
  3. package/README.md +934 -0
  4. package/README.zh-CN.md +825 -0
  5. package/bin/memkin.mjs +41 -0
  6. package/dist/adapters/file.d.ts +19 -0
  7. package/dist/adapters/file.d.ts.map +1 -0
  8. package/dist/adapters/file.js +61 -0
  9. package/dist/adapters/file.js.map +1 -0
  10. package/dist/adapters/gbrain.d.ts +29 -0
  11. package/dist/adapters/gbrain.d.ts.map +1 -0
  12. package/dist/adapters/gbrain.js +622 -0
  13. package/dist/adapters/gbrain.js.map +1 -0
  14. package/dist/adapters/index.d.ts +6 -0
  15. package/dist/adapters/index.d.ts.map +1 -0
  16. package/dist/adapters/index.js +5 -0
  17. package/dist/adapters/index.js.map +1 -0
  18. package/dist/adapters/registry.d.ts +18 -0
  19. package/dist/adapters/registry.d.ts.map +1 -0
  20. package/dist/adapters/registry.js +18 -0
  21. package/dist/adapters/registry.js.map +1 -0
  22. package/dist/adapters/stdout.d.ts +12 -0
  23. package/dist/adapters/stdout.d.ts.map +1 -0
  24. package/dist/adapters/stdout.js +29 -0
  25. package/dist/adapters/stdout.js.map +1 -0
  26. package/dist/adapters/store.d.ts +47 -0
  27. package/dist/adapters/store.d.ts.map +1 -0
  28. package/dist/adapters/store.js +642 -0
  29. package/dist/adapters/store.js.map +1 -0
  30. package/dist/cli-helpers.d.ts +12 -0
  31. package/dist/cli-helpers.d.ts.map +1 -0
  32. package/dist/cli-helpers.js +11 -0
  33. package/dist/cli-helpers.js.map +1 -0
  34. package/dist/cli-stores.d.ts +61 -0
  35. package/dist/cli-stores.d.ts.map +1 -0
  36. package/dist/cli-stores.js +130 -0
  37. package/dist/cli-stores.js.map +1 -0
  38. package/dist/cli.d.ts +2 -0
  39. package/dist/cli.d.ts.map +1 -0
  40. package/dist/cli.js +1579 -0
  41. package/dist/cli.js.map +1 -0
  42. package/dist/collectors/agent/claude-code.d.ts +12 -0
  43. package/dist/collectors/agent/claude-code.d.ts.map +1 -0
  44. package/dist/collectors/agent/claude-code.js +94 -0
  45. package/dist/collectors/agent/claude-code.js.map +1 -0
  46. package/dist/collectors/agent/codex.d.ts +16 -0
  47. package/dist/collectors/agent/codex.d.ts.map +1 -0
  48. package/dist/collectors/agent/codex.js +149 -0
  49. package/dist/collectors/agent/codex.js.map +1 -0
  50. package/dist/collectors/agent/collector.d.ts +20 -0
  51. package/dist/collectors/agent/collector.d.ts.map +1 -0
  52. package/dist/collectors/agent/collector.js +108 -0
  53. package/dist/collectors/agent/collector.js.map +1 -0
  54. package/dist/collectors/agent/hermes.d.ts +13 -0
  55. package/dist/collectors/agent/hermes.d.ts.map +1 -0
  56. package/dist/collectors/agent/hermes.js +90 -0
  57. package/dist/collectors/agent/hermes.js.map +1 -0
  58. package/dist/collectors/agent/index.d.ts +6 -0
  59. package/dist/collectors/agent/index.d.ts.map +1 -0
  60. package/dist/collectors/agent/index.js +5 -0
  61. package/dist/collectors/agent/index.js.map +1 -0
  62. package/dist/collectors/agent/types.d.ts +61 -0
  63. package/dist/collectors/agent/types.d.ts.map +1 -0
  64. package/dist/collectors/agent/types.js +6 -0
  65. package/dist/collectors/agent/types.js.map +1 -0
  66. package/dist/collectors/feishu/auth.d.ts +13 -0
  67. package/dist/collectors/feishu/auth.d.ts.map +1 -0
  68. package/dist/collectors/feishu/auth.js +72 -0
  69. package/dist/collectors/feishu/auth.js.map +1 -0
  70. package/dist/collectors/feishu/chat-name-resolver.d.ts +33 -0
  71. package/dist/collectors/feishu/chat-name-resolver.d.ts.map +1 -0
  72. package/dist/collectors/feishu/chat-name-resolver.js +63 -0
  73. package/dist/collectors/feishu/chat-name-resolver.js.map +1 -0
  74. package/dist/collectors/feishu/collector.d.ts +27 -0
  75. package/dist/collectors/feishu/collector.d.ts.map +1 -0
  76. package/dist/collectors/feishu/collector.js +136 -0
  77. package/dist/collectors/feishu/collector.js.map +1 -0
  78. package/dist/collectors/feishu/cursor-staging.d.ts +11 -0
  79. package/dist/collectors/feishu/cursor-staging.d.ts.map +1 -0
  80. package/dist/collectors/feishu/cursor-staging.js +37 -0
  81. package/dist/collectors/feishu/cursor-staging.js.map +1 -0
  82. package/dist/collectors/feishu/docs/blocks.d.ts +25 -0
  83. package/dist/collectors/feishu/docs/blocks.d.ts.map +1 -0
  84. package/dist/collectors/feishu/docs/blocks.js +34 -0
  85. package/dist/collectors/feishu/docs/blocks.js.map +1 -0
  86. package/dist/collectors/feishu/docs/candidate.d.ts +17 -0
  87. package/dist/collectors/feishu/docs/candidate.d.ts.map +1 -0
  88. package/dist/collectors/feishu/docs/candidate.js +36 -0
  89. package/dist/collectors/feishu/docs/candidate.js.map +1 -0
  90. package/dist/collectors/feishu/docs/config.d.ts +41 -0
  91. package/dist/collectors/feishu/docs/config.d.ts.map +1 -0
  92. package/dist/collectors/feishu/docs/config.js +30 -0
  93. package/dist/collectors/feishu/docs/config.js.map +1 -0
  94. package/dist/collectors/feishu/docs/decision.d.ts +14 -0
  95. package/dist/collectors/feishu/docs/decision.d.ts.map +1 -0
  96. package/dist/collectors/feishu/docs/decision.js +43 -0
  97. package/dist/collectors/feishu/docs/decision.js.map +1 -0
  98. package/dist/collectors/feishu/docs/full-builder.d.ts +17 -0
  99. package/dist/collectors/feishu/docs/full-builder.d.ts.map +1 -0
  100. package/dist/collectors/feishu/docs/full-builder.js +136 -0
  101. package/dist/collectors/feishu/docs/full-builder.js.map +1 -0
  102. package/dist/collectors/feishu/docs/hash.d.ts +8 -0
  103. package/dist/collectors/feishu/docs/hash.d.ts.map +1 -0
  104. package/dist/collectors/feishu/docs/hash.js +15 -0
  105. package/dist/collectors/feishu/docs/hash.js.map +1 -0
  106. package/dist/collectors/feishu/docs/ingest.d.ts +54 -0
  107. package/dist/collectors/feishu/docs/ingest.d.ts.map +1 -0
  108. package/dist/collectors/feishu/docs/ingest.js +120 -0
  109. package/dist/collectors/feishu/docs/ingest.js.map +1 -0
  110. package/dist/collectors/feishu/docs/llm-json.d.ts +13 -0
  111. package/dist/collectors/feishu/docs/llm-json.d.ts.map +1 -0
  112. package/dist/collectors/feishu/docs/llm-json.js +40 -0
  113. package/dist/collectors/feishu/docs/llm-json.js.map +1 -0
  114. package/dist/collectors/feishu/docs/pointer-builder.d.ts +7 -0
  115. package/dist/collectors/feishu/docs/pointer-builder.d.ts.map +1 -0
  116. package/dist/collectors/feishu/docs/pointer-builder.js +11 -0
  117. package/dist/collectors/feishu/docs/pointer-builder.js.map +1 -0
  118. package/dist/collectors/feishu/docs/render.d.ts +8 -0
  119. package/dist/collectors/feishu/docs/render.d.ts.map +1 -0
  120. package/dist/collectors/feishu/docs/render.js +105 -0
  121. package/dist/collectors/feishu/docs/render.js.map +1 -0
  122. package/dist/collectors/feishu/docs/run.d.ts +37 -0
  123. package/dist/collectors/feishu/docs/run.d.ts.map +1 -0
  124. package/dist/collectors/feishu/docs/run.js +143 -0
  125. package/dist/collectors/feishu/docs/run.js.map +1 -0
  126. package/dist/collectors/feishu/docs/status.d.ts +16 -0
  127. package/dist/collectors/feishu/docs/status.d.ts.map +1 -0
  128. package/dist/collectors/feishu/docs/status.js +24 -0
  129. package/dist/collectors/feishu/docs/status.js.map +1 -0
  130. package/dist/collectors/feishu/docs/store-writer.d.ts +32 -0
  131. package/dist/collectors/feishu/docs/store-writer.d.ts.map +1 -0
  132. package/dist/collectors/feishu/docs/store-writer.js +71 -0
  133. package/dist/collectors/feishu/docs/store-writer.js.map +1 -0
  134. package/dist/collectors/feishu/docs/toc.d.ts +3 -0
  135. package/dist/collectors/feishu/docs/toc.d.ts.map +1 -0
  136. package/dist/collectors/feishu/docs/toc.js +19 -0
  137. package/dist/collectors/feishu/docs/toc.js.map +1 -0
  138. package/dist/collectors/feishu/docs/triggers.d.ts +7 -0
  139. package/dist/collectors/feishu/docs/triggers.d.ts.map +1 -0
  140. package/dist/collectors/feishu/docs/triggers.js +31 -0
  141. package/dist/collectors/feishu/docs/triggers.js.map +1 -0
  142. package/dist/collectors/feishu/docs/types.d.ts +109 -0
  143. package/dist/collectors/feishu/docs/types.d.ts.map +1 -0
  144. package/dist/collectors/feishu/docs/types.js +2 -0
  145. package/dist/collectors/feishu/docs/types.js.map +1 -0
  146. package/dist/collectors/feishu/docs/upgrade-queue.d.ts +19 -0
  147. package/dist/collectors/feishu/docs/upgrade-queue.d.ts.map +1 -0
  148. package/dist/collectors/feishu/docs/upgrade-queue.js +36 -0
  149. package/dist/collectors/feishu/docs/upgrade-queue.js.map +1 -0
  150. package/dist/collectors/feishu/docs/url-parser.d.ts +3 -0
  151. package/dist/collectors/feishu/docs/url-parser.d.ts.map +1 -0
  152. package/dist/collectors/feishu/docs/url-parser.js +39 -0
  153. package/dist/collectors/feishu/docs/url-parser.js.map +1 -0
  154. package/dist/collectors/feishu/docs/walkers.d.ts +24 -0
  155. package/dist/collectors/feishu/docs/walkers.d.ts.map +1 -0
  156. package/dist/collectors/feishu/docs/walkers.js +90 -0
  157. package/dist/collectors/feishu/docs/walkers.js.map +1 -0
  158. package/dist/collectors/feishu/docs/wiki-resolver.d.ts +15 -0
  159. package/dist/collectors/feishu/docs/wiki-resolver.d.ts.map +1 -0
  160. package/dist/collectors/feishu/docs/wiki-resolver.js +24 -0
  161. package/dist/collectors/feishu/docs/wiki-resolver.js.map +1 -0
  162. package/dist/collectors/feishu/http-client.d.ts +26 -0
  163. package/dist/collectors/feishu/http-client.d.ts.map +1 -0
  164. package/dist/collectors/feishu/http-client.js +94 -0
  165. package/dist/collectors/feishu/http-client.js.map +1 -0
  166. package/dist/collectors/feishu/index.d.ts +3 -0
  167. package/dist/collectors/feishu/index.d.ts.map +1 -0
  168. package/dist/collectors/feishu/index.js +2 -0
  169. package/dist/collectors/feishu/index.js.map +1 -0
  170. package/dist/collectors/feishu/lark-cli-client.d.ts +28 -0
  171. package/dist/collectors/feishu/lark-cli-client.d.ts.map +1 -0
  172. package/dist/collectors/feishu/lark-cli-client.js +104 -0
  173. package/dist/collectors/feishu/lark-cli-client.js.map +1 -0
  174. package/dist/collectors/feishu/lark-cli-identity-backend.d.ts +28 -0
  175. package/dist/collectors/feishu/lark-cli-identity-backend.d.ts.map +1 -0
  176. package/dist/collectors/feishu/lark-cli-identity-backend.js +110 -0
  177. package/dist/collectors/feishu/lark-cli-identity-backend.js.map +1 -0
  178. package/dist/collectors/feishu/rate-limiter.d.ts +10 -0
  179. package/dist/collectors/feishu/rate-limiter.d.ts.map +1 -0
  180. package/dist/collectors/feishu/rate-limiter.js +33 -0
  181. package/dist/collectors/feishu/rate-limiter.js.map +1 -0
  182. package/dist/collectors/feishu/self-open-id.d.ts +20 -0
  183. package/dist/collectors/feishu/self-open-id.d.ts.map +1 -0
  184. package/dist/collectors/feishu/self-open-id.js +31 -0
  185. package/dist/collectors/feishu/self-open-id.js.map +1 -0
  186. package/dist/collectors/feishu/sources/base.d.ts +9 -0
  187. package/dist/collectors/feishu/sources/base.d.ts.map +1 -0
  188. package/dist/collectors/feishu/sources/base.js +2 -0
  189. package/dist/collectors/feishu/sources/base.js.map +1 -0
  190. package/dist/collectors/feishu/sources/calendar.d.ts +16 -0
  191. package/dist/collectors/feishu/sources/calendar.d.ts.map +1 -0
  192. package/dist/collectors/feishu/sources/calendar.js +98 -0
  193. package/dist/collectors/feishu/sources/calendar.js.map +1 -0
  194. package/dist/collectors/feishu/sources/dm.d.ts +28 -0
  195. package/dist/collectors/feishu/sources/dm.d.ts.map +1 -0
  196. package/dist/collectors/feishu/sources/dm.js +156 -0
  197. package/dist/collectors/feishu/sources/dm.js.map +1 -0
  198. package/dist/collectors/feishu/sources/mail.d.ts +27 -0
  199. package/dist/collectors/feishu/sources/mail.d.ts.map +1 -0
  200. package/dist/collectors/feishu/sources/mail.js +149 -0
  201. package/dist/collectors/feishu/sources/mail.js.map +1 -0
  202. package/dist/collectors/feishu/sources/message-search.d.ts +37 -0
  203. package/dist/collectors/feishu/sources/message-search.d.ts.map +1 -0
  204. package/dist/collectors/feishu/sources/message-search.js +140 -0
  205. package/dist/collectors/feishu/sources/message-search.js.map +1 -0
  206. package/dist/collectors/feishu/sources/messages.d.ts +28 -0
  207. package/dist/collectors/feishu/sources/messages.d.ts.map +1 -0
  208. package/dist/collectors/feishu/sources/messages.js +175 -0
  209. package/dist/collectors/feishu/sources/messages.js.map +1 -0
  210. package/dist/collectors/feishu/sources/tasks.d.ts +15 -0
  211. package/dist/collectors/feishu/sources/tasks.d.ts.map +1 -0
  212. package/dist/collectors/feishu/sources/tasks.js +74 -0
  213. package/dist/collectors/feishu/sources/tasks.js.map +1 -0
  214. package/dist/collectors/feishu/types.d.ts +258 -0
  215. package/dist/collectors/feishu/types.d.ts.map +1 -0
  216. package/dist/collectors/feishu/types.js +17 -0
  217. package/dist/collectors/feishu/types.js.map +1 -0
  218. package/dist/collectors/index.d.ts +10 -0
  219. package/dist/collectors/index.d.ts.map +1 -0
  220. package/dist/collectors/index.js +18 -0
  221. package/dist/collectors/index.js.map +1 -0
  222. package/dist/config-center/connection-checks.d.ts +28 -0
  223. package/dist/config-center/connection-checks.d.ts.map +1 -0
  224. package/dist/config-center/connection-checks.js +114 -0
  225. package/dist/config-center/connection-checks.js.map +1 -0
  226. package/dist/config-center/document.d.ts +21 -0
  227. package/dist/config-center/document.d.ts.map +1 -0
  228. package/dist/config-center/document.js +93 -0
  229. package/dist/config-center/document.js.map +1 -0
  230. package/dist/config-center/index.d.ts +9 -0
  231. package/dist/config-center/index.d.ts.map +1 -0
  232. package/dist/config-center/index.js +29 -0
  233. package/dist/config-center/index.js.map +1 -0
  234. package/dist/config-center/recommendations.d.ts +16 -0
  235. package/dist/config-center/recommendations.d.ts.map +1 -0
  236. package/dist/config-center/recommendations.js +50 -0
  237. package/dist/config-center/recommendations.js.map +1 -0
  238. package/dist/config-center/reducer.d.ts +57 -0
  239. package/dist/config-center/reducer.d.ts.map +1 -0
  240. package/dist/config-center/reducer.js +192 -0
  241. package/dist/config-center/reducer.js.map +1 -0
  242. package/dist/config-center/schema.d.ts +31 -0
  243. package/dist/config-center/schema.d.ts.map +1 -0
  244. package/dist/config-center/schema.js +442 -0
  245. package/dist/config-center/schema.js.map +1 -0
  246. package/dist/config-center/secrets.d.ts +9 -0
  247. package/dist/config-center/secrets.d.ts.map +1 -0
  248. package/dist/config-center/secrets.js +51 -0
  249. package/dist/config-center/secrets.js.map +1 -0
  250. package/dist/config-center/source-dirs.d.ts +16 -0
  251. package/dist/config-center/source-dirs.d.ts.map +1 -0
  252. package/dist/config-center/source-dirs.js +81 -0
  253. package/dist/config-center/source-dirs.js.map +1 -0
  254. package/dist/config-center/tui/app.d.ts +22 -0
  255. package/dist/config-center/tui/app.d.ts.map +1 -0
  256. package/dist/config-center/tui/app.js +142 -0
  257. package/dist/config-center/tui/app.js.map +1 -0
  258. package/dist/config-center/tui/render.d.ts +20 -0
  259. package/dist/config-center/tui/render.d.ts.map +1 -0
  260. package/dist/config-center/tui/render.js +166 -0
  261. package/dist/config-center/tui/render.js.map +1 -0
  262. package/dist/config-center/validation.d.ts +9 -0
  263. package/dist/config-center/validation.d.ts.map +1 -0
  264. package/dist/config-center/validation.js +59 -0
  265. package/dist/config-center/validation.js.map +1 -0
  266. package/dist/consolidator/consolidator.d.ts +43 -0
  267. package/dist/consolidator/consolidator.d.ts.map +1 -0
  268. package/dist/consolidator/consolidator.js +67 -0
  269. package/dist/consolidator/consolidator.js.map +1 -0
  270. package/dist/consolidator/dead-link.d.ts +7 -0
  271. package/dist/consolidator/dead-link.d.ts.map +1 -0
  272. package/dist/consolidator/dead-link.js +57 -0
  273. package/dist/consolidator/dead-link.js.map +1 -0
  274. package/dist/consolidator/hot-warm.d.ts +9 -0
  275. package/dist/consolidator/hot-warm.d.ts.map +1 -0
  276. package/dist/consolidator/hot-warm.js +88 -0
  277. package/dist/consolidator/hot-warm.js.map +1 -0
  278. package/dist/consolidator/infer-preferences.d.ts +14 -0
  279. package/dist/consolidator/infer-preferences.d.ts.map +1 -0
  280. package/dist/consolidator/infer-preferences.js +73 -0
  281. package/dist/consolidator/infer-preferences.js.map +1 -0
  282. package/dist/consolidator/rules.d.ts +5 -0
  283. package/dist/consolidator/rules.d.ts.map +1 -0
  284. package/dist/consolidator/rules.js +53 -0
  285. package/dist/consolidator/rules.js.map +1 -0
  286. package/dist/consolidator/warm-cold.d.ts +13 -0
  287. package/dist/consolidator/warm-cold.d.ts.map +1 -0
  288. package/dist/consolidator/warm-cold.js +91 -0
  289. package/dist/consolidator/warm-cold.js.map +1 -0
  290. package/dist/core/block-builder.d.ts +15 -0
  291. package/dist/core/block-builder.d.ts.map +1 -0
  292. package/dist/core/block-builder.js +185 -0
  293. package/dist/core/block-builder.js.map +1 -0
  294. package/dist/core/canonicalize.d.ts +3 -0
  295. package/dist/core/canonicalize.d.ts.map +1 -0
  296. package/dist/core/canonicalize.js +141 -0
  297. package/dist/core/canonicalize.js.map +1 -0
  298. package/dist/core/concurrency.d.ts +2 -0
  299. package/dist/core/concurrency.d.ts.map +1 -0
  300. package/dist/core/concurrency.js +14 -0
  301. package/dist/core/concurrency.js.map +1 -0
  302. package/dist/core/config.d.ts +257 -0
  303. package/dist/core/config.d.ts.map +1 -0
  304. package/dist/core/config.js +247 -0
  305. package/dist/core/config.js.map +1 -0
  306. package/dist/core/cursors.d.ts +36 -0
  307. package/dist/core/cursors.d.ts.map +1 -0
  308. package/dist/core/cursors.js +90 -0
  309. package/dist/core/cursors.js.map +1 -0
  310. package/dist/core/dedup.d.ts +45 -0
  311. package/dist/core/dedup.d.ts.map +1 -0
  312. package/dist/core/dedup.js +111 -0
  313. package/dist/core/dedup.js.map +1 -0
  314. package/dist/core/entity-extract.d.ts +3 -0
  315. package/dist/core/entity-extract.d.ts.map +1 -0
  316. package/dist/core/entity-extract.js +54 -0
  317. package/dist/core/entity-extract.js.map +1 -0
  318. package/dist/core/env-validation.d.ts +9 -0
  319. package/dist/core/env-validation.d.ts.map +1 -0
  320. package/dist/core/env-validation.js +94 -0
  321. package/dist/core/env-validation.js.map +1 -0
  322. package/dist/core/helpers.d.ts +3 -0
  323. package/dist/core/helpers.d.ts.map +1 -0
  324. package/dist/core/helpers.js +10 -0
  325. package/dist/core/helpers.js.map +1 -0
  326. package/dist/core/identity-resolver.d.ts +42 -0
  327. package/dist/core/identity-resolver.d.ts.map +1 -0
  328. package/dist/core/identity-resolver.js +207 -0
  329. package/dist/core/identity-resolver.js.map +1 -0
  330. package/dist/core/person-identity.d.ts +140 -0
  331. package/dist/core/person-identity.d.ts.map +1 -0
  332. package/dist/core/person-identity.js +428 -0
  333. package/dist/core/person-identity.js.map +1 -0
  334. package/dist/core/person-slug.d.ts +21 -0
  335. package/dist/core/person-slug.d.ts.map +1 -0
  336. package/dist/core/person-slug.js +93 -0
  337. package/dist/core/person-slug.js.map +1 -0
  338. package/dist/core/pipeline-factory.d.ts +13 -0
  339. package/dist/core/pipeline-factory.d.ts.map +1 -0
  340. package/dist/core/pipeline-factory.js +37 -0
  341. package/dist/core/pipeline-factory.js.map +1 -0
  342. package/dist/core/pipeline.d.ts +77 -0
  343. package/dist/core/pipeline.d.ts.map +1 -0
  344. package/dist/core/pipeline.js +332 -0
  345. package/dist/core/pipeline.js.map +1 -0
  346. package/dist/core/resource-loader.d.ts +2 -0
  347. package/dist/core/resource-loader.d.ts.map +1 -0
  348. package/dist/core/resource-loader.js +12 -0
  349. package/dist/core/resource-loader.js.map +1 -0
  350. package/dist/core/schemas.d.ts +5142 -0
  351. package/dist/core/schemas.d.ts.map +1 -0
  352. package/dist/core/schemas.js +256 -0
  353. package/dist/core/schemas.js.map +1 -0
  354. package/dist/core/signal-scoring.d.ts +3 -0
  355. package/dist/core/signal-scoring.d.ts.map +1 -0
  356. package/dist/core/signal-scoring.js +128 -0
  357. package/dist/core/signal-scoring.js.map +1 -0
  358. package/dist/core/source-ref.d.ts +4 -0
  359. package/dist/core/source-ref.d.ts.map +1 -0
  360. package/dist/core/source-ref.js +24 -0
  361. package/dist/core/source-ref.js.map +1 -0
  362. package/dist/core/state.d.ts +22 -0
  363. package/dist/core/state.d.ts.map +1 -0
  364. package/dist/core/state.js +33 -0
  365. package/dist/core/state.js.map +1 -0
  366. package/dist/core/types.d.ts +266 -0
  367. package/dist/core/types.d.ts.map +1 -0
  368. package/dist/core/types.js +6 -0
  369. package/dist/core/types.js.map +1 -0
  370. package/dist/daemon/alerts.d.ts +12 -0
  371. package/dist/daemon/alerts.d.ts.map +1 -0
  372. package/dist/daemon/alerts.js +34 -0
  373. package/dist/daemon/alerts.js.map +1 -0
  374. package/dist/daemon/autostart/argv.d.ts +21 -0
  375. package/dist/daemon/autostart/argv.d.ts.map +1 -0
  376. package/dist/daemon/autostart/argv.js +37 -0
  377. package/dist/daemon/autostart/argv.js.map +1 -0
  378. package/dist/daemon/autostart/daemon-state.d.ts +19 -0
  379. package/dist/daemon/autostart/daemon-state.d.ts.map +1 -0
  380. package/dist/daemon/autostart/daemon-state.js +34 -0
  381. package/dist/daemon/autostart/daemon-state.js.map +1 -0
  382. package/dist/daemon/autostart/index.d.ts +40 -0
  383. package/dist/daemon/autostart/index.d.ts.map +1 -0
  384. package/dist/daemon/autostart/index.js +146 -0
  385. package/dist/daemon/autostart/index.js.map +1 -0
  386. package/dist/daemon/autostart/launchd.d.ts +13 -0
  387. package/dist/daemon/autostart/launchd.d.ts.map +1 -0
  388. package/dist/daemon/autostart/launchd.js +51 -0
  389. package/dist/daemon/autostart/launchd.js.map +1 -0
  390. package/dist/daemon/autostart/runner.d.ts +14 -0
  391. package/dist/daemon/autostart/runner.d.ts.map +1 -0
  392. package/dist/daemon/autostart/runner.js +30 -0
  393. package/dist/daemon/autostart/runner.js.map +1 -0
  394. package/dist/daemon/autostart/systemd.d.ts +11 -0
  395. package/dist/daemon/autostart/systemd.d.ts.map +1 -0
  396. package/dist/daemon/autostart/systemd.js +40 -0
  397. package/dist/daemon/autostart/systemd.js.map +1 -0
  398. package/dist/daemon/index.d.ts +6 -0
  399. package/dist/daemon/index.d.ts.map +1 -0
  400. package/dist/daemon/index.js +6 -0
  401. package/dist/daemon/index.js.map +1 -0
  402. package/dist/daemon/logger.d.ts +8 -0
  403. package/dist/daemon/logger.d.ts.map +1 -0
  404. package/dist/daemon/logger.js +35 -0
  405. package/dist/daemon/logger.js.map +1 -0
  406. package/dist/daemon/reload-manager.d.ts +41 -0
  407. package/dist/daemon/reload-manager.d.ts.map +1 -0
  408. package/dist/daemon/reload-manager.js +89 -0
  409. package/dist/daemon/reload-manager.js.map +1 -0
  410. package/dist/daemon/run-history.d.ts +29 -0
  411. package/dist/daemon/run-history.d.ts.map +1 -0
  412. package/dist/daemon/run-history.js +54 -0
  413. package/dist/daemon/run-history.js.map +1 -0
  414. package/dist/daemon/scheduler.d.ts +45 -0
  415. package/dist/daemon/scheduler.d.ts.map +1 -0
  416. package/dist/daemon/scheduler.js +217 -0
  417. package/dist/daemon/scheduler.js.map +1 -0
  418. package/dist/daemon/serve-runtime.d.ts +31 -0
  419. package/dist/daemon/serve-runtime.d.ts.map +1 -0
  420. package/dist/daemon/serve-runtime.js +230 -0
  421. package/dist/daemon/serve-runtime.js.map +1 -0
  422. package/dist/daemon/source-schedule.d.ts +25 -0
  423. package/dist/daemon/source-schedule.d.ts.map +1 -0
  424. package/dist/daemon/source-schedule.js +87 -0
  425. package/dist/daemon/source-schedule.js.map +1 -0
  426. package/dist/embedded-assets.generated.d.ts +4 -0
  427. package/dist/embedded-assets.generated.d.ts.map +1 -0
  428. package/dist/embedded-assets.generated.js +12 -0
  429. package/dist/embedded-assets.generated.js.map +1 -0
  430. package/dist/extractors/noise-filter.d.ts +30 -0
  431. package/dist/extractors/noise-filter.d.ts.map +1 -0
  432. package/dist/extractors/noise-filter.js +185 -0
  433. package/dist/extractors/noise-filter.js.map +1 -0
  434. package/dist/extractors/playbook-extractor.d.ts +35 -0
  435. package/dist/extractors/playbook-extractor.d.ts.map +1 -0
  436. package/dist/extractors/playbook-extractor.js +98 -0
  437. package/dist/extractors/playbook-extractor.js.map +1 -0
  438. package/dist/extractors/providers/anthropic.d.ts +13 -0
  439. package/dist/extractors/providers/anthropic.d.ts.map +1 -0
  440. package/dist/extractors/providers/anthropic.js +67 -0
  441. package/dist/extractors/providers/anthropic.js.map +1 -0
  442. package/dist/extractors/providers/index.d.ts +12 -0
  443. package/dist/extractors/providers/index.d.ts.map +1 -0
  444. package/dist/extractors/providers/index.js +41 -0
  445. package/dist/extractors/providers/index.js.map +1 -0
  446. package/dist/extractors/providers/mock.d.ts +14 -0
  447. package/dist/extractors/providers/mock.d.ts.map +1 -0
  448. package/dist/extractors/providers/mock.js +37 -0
  449. package/dist/extractors/providers/mock.js.map +1 -0
  450. package/dist/extractors/providers/openai.d.ts +15 -0
  451. package/dist/extractors/providers/openai.d.ts.map +1 -0
  452. package/dist/extractors/providers/openai.js +109 -0
  453. package/dist/extractors/providers/openai.js.map +1 -0
  454. package/dist/extractors/providers/types.d.ts +27 -0
  455. package/dist/extractors/providers/types.d.ts.map +1 -0
  456. package/dist/extractors/providers/types.js +6 -0
  457. package/dist/extractors/providers/types.js.map +1 -0
  458. package/dist/extractors/signal-extractor.d.ts +30 -0
  459. package/dist/extractors/signal-extractor.d.ts.map +1 -0
  460. package/dist/extractors/signal-extractor.js +371 -0
  461. package/dist/extractors/signal-extractor.js.map +1 -0
  462. package/dist/formatters/index.d.ts +3 -0
  463. package/dist/formatters/index.d.ts.map +1 -0
  464. package/dist/formatters/index.js +3 -0
  465. package/dist/formatters/index.js.map +1 -0
  466. package/dist/formatters/json.d.ts +6 -0
  467. package/dist/formatters/json.d.ts.map +1 -0
  468. package/dist/formatters/json.js +16 -0
  469. package/dist/formatters/json.js.map +1 -0
  470. package/dist/formatters/markdown.d.ts +6 -0
  471. package/dist/formatters/markdown.d.ts.map +1 -0
  472. package/dist/formatters/markdown.js +198 -0
  473. package/dist/formatters/markdown.js.map +1 -0
  474. package/dist/hooks/handlers.d.ts +21 -0
  475. package/dist/hooks/handlers.d.ts.map +1 -0
  476. package/dist/hooks/handlers.js +22 -0
  477. package/dist/hooks/handlers.js.map +1 -0
  478. package/dist/hooks/inject.d.ts +7 -0
  479. package/dist/hooks/inject.d.ts.map +1 -0
  480. package/dist/hooks/inject.js +18 -0
  481. package/dist/hooks/inject.js.map +1 -0
  482. package/dist/hooks/install.d.ts +14 -0
  483. package/dist/hooks/install.d.ts.map +1 -0
  484. package/dist/hooks/install.js +34 -0
  485. package/dist/hooks/install.js.map +1 -0
  486. package/dist/hooks/output.d.ts +19 -0
  487. package/dist/hooks/output.d.ts.map +1 -0
  488. package/dist/hooks/output.js +13 -0
  489. package/dist/hooks/output.js.map +1 -0
  490. package/dist/hooks/recall-client.d.ts +25 -0
  491. package/dist/hooks/recall-client.d.ts.map +1 -0
  492. package/dist/hooks/recall-client.js +56 -0
  493. package/dist/hooks/recall-client.js.map +1 -0
  494. package/dist/hooks/run-event.d.ts +13 -0
  495. package/dist/hooks/run-event.d.ts.map +1 -0
  496. package/dist/hooks/run-event.js +20 -0
  497. package/dist/hooks/run-event.js.map +1 -0
  498. package/dist/hooks/settings-edit.d.ts +10 -0
  499. package/dist/hooks/settings-edit.d.ts.map +1 -0
  500. package/dist/hooks/settings-edit.js +44 -0
  501. package/dist/hooks/settings-edit.js.map +1 -0
  502. package/dist/hooks/writeback.d.ts +12 -0
  503. package/dist/hooks/writeback.d.ts.map +1 -0
  504. package/dist/hooks/writeback.js +48 -0
  505. package/dist/hooks/writeback.js.map +1 -0
  506. package/dist/install/clients/claude-code.d.ts +3 -0
  507. package/dist/install/clients/claude-code.d.ts.map +1 -0
  508. package/dist/install/clients/claude-code.js +31 -0
  509. package/dist/install/clients/claude-code.js.map +1 -0
  510. package/dist/install/clients/claude-desktop.d.ts +3 -0
  511. package/dist/install/clients/claude-desktop.d.ts.map +1 -0
  512. package/dist/install/clients/claude-desktop.js +33 -0
  513. package/dist/install/clients/claude-desktop.js.map +1 -0
  514. package/dist/install/clients/codex.d.ts +3 -0
  515. package/dist/install/clients/codex.d.ts.map +1 -0
  516. package/dist/install/clients/codex.js +33 -0
  517. package/dist/install/clients/codex.js.map +1 -0
  518. package/dist/install/clients/cursor.d.ts +3 -0
  519. package/dist/install/clients/cursor.d.ts.map +1 -0
  520. package/dist/install/clients/cursor.js +37 -0
  521. package/dist/install/clients/cursor.js.map +1 -0
  522. package/dist/install/clients/hermes.d.ts +3 -0
  523. package/dist/install/clients/hermes.d.ts.map +1 -0
  524. package/dist/install/clients/hermes.js +37 -0
  525. package/dist/install/clients/hermes.js.map +1 -0
  526. package/dist/install/clients/index.d.ts +4 -0
  527. package/dist/install/clients/index.d.ts.map +1 -0
  528. package/dist/install/clients/index.js +18 -0
  529. package/dist/install/clients/index.js.map +1 -0
  530. package/dist/install/clients/windsurf.d.ts +3 -0
  531. package/dist/install/clients/windsurf.d.ts.map +1 -0
  532. package/dist/install/clients/windsurf.js +34 -0
  533. package/dist/install/clients/windsurf.js.map +1 -0
  534. package/dist/install/command.d.ts +14 -0
  535. package/dist/install/command.d.ts.map +1 -0
  536. package/dist/install/command.js +34 -0
  537. package/dist/install/command.js.map +1 -0
  538. package/dist/install/directive.d.ts +7 -0
  539. package/dist/install/directive.d.ts.map +1 -0
  540. package/dist/install/directive.js +31 -0
  541. package/dist/install/directive.js.map +1 -0
  542. package/dist/install/index.d.ts +28 -0
  543. package/dist/install/index.d.ts.map +1 -0
  544. package/dist/install/index.js +122 -0
  545. package/dist/install/index.js.map +1 -0
  546. package/dist/install/json-config.d.ts +8 -0
  547. package/dist/install/json-config.d.ts.map +1 -0
  548. package/dist/install/json-config.js +44 -0
  549. package/dist/install/json-config.js.map +1 -0
  550. package/dist/install/marked-block.d.ts +11 -0
  551. package/dist/install/marked-block.d.ts.map +1 -0
  552. package/dist/install/marked-block.js +34 -0
  553. package/dist/install/marked-block.js.map +1 -0
  554. package/dist/install/mcp-entry.d.ts +11 -0
  555. package/dist/install/mcp-entry.d.ts.map +1 -0
  556. package/dist/install/mcp-entry.js +7 -0
  557. package/dist/install/mcp-entry.js.map +1 -0
  558. package/dist/install/skill.d.ts +4 -0
  559. package/dist/install/skill.d.ts.map +1 -0
  560. package/dist/install/skill.js +61 -0
  561. package/dist/install/skill.js.map +1 -0
  562. package/dist/install/toml-config.d.ts +4 -0
  563. package/dist/install/toml-config.d.ts.map +1 -0
  564. package/dist/install/toml-config.js +54 -0
  565. package/dist/install/toml-config.js.map +1 -0
  566. package/dist/install/types.d.ts +40 -0
  567. package/dist/install/types.d.ts.map +1 -0
  568. package/dist/install/types.js +10 -0
  569. package/dist/install/types.js.map +1 -0
  570. package/dist/install/yaml-config.d.ts +4 -0
  571. package/dist/install/yaml-config.d.ts.map +1 -0
  572. package/dist/install/yaml-config.js +19 -0
  573. package/dist/install/yaml-config.js.map +1 -0
  574. package/dist/lifecycle/down.d.ts +19 -0
  575. package/dist/lifecycle/down.d.ts.map +1 -0
  576. package/dist/lifecycle/down.js +24 -0
  577. package/dist/lifecycle/down.js.map +1 -0
  578. package/dist/lifecycle/health-poll.d.ts +19 -0
  579. package/dist/lifecycle/health-poll.d.ts.map +1 -0
  580. package/dist/lifecycle/health-poll.js +39 -0
  581. package/dist/lifecycle/health-poll.js.map +1 -0
  582. package/dist/lifecycle/install-state.d.ts +34 -0
  583. package/dist/lifecycle/install-state.d.ts.map +1 -0
  584. package/dist/lifecycle/install-state.js +70 -0
  585. package/dist/lifecycle/install-state.js.map +1 -0
  586. package/dist/lifecycle/legacy-migration.d.ts +58 -0
  587. package/dist/lifecycle/legacy-migration.d.ts.map +1 -0
  588. package/dist/lifecycle/legacy-migration.js +212 -0
  589. package/dist/lifecycle/legacy-migration.js.map +1 -0
  590. package/dist/lifecycle/lifecycle-lock.d.ts +20 -0
  591. package/dist/lifecycle/lifecycle-lock.d.ts.map +1 -0
  592. package/dist/lifecycle/lifecycle-lock.js +98 -0
  593. package/dist/lifecycle/lifecycle-lock.js.map +1 -0
  594. package/dist/lifecycle/run-up.d.ts +38 -0
  595. package/dist/lifecycle/run-up.d.ts.map +1 -0
  596. package/dist/lifecycle/run-up.js +307 -0
  597. package/dist/lifecycle/run-up.js.map +1 -0
  598. package/dist/lifecycle/status.d.ts +38 -0
  599. package/dist/lifecycle/status.d.ts.map +1 -0
  600. package/dist/lifecycle/status.js +41 -0
  601. package/dist/lifecycle/status.js.map +1 -0
  602. package/dist/lifecycle/up.d.ts +35 -0
  603. package/dist/lifecycle/up.d.ts.map +1 -0
  604. package/dist/lifecycle/up.js +45 -0
  605. package/dist/lifecycle/up.js.map +1 -0
  606. package/dist/processors/privacy.d.ts +101 -0
  607. package/dist/processors/privacy.d.ts.map +1 -0
  608. package/dist/processors/privacy.js +273 -0
  609. package/dist/processors/privacy.js.map +1 -0
  610. package/dist/profile/accumulate.d.ts +28 -0
  611. package/dist/profile/accumulate.d.ts.map +1 -0
  612. package/dist/profile/accumulate.js +48 -0
  613. package/dist/profile/accumulate.js.map +1 -0
  614. package/dist/profile/behavior.d.ts +32 -0
  615. package/dist/profile/behavior.d.ts.map +1 -0
  616. package/dist/profile/behavior.js +122 -0
  617. package/dist/profile/behavior.js.map +1 -0
  618. package/dist/profile/four-color.d.ts +12 -0
  619. package/dist/profile/four-color.d.ts.map +1 -0
  620. package/dist/profile/four-color.js +39 -0
  621. package/dist/profile/four-color.js.map +1 -0
  622. package/dist/profile/profile-synth.d.ts +27 -0
  623. package/dist/profile/profile-synth.d.ts.map +1 -0
  624. package/dist/profile/profile-synth.js +174 -0
  625. package/dist/profile/profile-synth.js.map +1 -0
  626. package/dist/profile/types.d.ts +84 -0
  627. package/dist/profile/types.d.ts.map +1 -0
  628. package/dist/profile/types.js +11 -0
  629. package/dist/profile/types.js.map +1 -0
  630. package/dist/server/api.d.ts +49 -0
  631. package/dist/server/api.d.ts.map +1 -0
  632. package/dist/server/api.js +502 -0
  633. package/dist/server/api.js.map +1 -0
  634. package/dist/server/backfill-job.d.ts +36 -0
  635. package/dist/server/backfill-job.d.ts.map +1 -0
  636. package/dist/server/backfill-job.js +88 -0
  637. package/dist/server/backfill-job.js.map +1 -0
  638. package/dist/server/backfill-routes.d.ts +7 -0
  639. package/dist/server/backfill-routes.d.ts.map +1 -0
  640. package/dist/server/backfill-routes.js +146 -0
  641. package/dist/server/backfill-routes.js.map +1 -0
  642. package/dist/server/chat-name-refresh-job.d.ts +33 -0
  643. package/dist/server/chat-name-refresh-job.d.ts.map +1 -0
  644. package/dist/server/chat-name-refresh-job.js +120 -0
  645. package/dist/server/chat-name-refresh-job.js.map +1 -0
  646. package/dist/server/chat-name-routes.d.ts +13 -0
  647. package/dist/server/chat-name-routes.d.ts.map +1 -0
  648. package/dist/server/chat-name-routes.js +81 -0
  649. package/dist/server/chat-name-routes.js.map +1 -0
  650. package/dist/server/config-routes.d.ts +10 -0
  651. package/dist/server/config-routes.d.ts.map +1 -0
  652. package/dist/server/config-routes.js +122 -0
  653. package/dist/server/config-routes.js.map +1 -0
  654. package/dist/server/context.d.ts +13 -0
  655. package/dist/server/context.d.ts.map +1 -0
  656. package/dist/server/context.js +47 -0
  657. package/dist/server/context.js.map +1 -0
  658. package/dist/server/entity.d.ts +25 -0
  659. package/dist/server/entity.d.ts.map +1 -0
  660. package/dist/server/entity.js +34 -0
  661. package/dist/server/entity.js.map +1 -0
  662. package/dist/server/event-bus.d.ts +35 -0
  663. package/dist/server/event-bus.d.ts.map +1 -0
  664. package/dist/server/event-bus.js +4 -0
  665. package/dist/server/event-bus.js.map +1 -0
  666. package/dist/server/mcp-http-runtime.d.ts +28 -0
  667. package/dist/server/mcp-http-runtime.d.ts.map +1 -0
  668. package/dist/server/mcp-http-runtime.js +24 -0
  669. package/dist/server/mcp-http-runtime.js.map +1 -0
  670. package/dist/server/mcp-http.d.ts +41 -0
  671. package/dist/server/mcp-http.d.ts.map +1 -0
  672. package/dist/server/mcp-http.js +139 -0
  673. package/dist/server/mcp-http.js.map +1 -0
  674. package/dist/server/mcp.d.ts +292 -0
  675. package/dist/server/mcp.d.ts.map +1 -0
  676. package/dist/server/mcp.js +1146 -0
  677. package/dist/server/mcp.js.map +1 -0
  678. package/dist/server/open-browser.d.ts +3 -0
  679. package/dist/server/open-browser.d.ts.map +1 -0
  680. package/dist/server/open-browser.js +12 -0
  681. package/dist/server/open-browser.js.map +1 -0
  682. package/dist/server/runtime.d.ts +13 -0
  683. package/dist/server/runtime.d.ts.map +1 -0
  684. package/dist/server/runtime.js +27 -0
  685. package/dist/server/runtime.js.map +1 -0
  686. package/dist/server/server-security.d.ts +51 -0
  687. package/dist/server/server-security.d.ts.map +1 -0
  688. package/dist/server/server-security.js +76 -0
  689. package/dist/server/server-security.js.map +1 -0
  690. package/dist/server/setup-server.d.ts +7 -0
  691. package/dist/server/setup-server.d.ts.map +1 -0
  692. package/dist/server/setup-server.js +49 -0
  693. package/dist/server/setup-server.js.map +1 -0
  694. package/dist/setup/assess-hardware.d.ts +34 -0
  695. package/dist/setup/assess-hardware.d.ts.map +1 -0
  696. package/dist/setup/assess-hardware.js +179 -0
  697. package/dist/setup/assess-hardware.js.map +1 -0
  698. package/dist/setup/connection-tests.d.ts +17 -0
  699. package/dist/setup/connection-tests.d.ts.map +1 -0
  700. package/dist/setup/connection-tests.js +69 -0
  701. package/dist/setup/connection-tests.js.map +1 -0
  702. package/dist/setup/detect-api-keys.d.ts +13 -0
  703. package/dist/setup/detect-api-keys.d.ts.map +1 -0
  704. package/dist/setup/detect-api-keys.js +41 -0
  705. package/dist/setup/detect-api-keys.js.map +1 -0
  706. package/dist/setup/detect-runtime.d.ts +14 -0
  707. package/dist/setup/detect-runtime.d.ts.map +1 -0
  708. package/dist/setup/detect-runtime.js +43 -0
  709. package/dist/setup/detect-runtime.js.map +1 -0
  710. package/dist/setup/detect-sources.d.ts +14 -0
  711. package/dist/setup/detect-sources.d.ts.map +1 -0
  712. package/dist/setup/detect-sources.js +75 -0
  713. package/dist/setup/detect-sources.js.map +1 -0
  714. package/dist/setup/doctor.d.ts +48 -0
  715. package/dist/setup/doctor.d.ts.map +1 -0
  716. package/dist/setup/doctor.js +157 -0
  717. package/dist/setup/doctor.js.map +1 -0
  718. package/dist/setup/generate-config.d.ts +13 -0
  719. package/dist/setup/generate-config.d.ts.map +1 -0
  720. package/dist/setup/generate-config.js +163 -0
  721. package/dist/setup/generate-config.js.map +1 -0
  722. package/dist/setup/index.d.ts +9 -0
  723. package/dist/setup/index.d.ts.map +1 -0
  724. package/dist/setup/index.js +9 -0
  725. package/dist/setup/index.js.map +1 -0
  726. package/dist/setup/init-wizard.d.ts +20 -0
  727. package/dist/setup/init-wizard.d.ts.map +1 -0
  728. package/dist/setup/init-wizard.js +531 -0
  729. package/dist/setup/init-wizard.js.map +1 -0
  730. package/dist/setup/terminal.d.ts +28 -0
  731. package/dist/setup/terminal.d.ts.map +1 -0
  732. package/dist/setup/terminal.js +258 -0
  733. package/dist/setup/terminal.js.map +1 -0
  734. package/dist/setup/validate-config.d.ts +30 -0
  735. package/dist/setup/validate-config.d.ts.map +1 -0
  736. package/dist/setup/validate-config.js +45 -0
  737. package/dist/setup/validate-config.js.map +1 -0
  738. package/dist/store/chunks.d.ts +25 -0
  739. package/dist/store/chunks.d.ts.map +1 -0
  740. package/dist/store/chunks.js +78 -0
  741. package/dist/store/chunks.js.map +1 -0
  742. package/dist/store/data-dir-lock.d.ts +15 -0
  743. package/dist/store/data-dir-lock.d.ts.map +1 -0
  744. package/dist/store/data-dir-lock.js +96 -0
  745. package/dist/store/data-dir-lock.js.map +1 -0
  746. package/dist/store/database.d.ts +31 -0
  747. package/dist/store/database.d.ts.map +1 -0
  748. package/dist/store/database.js +113 -0
  749. package/dist/store/database.js.map +1 -0
  750. package/dist/store/embedding.d.ts +23 -0
  751. package/dist/store/embedding.d.ts.map +1 -0
  752. package/dist/store/embedding.js +62 -0
  753. package/dist/store/embedding.js.map +1 -0
  754. package/dist/store/engine-factory.d.ts +4 -0
  755. package/dist/store/engine-factory.d.ts.map +1 -0
  756. package/dist/store/engine-factory.js +18 -0
  757. package/dist/store/engine-factory.js.map +1 -0
  758. package/dist/store/graph.d.ts +75 -0
  759. package/dist/store/graph.d.ts.map +1 -0
  760. package/dist/store/graph.js +276 -0
  761. package/dist/store/graph.js.map +1 -0
  762. package/dist/store/managed/managed-engine.d.ts +35 -0
  763. package/dist/store/managed/managed-engine.d.ts.map +1 -0
  764. package/dist/store/managed/managed-engine.js +40 -0
  765. package/dist/store/managed/managed-engine.js.map +1 -0
  766. package/dist/store/managed/managed-lock.d.ts +2 -0
  767. package/dist/store/managed/managed-lock.d.ts.map +1 -0
  768. package/dist/store/managed/managed-lock.js +68 -0
  769. package/dist/store/managed/managed-lock.js.map +1 -0
  770. package/dist/store/managed/new-install.d.ts +12 -0
  771. package/dist/store/managed/new-install.d.ts.map +1 -0
  772. package/dist/store/managed/new-install.js +23 -0
  773. package/dist/store/managed/new-install.js.map +1 -0
  774. package/dist/store/managed/pg-paths.d.ts +28 -0
  775. package/dist/store/managed/pg-paths.d.ts.map +1 -0
  776. package/dist/store/managed/pg-paths.js +41 -0
  777. package/dist/store/managed/pg-paths.js.map +1 -0
  778. package/dist/store/managed/pg-runtime-provider.d.ts +47 -0
  779. package/dist/store/managed/pg-runtime-provider.d.ts.map +1 -0
  780. package/dist/store/managed/pg-runtime-provider.js +249 -0
  781. package/dist/store/managed/pg-runtime-provider.js.map +1 -0
  782. package/dist/store/managed/pg-supervisor.d.ts +30 -0
  783. package/dist/store/managed/pg-supervisor.d.ts.map +1 -0
  784. package/dist/store/managed/pg-supervisor.js +308 -0
  785. package/dist/store/managed/pg-supervisor.js.map +1 -0
  786. package/dist/store/managed/recovery-loop.d.ts +41 -0
  787. package/dist/store/managed/recovery-loop.d.ts.map +1 -0
  788. package/dist/store/managed/recovery-loop.js +87 -0
  789. package/dist/store/managed/recovery-loop.js.map +1 -0
  790. package/dist/store/managed/stop-from-state.d.ts +11 -0
  791. package/dist/store/managed/stop-from-state.d.ts.map +1 -0
  792. package/dist/store/managed/stop-from-state.js +26 -0
  793. package/dist/store/managed/stop-from-state.js.map +1 -0
  794. package/dist/store/migrations/index.d.ts +9 -0
  795. package/dist/store/migrations/index.d.ts.map +1 -0
  796. package/dist/store/migrations/index.js +121 -0
  797. package/dist/store/migrations/index.js.map +1 -0
  798. package/dist/store/pages.d.ts +81 -0
  799. package/dist/store/pages.d.ts.map +1 -0
  800. package/dist/store/pages.js +286 -0
  801. package/dist/store/pages.js.map +1 -0
  802. package/dist/store/person-behavior.d.ts +37 -0
  803. package/dist/store/person-behavior.d.ts.map +1 -0
  804. package/dist/store/person-behavior.js +134 -0
  805. package/dist/store/person-behavior.js.map +1 -0
  806. package/dist/store/pglite-assets.d.ts +15 -0
  807. package/dist/store/pglite-assets.d.ts.map +1 -0
  808. package/dist/store/pglite-assets.js +47 -0
  809. package/dist/store/pglite-assets.js.map +1 -0
  810. package/dist/store/pglite-executor.d.ts +21 -0
  811. package/dist/store/pglite-executor.d.ts.map +1 -0
  812. package/dist/store/pglite-executor.js +61 -0
  813. package/dist/store/pglite-executor.js.map +1 -0
  814. package/dist/store/postgres-executor.d.ts +16 -0
  815. package/dist/store/postgres-executor.d.ts.map +1 -0
  816. package/dist/store/postgres-executor.js +77 -0
  817. package/dist/store/postgres-executor.js.map +1 -0
  818. package/dist/store/query-rewrite.d.ts +28 -0
  819. package/dist/store/query-rewrite.d.ts.map +1 -0
  820. package/dist/store/query-rewrite.js +97 -0
  821. package/dist/store/query-rewrite.js.map +1 -0
  822. package/dist/store/search.d.ts +65 -0
  823. package/dist/store/search.d.ts.map +1 -0
  824. package/dist/store/search.js +312 -0
  825. package/dist/store/search.js.map +1 -0
  826. package/dist/store/sequence-sync.d.ts +22 -0
  827. package/dist/store/sequence-sync.d.ts.map +1 -0
  828. package/dist/store/sequence-sync.js +46 -0
  829. package/dist/store/sequence-sync.js.map +1 -0
  830. package/dist/store/sql-executor.d.ts +17 -0
  831. package/dist/store/sql-executor.d.ts.map +1 -0
  832. package/dist/store/sql-executor.js +3 -0
  833. package/dist/store/sql-executor.js.map +1 -0
  834. package/dist/store/store-meta.d.ts +10 -0
  835. package/dist/store/store-meta.d.ts.map +1 -0
  836. package/dist/store/store-meta.js +13 -0
  837. package/dist/store/store-meta.js.map +1 -0
  838. package/dist/store/tags.d.ts +10 -0
  839. package/dist/store/tags.d.ts.map +1 -0
  840. package/dist/store/tags.js +35 -0
  841. package/dist/store/tags.js.map +1 -0
  842. package/dist/store/timeline.d.ts +38 -0
  843. package/dist/store/timeline.d.ts.map +1 -0
  844. package/dist/store/timeline.js +173 -0
  845. package/dist/store/timeline.js.map +1 -0
  846. package/dist/store/trgm-search.d.ts +13 -0
  847. package/dist/store/trgm-search.d.ts.map +1 -0
  848. package/dist/store/trgm-search.js +53 -0
  849. package/dist/store/trgm-search.js.map +1 -0
  850. package/dist/store/wikilink.d.ts +17 -0
  851. package/dist/store/wikilink.d.ts.map +1 -0
  852. package/dist/store/wikilink.js +58 -0
  853. package/dist/store/wikilink.js.map +1 -0
  854. package/dist/sync/obsidian.d.ts +136 -0
  855. package/dist/sync/obsidian.d.ts.map +1 -0
  856. package/dist/sync/obsidian.js +543 -0
  857. package/dist/sync/obsidian.js.map +1 -0
  858. package/dist/synth/cache.d.ts +17 -0
  859. package/dist/synth/cache.d.ts.map +1 -0
  860. package/dist/synth/cache.js +67 -0
  861. package/dist/synth/cache.js.map +1 -0
  862. package/dist/synth/citations.d.ts +12 -0
  863. package/dist/synth/citations.d.ts.map +1 -0
  864. package/dist/synth/citations.js +28 -0
  865. package/dist/synth/citations.js.map +1 -0
  866. package/dist/synth/context.d.ts +10 -0
  867. package/dist/synth/context.d.ts.map +1 -0
  868. package/dist/synth/context.js +67 -0
  869. package/dist/synth/context.js.map +1 -0
  870. package/dist/synth/engine.d.ts +16 -0
  871. package/dist/synth/engine.d.ts.map +1 -0
  872. package/dist/synth/engine.js +111 -0
  873. package/dist/synth/engine.js.map +1 -0
  874. package/dist/synth/gaps.d.ts +17 -0
  875. package/dist/synth/gaps.d.ts.map +1 -0
  876. package/dist/synth/gaps.js +57 -0
  877. package/dist/synth/gaps.js.map +1 -0
  878. package/dist/synth/index.d.ts +6 -0
  879. package/dist/synth/index.d.ts.map +1 -0
  880. package/dist/synth/index.js +6 -0
  881. package/dist/synth/index.js.map +1 -0
  882. package/dist/synth/intent.d.ts +6 -0
  883. package/dist/synth/intent.d.ts.map +1 -0
  884. package/dist/synth/intent.js +13 -0
  885. package/dist/synth/intent.js.map +1 -0
  886. package/dist/synth/intents/daily-report.d.ts +7 -0
  887. package/dist/synth/intents/daily-report.d.ts.map +1 -0
  888. package/dist/synth/intents/daily-report.js +37 -0
  889. package/dist/synth/intents/daily-report.js.map +1 -0
  890. package/dist/synth/intents/index.d.ts +2 -0
  891. package/dist/synth/intents/index.d.ts.map +1 -0
  892. package/dist/synth/intents/index.js +12 -0
  893. package/dist/synth/intents/index.js.map +1 -0
  894. package/dist/synth/intents/person-strategy.d.ts +40 -0
  895. package/dist/synth/intents/person-strategy.d.ts.map +1 -0
  896. package/dist/synth/intents/person-strategy.js +66 -0
  897. package/dist/synth/intents/person-strategy.js.map +1 -0
  898. package/dist/synth/intents/recall.d.ts +8 -0
  899. package/dist/synth/intents/recall.d.ts.map +1 -0
  900. package/dist/synth/intents/recall.js +26 -0
  901. package/dist/synth/intents/recall.js.map +1 -0
  902. package/dist/synth/intents/troubleshoot.d.ts +11 -0
  903. package/dist/synth/intents/troubleshoot.d.ts.map +1 -0
  904. package/dist/synth/intents/troubleshoot.js +66 -0
  905. package/dist/synth/intents/troubleshoot.js.map +1 -0
  906. package/dist/synth/scope.d.ts +13 -0
  907. package/dist/synth/scope.d.ts.map +1 -0
  908. package/dist/synth/scope.js +139 -0
  909. package/dist/synth/scope.js.map +1 -0
  910. package/dist/synth/types.d.ts +117 -0
  911. package/dist/synth/types.d.ts.map +1 -0
  912. package/dist/synth/types.js +2 -0
  913. package/dist/synth/types.js.map +1 -0
  914. package/package.json +98 -0
@@ -0,0 +1,33 @@
1
+ import { existsSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ import { DIRECTIVE_L1 } from "../directive.js";
4
+ import { mcpEntry } from "../types.js";
5
+ // Codex MCP config is global-only (~/.codex/config.toml); rules go to AGENTS.md
6
+ // (global ~/.codex/AGENTS.md or project ./AGENTS.md).
7
+ export const codex = {
8
+ id: "codex",
9
+ displayName: "Codex",
10
+ supportsHttp: true,
11
+ detect(home) {
12
+ return existsSync(join(home, ".codex"));
13
+ },
14
+ plan(ctx) {
15
+ const mcpPath = join(ctx.home, ".codex", "config.toml");
16
+ const rulesPath = ctx.scope === "project" ? join(ctx.cwd, "AGENTS.md") : join(ctx.home, ".codex", "AGENTS.md");
17
+ return [
18
+ {
19
+ path: mcpPath,
20
+ kind: "toml-mcp",
21
+ action: ctx.action,
22
+ entry: ctx.action === "upsert" ? mcpEntry(ctx) : undefined,
23
+ },
24
+ {
25
+ path: rulesPath,
26
+ kind: "marked-block",
27
+ action: ctx.action,
28
+ content: ctx.action === "upsert" ? DIRECTIVE_L1 : undefined,
29
+ },
30
+ ];
31
+ },
32
+ };
33
+ //# sourceMappingURL=codex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../src/install/clients/codex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAsB,QAAQ,EAAgB,MAAM,aAAa,CAAC;AAEzE,gFAAgF;AAChF,sDAAsD;AACtD,MAAM,CAAC,MAAM,KAAK,GAAkB;IAClC,EAAE,EAAE,OAAO;IACX,WAAW,EAAE,OAAO;IACpB,YAAY,EAAE,IAAI;IAClB,MAAM,CAAC,IAAI;QACT,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,CAAC,GAAY;QACf,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QACxD,MAAM,SAAS,GACb,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC/F,OAAO;YACL;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,KAAK,EAAE,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;aAC3D;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,OAAO,EAAE,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;aAC5D;SACF,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type ClientAdapter } from "../types.js";
2
+ export declare const cursor: ClientAdapter;
3
+ //# sourceMappingURL=cursor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../../src/install/clients/cursor.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,aAAa,EAA0B,MAAM,aAAa,CAAC;AAOzE,eAAO,MAAM,MAAM,EAAE,aA2BpB,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { existsSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ import { DIRECTIVE_L1, MEMKIN_BLOCK_END, MEMKIN_BLOCK_START } from "../directive.js";
4
+ import { mcpEntry } from "../types.js";
5
+ // Cursor rules use `.mdc` with required frontmatter, so memkin owns the whole
6
+ // file (managed-file) rather than appending a marker block.
7
+ const L1_BODY = DIRECTIVE_L1.replace(MEMKIN_BLOCK_START, "").replace(MEMKIN_BLOCK_END, "").trim();
8
+ const CURSOR_MDC = `---\nalwaysApply: true\n---\n\n${L1_BODY}\n`;
9
+ export const cursor = {
10
+ id: "cursor",
11
+ displayName: "Cursor",
12
+ // TODO(SP4 T6b): verify HTTP support
13
+ supportsHttp: false,
14
+ detect(home) {
15
+ return existsSync(join(home, ".cursor"));
16
+ },
17
+ plan(ctx) {
18
+ const base = ctx.scope === "project" ? ctx.cwd : ctx.home;
19
+ const mcpPath = join(base, ".cursor", "mcp.json");
20
+ const rulesPath = join(base, ".cursor", "rules", "memkin.mdc");
21
+ return [
22
+ {
23
+ path: mcpPath,
24
+ kind: "json-mcp",
25
+ action: ctx.action,
26
+ entry: ctx.action === "upsert" ? mcpEntry(ctx) : undefined,
27
+ },
28
+ {
29
+ path: rulesPath,
30
+ kind: "managed-file",
31
+ action: ctx.action,
32
+ content: ctx.action === "upsert" ? CURSOR_MDC : undefined,
33
+ },
34
+ ];
35
+ },
36
+ };
37
+ //# sourceMappingURL=cursor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../../src/install/clients/cursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrF,OAAO,EAAsB,QAAQ,EAAgB,MAAM,aAAa,CAAC;AAEzE,8EAA8E;AAC9E,4DAA4D;AAC5D,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AAClG,MAAM,UAAU,GAAG,kCAAkC,OAAO,IAAI,CAAC;AAEjE,MAAM,CAAC,MAAM,MAAM,GAAkB;IACnC,EAAE,EAAE,QAAQ;IACZ,WAAW,EAAE,QAAQ;IACrB,qCAAqC;IACrC,YAAY,EAAE,KAAK;IACnB,MAAM,CAAC,IAAI;QACT,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,CAAC,GAAY;QACf,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QAC/D,OAAO;YACL;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,KAAK,EAAE,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;aAC3D;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,OAAO,EAAE,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;aAC1D;SACF,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type ClientAdapter } from "../types.js";
2
+ export declare const hermes: ClientAdapter;
3
+ //# sourceMappingURL=hermes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hermes.d.ts","sourceRoot":"","sources":["../../../src/install/clients/hermes.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,aAAa,EAA0B,MAAM,aAAa,CAAC;AASzE,eAAO,MAAM,MAAM,EAAE,aAyBpB,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { existsSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ import { MEMKIN_SKILL } from "../skill.js";
4
+ import { mcpEntry } from "../types.js";
5
+ // OpenClaw / Hermes. MCP lives in config.yaml `mcp_servers`; the skill drops
6
+ // into the skills dir. Newer Hermes uses ~/.hermes; older OpenClaw layout uses
7
+ // ~/.openclaw — detect either and pin the root accordingly.
8
+ function hermesRoot(home) {
9
+ return existsSync(join(home, ".hermes")) ? join(home, ".hermes") : join(home, ".openclaw");
10
+ }
11
+ export const hermes = {
12
+ id: "hermes",
13
+ displayName: "OpenClaw / Hermes",
14
+ // TODO(SP4 T6b): verify HTTP support
15
+ supportsHttp: false,
16
+ detect(home) {
17
+ return existsSync(join(home, ".hermes")) || existsSync(join(home, ".openclaw"));
18
+ },
19
+ plan(ctx) {
20
+ const root = hermesRoot(ctx.home);
21
+ return [
22
+ {
23
+ path: join(root, "config.yaml"),
24
+ kind: "yaml-mcp",
25
+ action: ctx.action,
26
+ entry: ctx.action === "upsert" ? mcpEntry(ctx) : undefined,
27
+ },
28
+ {
29
+ path: join(root, "skills", "memkin", "SKILL.md"),
30
+ kind: "managed-file",
31
+ action: ctx.action,
32
+ content: ctx.action === "upsert" ? MEMKIN_SKILL : undefined,
33
+ },
34
+ ];
35
+ },
36
+ };
37
+ //# sourceMappingURL=hermes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hermes.js","sourceRoot":"","sources":["../../../src/install/clients/hermes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAsB,QAAQ,EAAgB,MAAM,aAAa,CAAC;AAEzE,6EAA6E;AAC7E,+EAA+E;AAC/E,4DAA4D;AAC5D,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAC7F,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAkB;IACnC,EAAE,EAAE,QAAQ;IACZ,WAAW,EAAE,mBAAmB;IAChC,qCAAqC;IACrC,YAAY,EAAE,KAAK;IACnB,MAAM,CAAC,IAAI;QACT,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;IAClF,CAAC;IACD,IAAI,CAAC,GAAY;QACf,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,OAAO;YACL;gBACE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC;gBAC/B,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,KAAK,EAAE,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;aAC3D;YACD;gBACE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC;gBAChD,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,OAAO,EAAE,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;aAC5D;SACF,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ClientAdapter } from "../types.js";
2
+ export declare const ADAPTERS: ClientAdapter[];
3
+ export declare function getAdapter(id: string): ClientAdapter | undefined;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/install/clients/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAQjD,eAAO,MAAM,QAAQ,EAAE,aAAa,EAOnC,CAAC;AAEF,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAEhE"}
@@ -0,0 +1,18 @@
1
+ import { claudeCode } from "./claude-code.js";
2
+ import { claudeDesktop } from "./claude-desktop.js";
3
+ import { codex } from "./codex.js";
4
+ import { cursor } from "./cursor.js";
5
+ import { hermes } from "./hermes.js";
6
+ import { windsurf } from "./windsurf.js";
7
+ export const ADAPTERS = [
8
+ claudeCode,
9
+ claudeDesktop,
10
+ cursor,
11
+ codex,
12
+ windsurf,
13
+ hermes,
14
+ ];
15
+ export function getAdapter(id) {
16
+ return ADAPTERS.find((a) => a.id === id);
17
+ }
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/install/clients/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,CAAC,MAAM,QAAQ,GAAoB;IACvC,UAAU;IACV,aAAa;IACb,MAAM;IACN,KAAK;IACL,QAAQ;IACR,MAAM;CACP,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,EAAU;IACnC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAC3C,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type ClientAdapter } from "../types.js";
2
+ export declare const windsurf: ClientAdapter;
3
+ //# sourceMappingURL=windsurf.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"windsurf.d.ts","sourceRoot":"","sources":["../../../src/install/clients/windsurf.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,aAAa,EAA0B,MAAM,aAAa,CAAC;AAEzE,eAAO,MAAM,QAAQ,EAAE,aA6BtB,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { existsSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ import { DIRECTIVE_L1 } from "../directive.js";
4
+ import { mcpEntry } from "../types.js";
5
+ export const windsurf = {
6
+ id: "windsurf",
7
+ displayName: "Windsurf",
8
+ // TODO(SP4 T6b): verify HTTP support
9
+ supportsHttp: false,
10
+ detect(home) {
11
+ return existsSync(join(home, ".codeium", "windsurf"));
12
+ },
13
+ plan(ctx) {
14
+ const mcpPath = join(ctx.home, ".codeium", "windsurf", "mcp_config.json");
15
+ const rulesPath = ctx.scope === "project"
16
+ ? join(ctx.cwd, ".windsurfrules")
17
+ : join(ctx.home, ".codeium", "windsurf", "memories", "global_rules.md");
18
+ return [
19
+ {
20
+ path: mcpPath,
21
+ kind: "json-mcp",
22
+ action: ctx.action,
23
+ entry: ctx.action === "upsert" ? mcpEntry(ctx) : undefined,
24
+ },
25
+ {
26
+ path: rulesPath,
27
+ kind: "marked-block",
28
+ action: ctx.action,
29
+ content: ctx.action === "upsert" ? DIRECTIVE_L1 : undefined,
30
+ },
31
+ ];
32
+ },
33
+ };
34
+ //# sourceMappingURL=windsurf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"windsurf.js","sourceRoot":"","sources":["../../../src/install/clients/windsurf.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAsB,QAAQ,EAAgB,MAAM,aAAa,CAAC;AAEzE,MAAM,CAAC,MAAM,QAAQ,GAAkB;IACrC,EAAE,EAAE,UAAU;IACd,WAAW,EAAE,UAAU;IACvB,qCAAqC;IACrC,YAAY,EAAE,KAAK;IACnB,MAAM,CAAC,IAAI;QACT,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,CAAC,GAAY;QACf,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC;QAC1E,MAAM,SAAS,GACb,GAAG,CAAC,KAAK,KAAK,SAAS;YACrB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,gBAAgB,CAAC;YACjC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC;QAC5E,OAAO;YACL;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,UAAU;gBAChB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,KAAK,EAAE,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;aAC3D;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,OAAO,EAAE,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;aAC5D;SACF,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -0,0 +1,14 @@
1
+ export interface LaunchCmd {
2
+ command: string;
3
+ args: string[];
4
+ }
5
+ export interface ResolveOpts {
6
+ /** Use the Streamable HTTP transport instead of stdio. */
7
+ http?: boolean;
8
+ /** Injectable PATH lookup for tests. */
9
+ onPath?: (bin: string) => boolean;
10
+ }
11
+ /** Default check: is `bin` an executable on PATH? */
12
+ export declare function isOnPath(bin: string, env?: NodeJS.ProcessEnv): boolean;
13
+ export declare function resolveLaunchCmd(opts?: ResolveOpts): LaunchCmd;
14
+ //# sourceMappingURL=command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/install/command.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,0DAA0D;IAC1D,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,wCAAwC;IACxC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;CACnC;AAED,qDAAqD;AACrD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAenF;AAED,wBAAgB,gBAAgB,CAAC,IAAI,GAAE,WAAgB,GAAG,SAAS,CAOlE"}
@@ -0,0 +1,34 @@
1
+ import { accessSync, constants } from "node:fs";
2
+ import { delimiter, join } from "node:path";
3
+ // Resolves the command an MCP client should spawn to launch Memkin's stdio
4
+ // (or HTTP) server. Prefers a globally-installed `memkin` binary; otherwise
5
+ // falls back to `npx -y memkin`.
6
+ const PACKAGE = "memkin";
7
+ /** Default check: is `bin` an executable on PATH? */
8
+ export function isOnPath(bin, env = process.env) {
9
+ const path = env.PATH ?? "";
10
+ const exts = process.platform === "win32" ? ["", ".cmd", ".exe", ".bat"] : [""];
11
+ for (const dir of path.split(delimiter)) {
12
+ if (!dir)
13
+ continue;
14
+ for (const ext of exts) {
15
+ try {
16
+ accessSync(join(dir, bin + ext), constants.X_OK);
17
+ return true;
18
+ }
19
+ catch {
20
+ // not here; keep looking
21
+ }
22
+ }
23
+ }
24
+ return false;
25
+ }
26
+ export function resolveLaunchCmd(opts = {}) {
27
+ const transport = opts.http ? "--mcp-http" : "--mcp";
28
+ const onPath = opts.onPath ?? isOnPath;
29
+ if (onPath("memkin")) {
30
+ return { command: "memkin", args: ["serve", transport] };
31
+ }
32
+ return { command: "npx", args: ["-y", PACKAGE, "serve", transport] };
33
+ }
34
+ //# sourceMappingURL=command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/install/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE5C,2EAA2E;AAC3E,4EAA4E;AAC5E,iCAAiC;AAEjC,MAAM,OAAO,GAAG,QAAQ,CAAC;AAczB,qDAAqD;AACrD,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,MAAyB,OAAO,CAAC,GAAG;IACxE,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAChF,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QACxC,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;gBACjD,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,MAAM,CAAC;gBACP,yBAAyB;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAoB,EAAE;IACrD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC;IACrD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC;IACvC,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrB,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC;IAC3D,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC;AACvE,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare const MEMKIN_BLOCK_START = "<!-- memkin:start -->";
2
+ export declare const MEMKIN_BLOCK_END = "<!-- memkin:end -->";
3
+ /** L1: minimal directive block for rules files (CLAUDE.md / AGENTS.md / …). */
4
+ export declare const DIRECTIVE_L1 = "<!-- memkin:start -->\n## Memkin \u2014 \u4F60\u7684\u4E2A\u4EBA\u8BB0\u5FC6\u5E93\n\u4F60\u63A5\u5165\u4E86 Memkin\uFF1A\u7528\u6237\u5173\u4E8E\u300C\u4EBA / \u9879\u76EE / \u51B3\u7B56 / \u4EFB\u52A1 / \u8FC7\u5F80\u300D\u7684\u672C\u5730\u6301\u4E45\u8BB0\u5FC6\uFF0C\u662F\u8FD9\u4E9B\u4E8B\u7684**\u4E8B\u5B9E\u6765\u6E90**\u3002\n- **\u4F55\u65F6\u67E5**\uFF1A\u95EE\u9898\u6D89\u53CA\u5177\u4F53\u7684\u4EBA\u3001\u9879\u76EE\u8FDB\u5C55\u3001\u8FC7\u53BB\u7684\u51B3\u5B9A\u3001\u5F85\u529E\uFF0C\u6216\u5E26\u300C\u4E0A\u5468 / \u4E4B\u524D / \u6211\u4EEC\u5F53\u65F6\u2026\u300D\u65F6\u2014\u2014\u5148\u67E5 Memkin\uFF0C\u522B\u53EA\u51ED\u4EE3\u7801\u6216\u731C\u6D4B\u3002\n- **\u600E\u4E48\u67E5\uFF08\u4FBF\u5B9C\u4F18\u5148\uFF09**\uFF1A\u5148 `search`\uFF08\u5173\u952E\u8BCD\uFF0C\u96F6\u6210\u672C\uFF09\u2192 \u4E0D\u591F\u518D `query` / `recall`\uFF08\u8BED\u4E49 + \u5F15\u7528\uFF09\uFF1B\u4F1A\u8BDD\u5F00\u59CB\u53EF\u5148 `get_session_context` \u8FDB\u5165\u72B6\u6001\u3002\n- **\u4F55\u65F6\u4E0D\u67E5**\uFF1A\u4E0E\u7528\u6237\u4E2A\u4EBA\u4E16\u754C\u65E0\u5173\u7684\u901A\u7528\u95EE\u9898\uFF08\u7EAF\u8BED\u6CD5 / \u901A\u7528\u7B97\u6CD5\uFF09\uFF0C\u522B\u6253\u6270\u8BB0\u5FC6\u5E93\u3002\n- \u66F4\u591A\u7528\u6CD5\uFF08\u5199\u56DE\u3001\u56FE\u8C31\u3001\u4EBA\u7269\u753B\u50CF\uFF09\u6309\u9700\u53D1\u73B0\uFF1A\u8C03\u7528\u5DE5\u5177\u65F6\u770B\u5176\u8BF4\u660E\uFF0C\u6216 `get_health`\u3002\n<!-- memkin:end -->";
5
+ /** L2: medium directive used as the MCP server `instructions` field. */
6
+ export declare const DIRECTIVE_L2 = "Memkin is the user's local-first personal memory \u2014 the source of truth about the user's people, projects, decisions, tasks, and history.\n\nBrain-first, cheap-first. When a request concerns a specific person, a project's status/history, a past decision, a todo, or contains \"last week / earlier / what did we\u2026\", consult Memkin BEFORE answering from code or assumptions:\n 1) search (keyword, zero-cost)\n 2) query / recall (semantic + cited) \u2014 only if search is thin\n Accept good results; do not over-escalate.\nSession start: call get_session_context for a compact digest of active projects, recent decisions, open tasks, and key people.\nProject-status questions: combine Memkin (decisions/tasks/timeline) WITH repo reality (git/code); do not answer from code alone.\nDo NOT consult Memkin for generic questions unrelated to the user's world (pure syntax, general algorithms).\nWrite-back (conservative): on a clear decision/discovery, or when the user says \"remember this\", persist via put_page / add_timeline_entry; if unsure, ask.\nMore tools (graph traversal, person profile, daily report, troubleshoot) are discoverable via their tool descriptions and get_health.";
7
+ //# sourceMappingURL=directive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directive.d.ts","sourceRoot":"","sources":["../../src/install/directive.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,kBAAkB,0BAA0B,CAAC;AAC1D,eAAO,MAAM,gBAAgB,wBAAwB,CAAC;AAEtD,+EAA+E;AAC/E,eAAO,MAAM,YAAY,67CAOL,CAAC;AAErB,wEAAwE;AACxE,eAAO,MAAM,YAAY,grCAU6G,CAAC"}
@@ -0,0 +1,31 @@
1
+ // Single source of truth for Memkin's agent-facing memory directives.
2
+ //
3
+ // Progressive disclosure (Spec 12):
4
+ // L1 — minimal, written into each client's rules file (always resident).
5
+ // L2 — medium, passed as the MCP server `instructions` field (injected by
6
+ // clients that support it; covers clients without a rules file).
7
+ // L3 — full detail, lives in tool descriptions / the optional skill (on demand).
8
+ export const MEMKIN_BLOCK_START = "<!-- memkin:start -->";
9
+ export const MEMKIN_BLOCK_END = "<!-- memkin:end -->";
10
+ /** L1: minimal directive block for rules files (CLAUDE.md / AGENTS.md / …). */
11
+ export const DIRECTIVE_L1 = `${MEMKIN_BLOCK_START}
12
+ ## Memkin — 你的个人记忆库
13
+ 你接入了 Memkin:用户关于「人 / 项目 / 决策 / 任务 / 过往」的本地持久记忆,是这些事的**事实来源**。
14
+ - **何时查**:问题涉及具体的人、项目进展、过去的决定、待办,或带「上周 / 之前 / 我们当时…」时——先查 Memkin,别只凭代码或猜测。
15
+ - **怎么查(便宜优先)**:先 \`search\`(关键词,零成本)→ 不够再 \`query\` / \`recall\`(语义 + 引用);会话开始可先 \`get_session_context\` 进入状态。
16
+ - **何时不查**:与用户个人世界无关的通用问题(纯语法 / 通用算法),别打扰记忆库。
17
+ - 更多用法(写回、图谱、人物画像)按需发现:调用工具时看其说明,或 \`get_health\`。
18
+ ${MEMKIN_BLOCK_END}`;
19
+ /** L2: medium directive used as the MCP server `instructions` field. */
20
+ export const DIRECTIVE_L2 = `Memkin is the user's local-first personal memory — the source of truth about the user's people, projects, decisions, tasks, and history.
21
+
22
+ Brain-first, cheap-first. When a request concerns a specific person, a project's status/history, a past decision, a todo, or contains "last week / earlier / what did we…", consult Memkin BEFORE answering from code or assumptions:
23
+ 1) search (keyword, zero-cost)
24
+ 2) query / recall (semantic + cited) — only if search is thin
25
+ Accept good results; do not over-escalate.
26
+ Session start: call get_session_context for a compact digest of active projects, recent decisions, open tasks, and key people.
27
+ Project-status questions: combine Memkin (decisions/tasks/timeline) WITH repo reality (git/code); do not answer from code alone.
28
+ Do NOT consult Memkin for generic questions unrelated to the user's world (pure syntax, general algorithms).
29
+ Write-back (conservative): on a clear decision/discovery, or when the user says "remember this", persist via put_page / add_timeline_entry; if unsure, ask.
30
+ More tools (graph traversal, person profile, daily report, troubleshoot) are discoverable via their tool descriptions and get_health.`;
31
+ //# sourceMappingURL=directive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"directive.js","sourceRoot":"","sources":["../../src/install/directive.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,EAAE;AACF,oCAAoC;AACpC,2EAA2E;AAC3E,4EAA4E;AAC5E,wEAAwE;AACxE,mFAAmF;AAEnF,MAAM,CAAC,MAAM,kBAAkB,GAAG,uBAAuB,CAAC;AAC1D,MAAM,CAAC,MAAM,gBAAgB,GAAG,qBAAqB,CAAC;AAEtD,+EAA+E;AAC/E,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,kBAAkB;;;;;;;EAO/C,gBAAgB,EAAE,CAAC;AAErB,wEAAwE;AACxE,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;sIAU0G,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { type LaunchCmd } from "./command.js";
2
+ import type { InstallAction, InstallOp, Scope } from "./types.js";
3
+ export interface InstallOptions {
4
+ /** Explicit client ids; empty/undefined → install to all detected. */
5
+ agent?: string[];
6
+ scope?: Scope;
7
+ http?: boolean;
8
+ url?: string;
9
+ port?: number;
10
+ dryRun?: boolean;
11
+ home?: string;
12
+ cwd?: string;
13
+ platform?: NodeJS.Platform;
14
+ launch?: LaunchCmd;
15
+ }
16
+ export interface PlannedClient {
17
+ id: string;
18
+ displayName: string;
19
+ ops: InstallOp[];
20
+ }
21
+ /** Plan without touching disk (for `--dry-run`). */
22
+ export declare function planInstall(opts: InstallOptions, action: InstallAction): PlannedClient[];
23
+ export declare function runInstall(opts?: InstallOptions): PlannedClient[];
24
+ export declare function runUninstall(opts?: InstallOptions): PlannedClient[];
25
+ /** Ids of clients detected as installed on this machine. */
26
+ export declare function detectInstalledAgents(home?: string, platform?: NodeJS.Platform): string[];
27
+ export { ADAPTERS } from "./clients/index.js";
28
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/install/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,SAAS,EAAoB,MAAM,cAAc,CAAC;AAShE,OAAO,KAAK,EAAiB,aAAa,EAAE,SAAS,EAAW,KAAK,EAAE,MAAM,YAAY,CAAC;AAG1F,MAAM,WAAW,cAAc;IAC7B,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,SAAS,EAAE,CAAC;CAClB;AAmGD,oDAAoD;AACpD,wBAAgB,WAAW,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,GAAG,aAAa,EAAE,CAExF;AAYD,wBAAgB,UAAU,CAAC,IAAI,GAAE,cAAmB,GAAG,aAAa,EAAE,CAErE;AAED,wBAAgB,YAAY,CAAC,IAAI,GAAE,cAAmB,GAAG,aAAa,EAAE,CAEvE;AAED,4DAA4D;AAC5D,wBAAgB,qBAAqB,CAAC,IAAI,SAAY,EAAE,QAAQ,kBAAmB,GAAG,MAAM,EAAE,CAE7F;AAED,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,122 @@
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, "memkin", op.entry)
29
+ : removeMcpServer(obj, "memkin");
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, "memkin", op.entry)
37
+ : removeMcpServerToml(text, "memkin");
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, "memkin", op.entry)
45
+ : removeMcpServerYaml(text, "memkin");
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 port = opts.port ?? 3928;
83
+ const url = opts.url ?? `http://127.0.0.1:${port}/mcp`;
84
+ const transport = opts.http && adapter.supportsHttp ? "http" : "stdio";
85
+ const ctx = {
86
+ home: opts.home ?? homedir(),
87
+ platform: opts.platform ?? process.platform,
88
+ scope: opts.scope ?? "global",
89
+ cwd: opts.cwd ?? process.cwd(),
90
+ launch: opts.launch ?? resolveLaunchCmd({ http: opts.http }),
91
+ action,
92
+ transport,
93
+ url,
94
+ };
95
+ return { id: adapter.id, displayName: adapter.displayName, ops: adapter.plan(ctx) };
96
+ }
97
+ /** Plan without touching disk (for `--dry-run`). */
98
+ export function planInstall(opts, action) {
99
+ return selectAdapters(opts).map((a) => planFor(a, opts, action));
100
+ }
101
+ function execute(opts, action) {
102
+ const planned = planInstall(opts, action);
103
+ if (!opts.dryRun) {
104
+ for (const client of planned) {
105
+ for (const op of client.ops)
106
+ applyOp(op);
107
+ }
108
+ }
109
+ return planned;
110
+ }
111
+ export function runInstall(opts = {}) {
112
+ return execute(opts, "upsert");
113
+ }
114
+ export function runUninstall(opts = {}) {
115
+ return execute(opts, "remove");
116
+ }
117
+ /** Ids of clients detected as installed on this machine. */
118
+ export function detectInstalledAgents(home = homedir(), platform = process.platform) {
119
+ return ADAPTERS.filter((a) => a.detect(home, platform)).map((a) => a.id);
120
+ }
121
+ export { ADAPTERS } from "./clients/index.js";
122
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/install/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { McpEntry } from "./mcp-entry.js";
2
+ export type { McpEntry };
3
+ type Json = Record<string, unknown>;
4
+ export declare function parseJsonConfig(text: string, path: string): Json;
5
+ export declare function upsertMcpServer(obj: Json, name: string, entry: McpEntry): Json;
6
+ export declare function removeMcpServer(obj: Json, name: string): Json;
7
+ export declare function stringifyJsonConfig(obj: Json): string;
8
+ //# 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,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,YAAY,EAAE,QAAQ,EAAE,CAAC;AAEzB,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEpC,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAYhE;AAaD,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,44 @@
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
+ function toJsonValue(entry) {
24
+ return entry.kind === "http"
25
+ ? { type: "http", url: entry.url }
26
+ : { command: entry.command, args: entry.args };
27
+ }
28
+ export function upsertMcpServer(obj, name, entry) {
29
+ const next = servers(obj);
30
+ next[name] = toJsonValue(entry);
31
+ return { ...obj, mcpServers: next };
32
+ }
33
+ export function removeMcpServer(obj, name) {
34
+ const mcp = obj.mcpServers;
35
+ if (!mcp || typeof mcp !== "object" || Array.isArray(mcp))
36
+ return obj;
37
+ const next = { ...mcp };
38
+ delete next[name];
39
+ return { ...obj, mcpServers: next };
40
+ }
41
+ export function stringifyJsonConfig(obj) {
42
+ return `${JSON.stringify(obj, null, 2)}\n`;
43
+ }
44
+ //# 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;AAQlE,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,SAAS,WAAW,CAAC,KAAe;IAClC,OAAO,KAAK,CAAC,IAAI,KAAK,MAAM;QAC1B,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE;QAClC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;AACnD,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,WAAW,CAAC,KAAK,CAAC,CAAC;IAChC,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 memkin 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 memkin block, tidying surrounding whitespace. No-op if absent. */
8
+ export declare function removeBlock(existing: string): string;
9
+ /** True if `existing` already contains a memkin 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,gFAAgF;AAChF,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAOpD;AAED,0DAA0D;AAC1D,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAElD"}
@@ -0,0 +1,34 @@
1
+ import { MEMKIN_BLOCK_END, MEMKIN_BLOCK_START } from "./directive.js";
2
+ function escapeRegExp(s) {
3
+ return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
4
+ }
5
+ // Matches a single memkin-delimited block (non-greedy, spans newlines).
6
+ const blockRegex = new RegExp(`${escapeRegExp(MEMKIN_BLOCK_START)}[\\s\\S]*?${escapeRegExp(MEMKIN_BLOCK_END)}`);
7
+ /**
8
+ * Insert or replace the memkin 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 memkin 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 memkin block. */
31
+ export function hasBlock(existing) {
32
+ return blockRegex.test(existing);
33
+ }
34
+ //# sourceMappingURL=marked-block.js.map